行高line-height实现单行文本垂直居中
以前一直认为单行文本垂直居中要将高度和行高设置成相同的值,但高度其实没必要设置。实际上,文本本身就在一行中居中显示。在不设置高度的情况下,行高撑开高度。
<style> .test{ line-height: 50px; background-color: lightblue; } </style> <div class="test">测试文字</div>
设置vertical-align:middle实现垂直居中
【1】设置父元素的display为table-cell
通过为table-cell元素设置vertical-align:middle,可使其子元素均实现垂直居中。这和表格里单元格的垂直居中是类似的
[注意] 若要IE7-浏览器支持,则可以将其改为<table>表格结构
[注意] 设置为table-cell的div不能使用浮动或绝对定位,因为浮动或绝对定位会使元素具有块级元素特性,从而丧失了table-cell元素具有的垂直对齐的功能。
若需要浮动或绝对定位处理,则需要外面再套一层div。
<style> .parent{ display: table-cell; vertical-align: middle; } </style> <div class="parent" style="background-color: gray;height: 100px;"> <div class="child" style="background-color: lightblue;">我是有点长的有点长的有点长的有点长的测试文字</div> </div>
【2】若子元素是图片,通过设置父元素的行高来代替高度,且设置父元素的font-size为0。
vertical-align:middle的解释是元素的中垂点与父元素的基线加1/2 父元素中字母X的高度对齐。由于字符X在em框中并不是垂直居中的,且各个字体的字符X的高低位置不一致。
所以,当字体大小较大时,这种差异就更明显。当 font-size为0时,相当于把字符X的字体大小设置为0,于是可以实现完全的垂直居中。
<style> .parent{ line-height: 100px; font-size: 0; } .child{ vertical-align: middle; } </style> <div class="parent" style="background-color: lightgray;width:200px;"> <img class="child" src="http://sandbox.runjs.cn/uploads/rs/26/ddzmgynp/img1.gif" width="50%" alt="test"> </div>
【3】通过新增元素来实现垂直居中的效果
新增元素设置高度为父级高度,宽度为0,且同样设置垂直居中vertical- align:middle的inline-block元素。由于两个元素之间空白被解析,所以需要在父级设置font-size:0,在子级再将 font-size设置为所需值;若结构要求不严格,则可以将两个元素一行显示,则不需要设置font-size:0。
<style> .parent{ height: 100px; font-size: 0; } .child{ display: inline-block; font-size: 20px; vertical-align: middle; } .childSbling{ display: inline-block; height: 100%; vertical-align: middle; } </style> <div class="parent" style="background-color: lightgray; width:200px;"> <div class="child" style="background-color: lightblue;">我是比较长的比较长的多行文字</div> <i class="childSbling"></i> </div>
思路三:通过绝对定位实现垂直居中
【1】若子元素不定高, 使用top50%配合translateY(-50%)可实现居中效果。
translate函数的百分比是相对于自身高度的,所以top:50%配合translateY(-50%)可实现居中效果。
[注意] IE9-浏览器不支持;
[注意]若子元素的高度已知,translate()函数也可替换为margin-top: 负的高度值。
<style> .parent{ position:relative; } .child{ position: absolute; top: 50%; transform: translateY(-50%); } </style> <div class="parent" style="background-color: lightgray; height:100px;"> <div class="child" style="background-color: lightblue;">测试文字</div> </div>
【2】若子元素定高,结合绝对定位的盒模型属性,实现居中效果
<style> .parent{ position: relative; } .child{ position: absolute; top: 0; bottom: 0; margin: auto 0; height: 50px; } </style> <div class="parent" style="background-color: lightgray; height:100px;"> <div class="child" style="background-color: lightblue;">测试文字</div> </div>
<关于增加div层级的说明>
在水平居中对齐中,元素外层套一层div并设置absolute,元素设置负margin-left或者relative的负left属性,可以实现水平居中的效果。但由于margin是相对于包含块宽度的,这样margin-top:-50%得到的是宽度而不是高度的-50%,所以不可行;对于relative的百分比取值而言,在包含块高度为auto的情况下,chrome、safari和IE8+浏览器都不支持设置元素的百分比top值,所以也不可行。
思路四:使用弹性盒模型flex实现垂直居中
[注意] IE9-浏览器不支持
【1】在伸缩容器上设置侧轴对齐方式align-items: center
<style> .parent{ display: flex; align-items: center; } </style> <div class="parent" style="background-color: gray; height: 100px;"> <div class="child" style="background-color: lightblue;">测试文字</div> </div>
【2】在伸缩项目上设置margin: auto 0
<style> .parent{ display: flex; } .child{ margin: auto 0; } </style> <div class="parent" style="background-color: gray; height: 100px;"> <div class="child" style="background-color: lightblue;">测试文字</div> </div>
总结
以上所述是小编给大家介绍的CSS实现垂直居中的4种思路详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及
时回复大家的。在此也非常感谢大家对网站的支持!
css实现垂直居中,实现垂直居中
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]