当前位置:首页 > 技术知识 > 正文内容

CSS实现常见元素水平、垂直居中_使用css实现垂直水平居中

maynowei7个月前 (09-11)技术知识104

本文简单介绍如何通过CSS实现常见元素的水平、垂直居中。

水平居中

  • 行内元素

这种情况最简单,只需要将行内元素包括在一个display属性为block的父元素中,并且设置父元素text-align为居中即可

.border {
  width: 400px;
  line-height: 100px;
  border: 1px solid red;
  text-align: center;
}
<div class="border">
      <span>行内元素</span>
</div>
  • 块状元素

对块状元素设置相应的外边距即可,外边距左、右设置为auto。

.parent {
  width: 400px;
  height: 100px;
  border: 1px solid red;
}
.block-child {
  width: 100px;
  border: 2px solid black;
  margin: 10px auto;
  text-align: center;
}
<div class="parent">
      <div class="block-child">块状元素</div>
</div>


  • 多个块状元素①

传统方法,在父元素设置text-align:center; 然后将需要居中的块状元素的display设置为inline-block

.border {
  width: 400px;
  line-height: 100px;
  border: 1px solid red;
  text-align: center;
}
.inline-block {
  display: inline-block;
  border: 1px solid black;
}
 <div class="border">
      <div class="inline-block">块状元素1</div>
      <div class="inline-block">块状元素2</div>
      <div class="inline-block">块状元素3</div>
  </div>
  • 多个块状元素②

使用flex布局实现,将父元素display设置为flex,同时设置子元素对齐。

.parent-flex {
  width: 400px;
  border: 1px solid red;
  display: flex;
  justify-content: center;
}
<div class="parent-flex">
      <div style="border: 1px solid black;">块状元素1</div>
      <div style="border: 1px solid black;">块状元素2</div>
      <div style="border: 1px solid black;">块状元素3</div>
</div>

垂直居中

  • 单行行内元素

将行内元素的 line-height 属性与其父元素的 height 属性设置为相同值,比如都是40px。

  • 多行的行内元素

通过设置父元素display属性为table-cell,及其他相关属性解决。

.parent-table-cell {
  width: 400px;
  height: 100px;
  border: 1px solid red;
  display: table-cell;
  vertical-align: middle;
}
<div class="parent-table-cell">
      <span>行内元素1</span><br>
      <span>行内元素2</span><br>
      <span>行内元素3</span>
</div>
  • 已知高度的块状元素

结合元素的position及margin属性,通过定位设置居中,父元素position设置为relative

.item{
  top: 50%; // 顶部位置位于父元素的50%处
  margin-top: -50px;  // margin-top 值为自身高度的一半
  position: absolute; //position也可以是
}


注意:如果规定了 !DOCTYPE,则 Internet Explorer 8 (以及更高版本)支持display属性值 "inline-table"、"run-in"、"table"、"table-caption"、"table-cell"、"table-column"、"table-column-group"、"table-row"、"table-row-group"、以及 "inherit"。

喜欢就关注支持一下吧。

相关文章

Windows 加密盘BitLocker爆锁屏绕过严重漏洞

BitLocker Windows内置现代设备级数据加密保护功能,BitLocker与Windows内核深度集成。有大量的企业和个人使用BitLocker加密自己关键数据,以防止数据泄密。BitLoc...

记录程序第一天挖漏洞的过程(挖漏洞需要学什么语言)

第一个漏洞复现fastjson漏洞说明:在本地这个fastjson会出现问题复现的过程生成一个java文件进行攻击注入的方式javac Exploit.java但是必须编译成.class文件才能执行p...

Flutter 之 ListView(flutter框架)

在 Flutter 中,ListView 可以沿一个方向(垂直或水平方向)来排列其所有子 Widget,常被用于需要展示一组连续视图元素的场景ListView 构造方法ListView:仅适用于列表中...

如何优雅地使用嵌入式事件标志组?

事件标志组嵌入式事件标志组是一种在嵌入式系统中广泛使用的同步机制,主要用于实现多任务间的同步与通信。事件标志组是一组事件标志位的集合,每个位代表一个事件是否发生。它允许任务等待特定的事件发生,当事件发...

大厂 Go 编程规范(二):mutex(编程大厂是什么意思)

mutex 是golang 的互斥锁,可以保障在多协程的情况下,数据访问的安全。1、零值有效我们并不需要mutex指针mu := new(sync.Mutex) mu.Lock()直接可以使用mute...

你可能疏忽的plsql和navicat连接Oracle注意点

在日常开发中,我们总是少不了要连接数据库,你是否遇到过填写的账号、密码、连接地址都对,但就是连接不上Oracle的情况?这里说一下其中一种连接不上Oracle的原因,这种情况简单,但很可能被疏忽。记下...