css垂直居中的方法
CSS垂直居中是网页设计中常见的一种布局需求,尤其是对于有特定高度的容器元素,在其中需要居中一个子元素的情况下,垂直居中就显得尤为重要。本文将介绍CSS中实现垂直居中的各种方法,包括使用display属性、flex布局、table布局以及绝对定位与负边距等方式。
一、使用display属性
1. 当容器元素为块级元素时
(1)使用padding属性
当容器元素为块级元素时,可以通过在容器内部添加padding来达到垂直居中的效果,代码如下:
```
height: 300px;
background-color: #ccc;
padding: 100px 0;
}
.child {
height: 50px;
width: 50px;
background-color: #fff;
margin: 0 auto;
}
```
容器元素的高度需要预设,同时padding属性的上下值需设置成相同的数值,这样子元素就能够在容器中垂直居中。
(2)使用line-height属性
在容器元素为块级元素时,还可以通过设置line-height属性来实现垂直居中,代码如下:
```
height: 300px;
background-color: #ccc;
line-height: 300px;
}
.child {
margin属性怎么用
height: 50px;
width: 50px;
background-color: #fff;
margin: 0 auto;
}
```
这种方式需要注意的是,子元素的高度和行高需要相等,而且容器元素的高度也需要预设。
2. 当容器元素为行内元素时
当容器元素为行内元素时,需要将display属性设置成inline-block或者table-cell来实现垂直居中,代码如下:
(1)使用inline-block
```
background-color: #ccc;
font-size: 0;
text-align: center;
}
.child {
display: inline-block;
height: 50px;
width: 50px;
background-color: #fff;
vertical-align: middle;
}
```
(2)使用table-cell
```
display: table-cell;
height: 300px;
background-color: #ccc;
text-align: center;
vertical-align: middle;
}
.child {
height: 50px;
width: 50px;
background-color: #fff;
margin: 0 auto;
}
```
在使用table-cell的方式时,需要将容器元素的display属性设置为table-cell,并且限制其宽度,同时设置text-align和vertical-align属性为center。
二、使用flex布局
在CSS3中,flex布局成为了一种非常流行的布局方式,垂直居中也可以通过flex布局来
实现。代码如下:
```
display: flex;
height: 300px;
background-color: #ccc;
justify-content: center;
align-items: center;
}
.child {
height: 50px;
width: 50px;
background-color: #fff;
}
```
容器元素的display属性需要设置为flex,并且设置justify-content和align-items属性来实现水平和垂直居中。
三、使用table布局
在CSS中,table和table-cell也可以用来实现垂直居中,代码如下:
```
display: table;
height: 300px;
background-color: #ccc;
width: 100%;
}
.child {
display: table-cell;
height: 50px;
width: 50px;
background-color: #fff;
vertical-align: middle;
text-align: center;
}
```
在这个方式中,容器元素的display属性需要设置为table,并且子元素需要设置为table-cell,vertical-align属性值需要设置为middle,text-align属性需要设置为center。
四、使用绝对定位与负边距
使用绝对定位与负边距也可以实现垂直居中,代码如下:
```
position: relative;
height: 300px;
background-color: #ccc;
}
.child {
position: absolute;
top: 50%;
left: 50%;
margin-top: -25px;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论