網(wǎng)頁(yè)前端開(kāi)發(fā)IE BUG系列之雙邊距BUG
該BUG影響IE版本 IE6
癥狀: 浮動(dòng)元素上的左右邊距是雙倍的
說(shuō)明
CSS的浮動(dòng)屬性被很多web開(kāi)發(fā)者使用。不僅因?yàn)樗軌蜃寖?nèi)容圍繞在浮動(dòng)元素的周?chē)?,而且在許多情況下可以通過(guò)設(shè)定浮動(dòng)元素的邊距來(lái)進(jìn)行布局。IE開(kāi)發(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)寫(xiě)去設(shè)置邊距效果是一樣的。
解決方案
解決方法非常簡(jiǎn)單。你只需要在那個(gè)被雙邊距bug影響的元素上加display: inline就可以了。下面是把解決方法應(yīng)用于原來(lái)的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; }
和原來(lái)的demo沒(méi)有多大的區(qū)別,但是bug不再出現(xiàn)了。添加display:inline解決這個(gè)bug是安全的,因?yàn)樗凰袠?biāo)準(zhǔn)兼容的瀏覽器忽略。如果你覺(jué)得還有更好的方法的話,歡迎留言添加。
本文地址:http://likemindfilms.com/tutorial/wd1376.html
您可能還喜歡
- jquery Jcrop圖像裁切插件中文api文檔
- @media適配不同尺寸的手機(jī)
- 返回上一頁(yè)代碼的幾種寫(xiě)法
- Dreamweaver CC 2014新功能介紹
- 深入了解viewport和px
- 優(yōu)秀CSS代碼書(shū)寫(xiě)的10個(gè)規(guī)范
- 畫(huà)出你的風(fēng)格:HTML5創(chuàng)意畫(huà)板的設(shè)計(jì)教程
- Div中height:100%無(wú)效的解決辦法
- 網(wǎng)頁(yè)前端-網(wǎng)頁(yè)切圖命名規(guī)范
- 為網(wǎng)頁(yè)設(shè)計(jì)師而生的14個(gè)文本編輯器
- 專訪:石墨文檔產(chǎn)品總監(jiān)羅穎
- UI設(shè)計(jì)不得不知的移動(dòng)端UI尺寸適
- 光音移動(dòng)設(shè)計(jì)規(guī)范 — 表單類
- 體驗(yàn)設(shè)計(jì)中的排序問(wèn)題
- 網(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ì)理論(上)
- 如何通過(guò)設(shè)計(jì)提升banner點(diǎn)擊率?
- 晉小彥視覺(jué)設(shè)計(jì)系列文章(二):全屏