正常情况下li标签中的span标签可以通过设置li标签的height和line-height一致来实现span标签在li标签中的垂直居中,但是我发现当把span标签display属性设置为block,并设置尺寸以后,这个方法就无效了,使用vertical-align:middle也没用,请问为什么?代码如下:
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style media="screen"> li{ height: 30px; line-height: 30px; border: 1px solid red; } span{ display: block; width: 30px; height: 20px; border: 1px solid blue; } </style> </head> <body> <ul> <li><span>abcdefg</span></li> <li><span>abcdefg</span></li> <li><span>abcdefg</span></li> </ul> </body></html>
Comment centrer verticalement la balise span dans la balise li ? -Questions et réponses sur le site Web chinois PHP -Comment centrer verticalement la balise span dans la balise li ? - Questions et réponses sur le site Web chinois PHP
Veuillez regarder et apprendre.
在原有基础上添加
原理是,定位元素(以竖直方向为例)的top+bottom+其自身高+竖直margin=包含块尺寸。由于只有margin未设置具体值,则自动计算为居中。
height和line-height一致的方式只能作用于inline和inline-block的元素
vertical-align:middle只能作用于inline和table类元素
题主只要把span标签的display设置为inline-block就行了