雖然題目這么寫(xiě),可是這真是bug嗎?我覺(jué)得不算。
line-height使文本居中的3像素bug,先查下這3px的底細(xì),怎么查?觀察+FW
先寫(xiě)個(gè)height、line-height都為30px,背景為紅色的元素,設(shè)置文字為12px。然后量下,果然有3px的bug。同時(shí)增加或者減少height、line-height 1px發(fā)現(xiàn)如果當(dāng)前值是奇數(shù)那1px會(huì)加到文字和底部空間里而減少時(shí)減掉的是文字和頂部空間的1px(加下減上);為偶數(shù)時(shí)剛好相反:加上減下。當(dāng)我們給文字加下劃線的時(shí)候發(fā)現(xiàn)文字的垂直位置并沒(méi)變,這能說(shuō)明什么呢?還不太肯定,繼續(xù)同時(shí)減小heighe、line-height直到一個(gè)合適的值:14px,這時(shí)候我們可以看到文字和下劃線都是完整的,繼續(xù)減小1px。這時(shí)IE已經(jīng)不按我們剛才發(fā)現(xiàn)的規(guī)矩辦事了,文字上面被截去1px,這樣看來(lái)14px應(yīng)該是IE認(rèn)為的一個(gè)臨界點(diǎn),此時(shí)整體高低減去文字高度剛好為3px。會(huì)不會(huì)?。。。因?yàn)檫@時(shí)文字是頂這上邊界的,我們把文字增加到2行,發(fā)現(xiàn)了吧,第二行的文字不是頂這第一行的下劃線的,而是有1px的距離。3px果然是下劃線的高度。
其實(shí)這里還有一點(diǎn)特殊的地方就是如果我們一開(kāi)始把height、line-height都設(shè)為31px那這時(shí)3px會(huì)變?yōu)?px。這個(gè)可以用我們上面得出的“偶數(shù)情況加上減下的結(jié)論”解釋?zhuān)篽eighe、line-height同為30px的時(shí)候上下空白區(qū)域高度差是3px,然后height、line-height同時(shí)加1px,這1px應(yīng)該是加到上部空間里,所以3pxbug會(huì)變成2pxbug。
運(yùn)行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行]
經(jīng)典論壇討論: http://bbs.blueidea.com/thread-2836198-1-1.html
本文鏈接:http://m.95time.cn/tech/web/2008/5437.asp
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
◎進(jìn)入論壇網(wǎng)頁(yè)制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評(píng)論。
|