课程名称:一课全面掌握主流CSS布局
课程章节:第3章 垂直居中布局
主讲老师:KingJ
通过学习掌握了CSS垂直居中布局的两种方式,通过代码演示和对比两种方式的优缺点,更加深刻认识到了CSS垂直居中布局的使用情景。
垂直居中布局就是指当前元素在父级元素容器中,垂直方向是居中显示的
<!-- 定义父级元素 --> <div class="parent"> <!-- 定义子级元素 --> <div class="child"> 慕课网 </div> </div>
CSS代码实现垂直方向居中布局:
.parent{ width: 200px; height:600px; background: #ccc; /* display属性: * table: 设置当前元素为<table>元素 * table-cell: 设置当前元素为<td>元素(单元格) */ display: table-cell; /* vertical-align属性:为文本内容设置垂直方向对齐方式 * top: 顶部对齐 * middle: 居中对齐 * bottom: 底部对齐 */ vertical-align: middle; } .child{ width: 200px; height:200px; background: #c9394a; }
浏览器兼容性比较好
vertical-align属性具有继承性,导致子级元素的文本也是居中显示的
<!-- 定义父级元素 --> <div class="parent"> <!-- 定义子级元素 --> <div class="child"> 慕课网 </div> </div>
CSS代码实现垂直方向居中布局:
.parent{ width: 200px; height: 600px; background: #ccc; /* 开启定位 */ position: relative; } .child{ width: 200px; height:200px; background: #c9394a; /** 当把当前元素设置为绝对定位后: * 如果父级元素没有开启定位,当前元素相对页面定位 * 如果父级元素开启定位,当前元素相对父级元素定位 */ position: absolute; top: 50%; transform: translateY(-50%); }
父级元素是否脱离文档流,不影响子级元素垂直居中效果
transform属性是CSS3中新增属性,浏览器支持情况不好