二、垂直居中
实现垂直布局也是比较简单的,方法也比较多,这里总结了 6 种常用的布局方法,其公共的 CSS
代码如下所示:
.parent {
height: 500px;
width: 300px;
margin: 0 auto;
background-color: #ff8787;
}
.child {
width: 300px;
height: 300px;
background-color: #91a7ff;
}
复制代码
其 HTML
结构也是固定的,就是一个父级包裹一个子级,这里的子级是固定的 300px*300px,代码如下:
<div class="parent">
<div class="child"></div>
</div>
复制代码
最终的实现效果如下:
1.行内块级元素垂直居中
若元素是行内块级元素, 基本思想是子元素使用 display: inline-block, vertical-align: middle;并让父元素行高等同于高度。
实现 CSS 代码如下:
.parent {
/* 为父级容器设置行高 */
line-height: 500px;
}
.child {
/* 将子级元素设置为 inline-block 元素 */
display: inline-block;
/* 通过 vertical-align: middle; 实现居中 */
vertical-align: middle;
}
复制代码
2.定位方式实现(方法一)
第一种通过定位的方式实现就比较简单,实际就是通过 top: 50%; margin-top: 等于负的高度的一半就可以实现垂直居中。
实现 CSS 代码如下:
.parent {
/* 为父级容器开启相对定位 */
position: relative;
}
.child {
position: absolute;
top: 50%;
/* margin-top: 等于负高度的一半 */
margin-top: -150px;
}
复制代码
3. 定位方式实现(方法二)
第二种通过定位的方式实现实现思路:top
和 bottom
将子元素拉伸至 100%,设置指定的高度,通过 margin:auto;即可实现垂直居中。
实现 CSS 代码如下:
.parent {
/* 为父级容器开启相对定位 */
position: relative;
}
.child {
height: 300px;
position: absolute;
/* 垂直拉满 */
top: 0;
bottom: 0;
/* margin: auto 即可实现 */
margin: auto;
}
复制代码
4. 定位方式实现(方法三)
第三种通过定位的方式就比较灵活,适用于多种场合,使用 top
配合 tansform
即可。
实现 CSS 代码如下:
.parent {
/* 为父级容器开启相对定位 */
position: relative;
}
.child {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
复制代码
5. Flex 方案
通过 Flex 可以有很多方式实现这个垂直居中布局的效果。
实现 CSS 代码如下:
.parent {
/* 开启 flex 布局 */
display: flex;
/* 方法一 */
/* align-items: center; */
}
.child {
/* 方法二 */
margin: auto;
}
复制代码
通过 Flex 布局实现不仅仅只有上面两种,这里只介绍最简单的方式。
6. Grid 方案
通过 Grid
实现居中布局比通过 Flex 实现的方式更多一些。
实现 CSS 代码如下:
.parent {
display: grid;
/* 方法一 */
/* align-items: center; */
/* 方法二 */
/* align-content: center; */
}
.child {
/* 方法三 */
/* margin: auto; */
/* 方法四 */
align-self: center;
}
复制代码
以上就是垂直居中布局常用的几种方式。
评论