line-height使文本居中的3像素bug問題
互聯(lián)網(wǎng) 發(fā)布時間:2008-10-17 19:21:05 作者:佚名
我要評論

雖然題目這么寫,可是這真是bug嗎?我覺得不算。
line-height使文本居中的3像素bug,先查下這3px的底細(xì),怎么查?觀察 FW
先寫個height、line-height都為30px,背景為紅色的元素,設(shè)置文字為12px。然后量下,果然有3px的bug。同時增加或者減少height、line-height 1px
雖然題目這么寫,可是這真是bug嗎?我覺得不算。
line-height使文本居中的3像素bug,先查下這3px的底細(xì),怎么查?觀察 FW
先寫個height、line-height都為30px,背景為紅色的元素,設(shè)置文字為12px。然后量下,果然有3px的bug。同時增加或者減少height、line-height 1px發(fā)現(xiàn)如果當(dāng)前值是奇數(shù)那1px會加到文字和底部空間里而減少時減掉的是文字和頂部空間的1px(加下減上);為偶數(shù)時剛好相反:加上減下。當(dāng)我們給文字加下劃線的時候發(fā)現(xiàn)文字的垂直位置并沒變,這能說明什么呢?還不太肯定,繼續(xù)同時減小heighe、line-height直到一個合適的值:14px,這時候我們可以看到文字和下劃線都是完整的,繼續(xù)減小1px。這時IE已經(jīng)不按我們剛才發(fā)現(xiàn)的規(guī)矩辦事了,文字上面被截去1px,這樣看來14px應(yīng)該是IE認(rèn)為的一個臨界點,此時整體高低減去文字高度剛好為3px。會不會?。。。因為這時文字是頂這上邊界的,我們把文字增加到2行,發(fā)現(xiàn)了吧,第二行的文字不是頂這第一行的下劃線的,而是有1px的距離。3px果然是下劃線的高度。
其實這里還有一點特殊的地方就是如果我們一開始把height、line-height都設(shè)為31px那這時3px會變?yōu)?px。這個可以用我們上面得出的“偶數(shù)情況加上減下的結(jié)論”解釋:heighe、line-height同為30px的時候上下空白區(qū)域高度差是3px,然后height、line-height同時加1px,這1px應(yīng)該是加到上部空間里,所以3pxbug會變成2pxbug。

運行代碼框
[Ctrl A 全部選擇 提示:你可先修改部分代碼,再按運行]
相關(guān)文章
解決line-height=height元素高度但是文字并沒有垂直居中的問題
這篇文章主要介紹了解決line-height=height元素高度但是文字并沒有垂直居中的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的2020-08-19深入理解CSS行高line-height與文本垂直居中的原理
本文詳細(xì)介紹了CSS行高屬性line-height與文本垂直居中的原理,通過本文的介紹相信對大家以后使用line-height和設(shè)置文本垂直居中會更加熟練,有需要的可以參考借鑒。下面一2016-08-12- 我們在css編寫中需要對大篇幅的內(nèi)容顯示的更好看,有些間隔,不要在擠在一起難看,就可以使用Line-Height屬性進行控制2013-07-20
詳解HTML中字體使用line-height依然不能垂直居中解決辦法
這篇文章主要介紹了詳解HTML中字體使用line-height依然不能垂直居中解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友2020-08-20