CSS居中

水平居中

  1. 针对宽度不为100%的块级元素
margin-left: auto;
margin-right: auto;
或者
margin: 0 auto;
  1. 针对行内元素和块级元素的内容。当父元素的宽度是100%时,子元素中的行内元素和内容始终水平居中
text-align: center;

垂直居中

  1. 上下padding相等。(容器的高度由内容撑开)
    html结构:
<div class="ct">
  <p>这是段落这是段落这是段落这是段落这是段落这是段落这是段落这是段落这是段落这是段落</p>
  <p>这是段落</p>
  <p>这是段落</p>
</div>

css:

.ct{
  padding: 40px 0;
  background: pink;
  text-align: center;
  border: 1px solid;
}

实例

  1. 绝对定位实现垂直居中(容器内容较为复杂,比如:弹窗)
    html结构:
<div class="dialog">
  <div class="header">我是标题</div>
  <div class="content">我是内容</div>
</div>

css:

.dialog{
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -200px;
  margin-top: -150px;
  
  width:400px;
  height: 300px;
  box-shadow: 0px 0px 3px #000;
}

注:以上方法在宽高为定值的条件下使用。宽高发生变化时,margin-leftmargin-right需要做出相应修改。
实例
使用CSS3的属性:transform: translate(-50%, -50%);自动偏移本身宽高的50%
将上述css代码修改为:

.dialog{
  position: absolute;
  left: 50%;
  top: 50%;
  /* margin-left: -200px; */
  /* margin-top: -150px; */
  
  transform: translate(-50%, -50%);
  /* width:500px; */
  /* height: 100px; */
  box-shadow: 0px 0px 3px #000;
}

注:上述代码可在宽高不为定值时使用,只是需要浏览器兼容CSS3才能使用。
实例

  1. 使用vertical-align(容器内容简单)
    vertical-align:自身基线参考位置。使用对象:行内元素和表格
    html结构:
  <div class="box middle">
    <img src="" alt="">
  </div>

css:

.middle{
    text-align: center;
}
.middle:before{
  content: '';/*行内元素,不能设置宽高*/
  /* content: '小'; */
  /* background: red; */
  display: inline-block;/*可设置宽高*/
  height: 100%;
  vertical-align: middle;
}

实例

  1. display: table-cell(改变了元素的display特性)
    html结构:
  <div class="box">
    <img src="" alt="">
  </div>

css:

.box{
  width: 300px;
  height: 200px;
  border: 1px solid ;
  display: table-cell;/*以表格的方式呈现内容*/
  vertical-align: middle;/*表格内元素基线参考位置*/
  text-align: center;
}

实例

  1. dispaly:flex
    html结构:
<div class="box">
  <div class="ct"></div>
</div>

css:

.box{
  display: flex;
  height:300px;
  border: 1px solid;
}
.ct{
  height: 100px;
  width: 100px;
  background: red;
  margin: auto;
}

实例
阮一峰网络日志
mdn

  1. line-height(单行文本垂直居中)
    只适用于单行文字,line-height值大于等于font-size时使用。line-height值小于font-size时,单行文字会溢出行框,多行文字会发生重叠。
    line-height.png

    实例

文章著作权归本人所有,转载须说明来源

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,680评论 1 92
  • 水平居中设置-行内元素 我们在实际工作中常会遇到需要设置水平居中的场景,比如为了美观,文章的标题一般都是水平居中显...
    CAICL阅读 3,237评论 0 3
  • 在学习前端的过程中,发现元素和文本的水平居中和垂直居中,是经常会出现的问题,在实际工作中也会经常碰到。居中的技巧有...
    文艺范的奔三运维青年阅读 3,561评论 0 1
  • 我爱他轰轰烈烈在我心,我爱他安安静静无人知。 这是我在《栖息之陆》上看到的句子。 空间里有个女孩,每天都在问今天的...
    千里千黎阅读 1,573评论 0 0
  • 管控平台(scorpio) 相对于旧版本,本项目做了以下升级改造: 编译速度优化,旧版本编译一次需要210秒以上,...
    蘇上方阅读 3,157评论 0 0