按鈕在IE中兩邊被拉伸的 BUG
發(fā)布時(shí)間:2008-12-25 12:15:11 作者:佚名
我要評(píng)論

大家在寫按鈕(input、button)的時(shí)候會(huì)發(fā)現(xiàn)在 IE 下:
隨著字?jǐn)?shù)的增多,兩邊的間距也會(huì)越來(lái)越大。
在 WIN 的XP 風(fēng)格下,當(dāng)字?jǐn)?shù)很多時(shí),兩邊還會(huì)出現(xiàn)嚴(yán)重的鋸齒。
到底是什么原因呢?
藍(lán)色理想 原 WEB標(biāo)準(zhǔn)化專欄 的斑竹 zbm2001z 給出了一個(gè)答案:
1、IE 在按鈕的 value
大家在寫按鈕(input、button)的時(shí)候會(huì)發(fā)現(xiàn)在 IE 下:
隨著字?jǐn)?shù)的增多,兩邊的間距也會(huì)越來(lái)越大。
在 WIN 的XP 風(fēng)格下,當(dāng)字?jǐn)?shù)很多時(shí),兩邊還會(huì)出現(xiàn)嚴(yán)重的鋸齒。
到底是什么原因呢?
藍(lán)色理想 原 WEB標(biāo)準(zhǔn)化專欄 的斑竹 zbm2001z 給出了一個(gè)答案:
1、IE 在按鈕的 value 值每增加 4 個(gè)字節(jié)(漢字為 2 個(gè))時(shí),就會(huì)在按鈕的兩邊產(chǎn)生總共一個(gè)字節(jié)的內(nèi)邊距寬度。
2、IE 的按鈕(XP 風(fēng)格)默認(rèn)樣式是一個(gè)固定尺寸的圓角矩形圖片作背景,所以一旦按鈕變寬變高后,這個(gè)固定尺寸的圓角矩形圖片的邊緣自然就會(huì)出現(xiàn)“拉毛”的現(xiàn)象了。
對(duì)于第二個(gè)問(wèn)題我們暫時(shí)沒(méi)辦法去解決,除非 WIN 系統(tǒng)自己修復(fù) BUG ,但對(duì)于第一個(gè)問(wèn)題 ,我們還是可以修復(fù)的。
IE 下給按鈕元素設(shè)置 overflow 屬性的 visible 值(注 :padding 值僅在設(shè)置了overflow:visible 屬性后才有效),這個(gè)屬性其實(shí)在上次寫的《background-clip 與 background-origin 的一則運(yùn)用》一文中已經(jīng)使用。不過(guò)在今天閱讀了《The stretched buttons problem in IE》后,發(fā)現(xiàn)原來(lái)還有一個(gè)小 BUG —— 如果將按鈕置于表格單元格中,雖然按鈕顯示正確了,但是原先預(yù)留的寬度大小卻沒(méi)有改變,仍然占據(jù)著空間,需要在 IE6 中設(shè)置按鈕的寬度(width)為 0(IE7同樣也存在此 BUG,但暫時(shí)沒(méi)有尋找到好的方式解決)。
最終的修復(fù)代碼如下(Demo):
input.button { padding: 0 .25em; width: auto; _width: 0; overflow:visible !ie;}
隨著字?jǐn)?shù)的增多,兩邊的間距也會(huì)越來(lái)越大。
在 WIN 的XP 風(fēng)格下,當(dāng)字?jǐn)?shù)很多時(shí),兩邊還會(huì)出現(xiàn)嚴(yán)重的鋸齒。
到底是什么原因呢?
藍(lán)色理想 原 WEB標(biāo)準(zhǔn)化專欄 的斑竹 zbm2001z 給出了一個(gè)答案:
1、IE 在按鈕的 value 值每增加 4 個(gè)字節(jié)(漢字為 2 個(gè))時(shí),就會(huì)在按鈕的兩邊產(chǎn)生總共一個(gè)字節(jié)的內(nèi)邊距寬度。
2、IE 的按鈕(XP 風(fēng)格)默認(rèn)樣式是一個(gè)固定尺寸的圓角矩形圖片作背景,所以一旦按鈕變寬變高后,這個(gè)固定尺寸的圓角矩形圖片的邊緣自然就會(huì)出現(xiàn)“拉毛”的現(xiàn)象了。
對(duì)于第二個(gè)問(wèn)題我們暫時(shí)沒(méi)辦法去解決,除非 WIN 系統(tǒng)自己修復(fù) BUG ,但對(duì)于第一個(gè)問(wèn)題 ,我們還是可以修復(fù)的。
IE 下給按鈕元素設(shè)置 overflow 屬性的 visible 值(注 :padding 值僅在設(shè)置了overflow:visible 屬性后才有效),這個(gè)屬性其實(shí)在上次寫的《background-clip 與 background-origin 的一則運(yùn)用》一文中已經(jīng)使用。不過(guò)在今天閱讀了《The stretched buttons problem in IE》后,發(fā)現(xiàn)原來(lái)還有一個(gè)小 BUG —— 如果將按鈕置于表格單元格中,雖然按鈕顯示正確了,但是原先預(yù)留的寬度大小卻沒(méi)有改變,仍然占據(jù)著空間,需要在 IE6 中設(shè)置按鈕的寬度(width)為 0(IE7同樣也存在此 BUG,但暫時(shí)沒(méi)有尋找到好的方式解決)。
最終的修復(fù)代碼如下(Demo):
input.button { padding: 0 .25em; width: auto; _width: 0; overflow:visible !ie;}
相關(guān)文章
- 實(shí)現(xiàn)背景圖片拉伸的方法有很多,下面為大家詳細(xì)介紹下使用濾鏡來(lái)簡(jiǎn)單實(shí)現(xiàn),有需要的朋友可以參考下,希望對(duì)大家有所幫助2013-08-18
- 但是css3出現(xiàn)以后,這個(gè)重復(fù)顯示的情況被改善了。background-size 屬性可以讓我們之前的讓背景圖片拉伸填充的希望成真,具體使用方法如下感興趣的朋友可以參考下哈,希望對(duì)2013-07-11
CSS背景圖拉伸效果兼容FF/Chrome/IE等主流瀏覽器(親測(cè))
按鈕作為DIV的背景圖來(lái)顯示,實(shí)際上有多個(gè)這樣的按鈕,而且DIV中的文字,也就是按鈕上要顯示的文字內(nèi)容和個(gè)數(shù)都不定,這種情況下就需要用背景圖片拉伸效果來(lái)處理,感興趣的2013-04-24table自動(dòng)拉伸在chrome與IE中的兼容性問(wèn)題解決
table自動(dòng)拉伸在做瀏覽器兼容時(shí)一直困擾著我,終于解決了,這篇文章我是極力推薦的,table有時(shí)候不好控制,一些內(nèi)容自動(dòng)非配td寬度以及內(nèi)容撐開,邊的問(wèn)題有時(shí)候很讓人頭疼2013-03-25- 可在background屬性中設(shè)置所有的背景屬性,下面為大家詳細(xì)介紹下各個(gè)屬性的含義,初學(xué)者可以參考下,希望對(duì)大家學(xué)習(xí)css有所幫助2013-08-12
div背景定位background設(shè)置元素的背景參數(shù)
DIV背景定義參數(shù):background 設(shè)置元素的背景參數(shù),div+css的廣泛使用,也改變了這一使用習(xí)慣,變成了將N多小圖標(biāo)集于一個(gè)大圖上,再通過(guò)div來(lái)定位需要用到的圖片部分,大大2013-02-02對(duì)背景圖定位中background-position屬性的自我理解
最近在項(xiàng)目中需要大量的用到很多標(biāo)簽按鈕什么的零碎圖片,加上一直沒(méi)機(jī)會(huì)使用Css中的”精靈技術(shù)“,這里把我對(duì)background-position的理解寫成文檔供更多人使用學(xué)習(xí);如果有2013-01-15css3實(shí)現(xiàn)背景圖片拉伸效果像桌面壁紙一樣
使用css3 屬性:background-size可以輕松實(shí)現(xiàn)像桌面壁紙一樣拉伸,下面為大家詳細(xì)介紹下具體的相關(guān)實(shí)現(xiàn)過(guò)程,有此需求的朋友可以參考下,希望對(duì)大家有所幫助2013-08-19