css实现垂直居中的几种方式(布局常用)
前提:
html模板:
1 |
|
声明:以下示例,主要实现垂直居中的样式代码为加粗的部分
一、对单行元素进行垂直居中时
可设置该行内元素的父元素的height与line-heigth的值相等,让行内元素垂直居中
针对行内元素,可通过设置vertical-align: middle;以及line-height进行垂直居中
二、对文本进行垂直居中
- 针对文本,通过display:flex;配合align-items和justify-content实现文本居中
1
2
3
4
5
6
7
8
9
10
.content{
display: flex;
align-items: center;
justify-content: center;
}
三、对已知高度块级元素进行垂直居中
- 绝对定位,配合top:50%和负margin-top(元素高度一半)进行垂直居中
1 |
|
- 绝对定位,配合top:0;bottom:0;和margin:auto进行垂直居中
1 | .content{ |
- 设置position:absolute;和calc()函数实现垂直居中
1 |
|
- 使用浮动float实现元素垂直居中
原理:通过在要进行垂直居中的元素a前面添加一个无内容的元素,并将该无内容元素的高设置为50%,在利用clear:botn清除浮动,则元素a相对于父元素来说是垂直居中。
html如下:
1 | <div class="parent"> |
css如下:
1 |
|
四、对未知高度块级元素进行垂直居中
设置position:absolute;和transform:traslate(x,y)实现水平垂直居中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15.content{
position: absolute;
margin:auto;
top: 50%;
left: 50%;
transform:translate(-50%,-50%); /*针对元素本身向左以及向上移动50%*/
background-color: aqua;
}居于视口单位的解决方案:
可通过使用margin-top: 50vh;配合transform:translateY(-50%);实现视口居中
1 |
|
- 通过display:table-cell和vertical-align:middle;实现垂直居中
1 | .parent{ |
- 基于flex的解决方案:
1 | .parent{ |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 冬之乐园!