網(wǎng)頁(yè)前端開發(fā)IE BUG系列之雙邊距BUG
2013/3/5 13:46:53來源:前端翻譯小站
該BUG影響IE版本 IE6
癥狀: 浮動(dòng)元素上的左右邊距是雙倍的
說明
CSS的浮動(dòng)屬性被很多web開發(fā)者使用。不僅因?yàn)樗軌蜃寖?nèi)容圍繞在浮動(dòng)元素的周圍,而且在許多情況下可以通過設(shè)定浮動(dòng)元素的邊距來進(jìn)行布局。IE開發(fā)者由于某些原因認(rèn)為增加雙倍邊距是一個(gè)好的做法,所以這個(gè)bug被叫做“雙邊距Bug”。下面是這個(gè)bug的演示例子。
HTML Code:
<div id="container"> 123456789012345678901234567890 <br> <div id="inner"> test </div> </div>
CSS Code:
#container { overflow: hidden; /* contain float - irrelevant to the bug */ } #inner { float: left; margin-left: 2em; }
在這個(gè)demo中,我們?cè)?inner上同時(shí)使用了float和margin-left,觸發(fā)了雙邊距bug。 根據(jù)字體,在正常的瀏覽器和ie7中,#inner的左邊緣在數(shù)字4或5的附近。在IE版本低于7(在IE5,5.5和6測(cè)試)左邊緣將在數(shù)字9或0的附近,表明了我們邊距是雙倍的。 如果你設(shè)置右邊距在一個(gè)浮動(dòng)元素上,這種情況同樣會(huì)發(fā)生。你用margin-left或是簡(jiǎn)寫去設(shè)置邊距效果是一樣的。
解決方案
解決方法非常簡(jiǎn)單。你只需要在那個(gè)被雙邊距bug影響的元素上加display: inline就可以了。下面是把解決方法應(yīng)用于原來的demo:
HTML Code:
<div id="container"> 123456789012345678901234567890 <br> <div id="inner"> test </div> </div>
CSS Code:
#container { overflow: hidden; /* contain float - irrelevant to the bug */ } #inner { float: left; margin-left: 2em; display: inline; }
和原來的demo沒有多大的區(qū)別,但是bug不再出現(xiàn)了。添加display:inline解決這個(gè)bug是安全的,因?yàn)樗凰袠?biāo)準(zhǔn)兼容的瀏覽器忽略。如果你覺得還有更好的方法的話,歡迎留言添加。
[教程作者:admin]
免責(zé)聲明:本站文章系圖趣網(wǎng)整理發(fā)布,如需轉(zhuǎn)載,請(qǐng)注明出處,素材資料僅供個(gè)人學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途!
本文地址:http://m.pkvc.cn/tutorial/wd1376.html
本文地址:http://m.pkvc.cn/tutorial/wd1376.html
這些是最新的
- 專訪:石墨文檔產(chǎn)品總監(jiān)羅穎
- UI設(shè)計(jì)不得不知的移動(dòng)端UI尺寸適
- 光音移動(dòng)設(shè)計(jì)規(guī)范 — 表單類
- 體驗(yàn)設(shè)計(jì)中的排序問題
- 網(wǎng)頁(yè)設(shè)計(jì)精粹 網(wǎng)頁(yè)中那些迷人的按
- aliued:響應(yīng)式設(shè)計(jì)的現(xiàn)狀與趨勢(shì)
- 10個(gè)智能對(duì)象處理的ps技巧
- 網(wǎng)頁(yè)UI - 原子設(shè)計(jì)理論(上)
- 如何通過設(shè)計(jì)提升banner點(diǎn)擊率?
- 晉小彥視覺設(shè)計(jì)系列文章(二):全屏
最熱門的教程