CSS 布局 – 水平 & 垂直对齐

2020-04-27 07:31:17易采站长站整理

注意:如果子元素的高度大于父元素,且子元素设置了浮动,那么子元素将溢出,这时候你可以使用 “clearfix(清除浮动)” 来解决该问题。

我们可以在父元素上添加 overflow: auto; 来解决子元素溢出的问题:

实例


.clearfix {
overflow: auto;
}

 

当使用 float 属性时,IE8 以及更早的版本存在一个问题。如果省略 !DOCTYPE 声明,那么 IE8 以及更早的版本会在右侧增加 17px 的外边距。这似乎是为滚动条预留的空间。当使用 float 属性时,请始终设置 !DOCTYPE 声明:

实例


body {
margin: 0;
padding: 0;
}

.right {
float: right;
width: 300px;
background-color: #b0e0e6;
}

 


垂直居中对齐 – 使用 padding

CSS 中有很多方式可以实现垂直居中对齐。 一个简单的方式就是头部顶部使用 padding:

我是垂直居中。

 

实例


.center {
padding: 70px 0;
border: 3px solid green;
}

 

如果要水平和垂直都居中,可以使用 padding 和 text-align: center:

我是水平和垂直都居中的。

 

实例


.center {
padding: 70px 0;
border: 3px solid green;
text-align: center;
}

 


垂直居中 – 使用 line-height

我是垂直居中的。

 

实例


.center {
line-height: 200px;
height: 200px;
border: 3px solid green;
text-align: center;
}

/* 如果文本有多行,添加以下代码: */
.center p {
line-height: 1.5;
display: inline-block;
vertical-align: middle;
}

 


垂直居中 – 使用 position 和 transform

除了使用 padding 和 line-height 属性外,我们还可以使用 transform 属性来设置垂直居中:

 

实例


.center {
height: 200px;
position: relative;
border: 3px solid green;
}

.center p {
margin: 0;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}

 

提示: 更多 transform 属性内容可以参阅 2D 翻转章节。


更多实例

CSS 使用 margin 让 div 居中对齐

CSS 使用绝对定位 让 div 右对齐