CSS居中小结

一、水平居中

  1. block元素的水平居中
    如果block宽度写死了,采用:
.box{
  margin: 0 auto;
}

如果block宽度没写死,那就:

.box{
 margin: 0, 50px; /*给定左右外边距相等即可*/
}
  1. 行内元素(inline)的水平居中
    采用text-align: center;(应用在inline元素的父容器)

二、垂直居中

  1. block元素的垂直居中
    a. 采用上padding等于下padding(不要把父容器height写死)
    b. 见下面的绝对居中。。。
  2. inline元素的垂直居中
    a. 采用height和line-height相等(比如小按钮中的文本)
    b. 采用vertical-align: middle;(作用在行内元素或者表格)
    c. 采用display: table-cell;再用:vertical-align: middle;(由于改变了元素属性,可能会带来影响,table-cell和middle是应用在父容器上不是居中元素上)

三、绝对居中(水平和垂直)

1. position

第一种

.parent{
height: 600px;
border: 1px solid red;
position: relative;
}
.child {position: absolute;
    left: 50%;/*父容器的宽度的一半*/
    top: 50%;/*父容器的宽度的一半*/
    width: 30%;
    height: 20%;
    transfrom: translate(-50%,-50%);/*CSS3属性,自身宽、高的一半*/
}

第二种

.parent{
  height: 600px;
  border: 1px solid red;
  position: relative;
}
.child{
  border: 1px solid green;
  position: absolute;
  width: 300px;
  height: 200px;
  margin: auto;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

2. table

table标签是自带居中的

<table class="parent">
  <tr>
    <td class="child">我就是要居中</td>
  </tr>
</table>
.parent{
  border: 1px solid red;
  height: 600px;
}

.child{
  border: 1px solid green;
}

3. flex

.parent{
  height: 600px;
  border: 3px solid red;
  
  display: flex;
  justify-content: center;
  align-items: center;
}
.child{
  border: 3px solid green;
  width: 300px;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 下面是CSS居中的几种方法: 水平居中元素: 通用方法,元素的宽高未知 方式一:CSS3 transform 方式...
    饥人谷_enzo阅读 3,780评论 0 6
  • 水平居中 行内或类行内元素 在块级父容器中让行内元素居中,只需使用 text-align: center; : 这...
    莱昂纳德刚阅读 1,576评论 0 0
  • CSS居中总结 最近在学习CSS居中,居中里面又包含水平居中和垂直居中,分不太清内联元素(inline or in...
    从这到那阅读 3,342评论 1 2
  • 简单地整理一些css居中的方法。 text-align:center: 这种方法可以让** inline/inli...
    饥人谷_Dylan阅读 3,831评论 1 52
  • CSS中在不同场景下,解决居中的方式有很多,经常让人无从下手,所有我们将CSS居中进行一次小结,方便以后我们布局使...
    字母31阅读 1,846评论 0 1

友情链接更多精彩内容