当 span 元素的 line-height 设置为 0 时,为什么所在的行会向上移动到 div 元素上面?移动了多少高度呢?(0-50)/2 = -25px ?
运行结果也可在这查看: https://jsbin.com/yawurubebi/edit?html,css,output
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <div></div> <span>hello world</span> </body> </html>
* { margin: 0; padding: 0; } div { height: 100px; background: skyblue } span { font-size: 50px; line-height: 0px; background-color: pink; }
1 chengyecc 2020-03-29 00:49:45 +08:00 via Android 因为文字在行高内垂直居中? |
![]() | 2 127000 2020-03-29 00:50:43 +08:00 取值 <数字> 该属性的应用值是这个无单位数字<数字>乘以该元素的字体大小。计算值与指定值相同。大多数情况下,这是设置 line-height 的推荐方法,不会在继承时产生不确定的结果 developer.mozilla.org/zh-CN/docs/Web/CSS/line-height |
4 manyfreebug OP @127000 额,这段话貌似也不能解释发生的现象啊。。。不好意思 |
![]() | 5 gzlock 2020-03-29 08:48:45 +08:00 via Android vertical-align 为 middle 的话,上移量就是字体高度 /2 吧 改变 vertical-align 为 bottom 就可以看到变化 |
6 wszgrcy 2020-03-29 10:54:25 +08:00 via Android 盲猜因为行高为 0 x 高就重合于上边,可以把 hello world 改成 x 看看是不是把 x 在中间分割了 |
7 PyCode 2020-03-29 16:05:48 +08:00 这里发生了这些事:首先 span 外层会添加匿名行盒,然后由于 span 的行高设为 0,该行盒高度也变为了 0,因为 half-leading 的规范,span 的文本内容会向上移动 content height 的一半 |