复现方式
有代码如下:
<!DOCTYPE html><html><head><style type="text/css">.only-display {display: inline-block;}.only-overflow {overflow: hidden;}.display-and-overflow {display: inline-block;overflow: hidden;}.display-and-overflow-and-vertical-align {display: inline-block;overflow: hidden;vertical-align: bottom;}</style></head><body><div>only display:<div class="only-display">text</div></div><div>only overflow:<div class="only-overflow">text</div></div><div>display and overflow:<div class="display-and-overflow">text</div></div><div>display and overflow and vertical-align:<div class="display-and-overflow-and-vertical-align">text</div></div></body></html>
在浏览器中显示如下:
如图所示,在红框标定的位置,这个文字元素的位置向上浮动了。
原理
据我搜索,是因为:
这两个 css 属性放在一起会将此 div 的 bottom 位置会变成前一行的 baseline 位置。
解决方案
给这个 div 新增一个 vertical-align: bottom; 即可。
顺带吐槽一下,CSS 这种属性间隐式的关联关系,太难用了。
[END]
