CSS中IE和火狐對margin澜沟、padding的兼容性解析

問題發(fā)現(xiàn):
在開發(fā)過程中需要實現(xiàn)盒子 parent-box 的上下滾動府蔗,底部footer 始終在頁面底部晋控,由于內(nèi)部元素高度不確定,起初給大盒子設(shè)置了樣式:

<div class="parent-box">
    <div>
        <ul>
            <li></li>
            <li></li>
            ......
        </ul>
    </div>
    <div class="footer"></div>
</div>
/*CSS*/
.footer{
    position: fixed;
    bottom: 0;
    right: 0;
    min-width: 940px;
    height: 100px;
}

.parent-box {
    height:101%姓赤;
    overflow-y: scroll;
    padding-bottom: 110px!important;
}

在chrome瀏覽器正常滾動到底部赡译,頁面能夠正常上下滾動,

但是在火狐瀏覽器下 滾動條滾動到最底部頁面內(nèi)容部分被footer 遮擋不铆。

解決方案:

/*修改CSS*/
.parent-box {
   /*padding-bottom: 110px!important;*/
   /*height:101%蝌焚;*/
    /*overflow-y: scroll;*/
    height: calc(100vh - 150px) !important;
    overflow-y: scroll;
}

問題得到解決

相關(guān)資料整理

1、IE與Fire Fox識別CSS屬性區(qū)別標簽 !important

#page_body{
width: 1000px !important;
height:30px !important;

width: 980px ;
height:36px ;
}

以上樣式
在IE6/7中只執(zhí)行width: 980px與height:36px
FireFox中則優(yōu)先執(zhí)行帶有!important標簽的CSS行width: 1000px與height:30px

記住誓斥,以上代碼的順序不能顛倒只洒。

2、div居中區(qū)別

FF:margin:0 auto 0 auto !important;
IE:margin:0 auto;

FF: div 設(shè)置 margin-left, margin-right 為 auto 時已經(jīng)居中

3劳坑、文本內(nèi)容居中

FF:margin:0 auto 0 auto !important;text-align:center
IE:text-align:center

FF: body 設(shè)置 text-align 時, div 需要設(shè)置 margin: auto(主要是 margin-left,margin-right) 方可居中

4毕谴、width與margin,padding之間的寬度計算問題區(qū)別

一個600px寬的div,margin,padding的值計算區(qū)別

ie{width: 600px;margin:10px;padding10px;}

在Firefox中應(yīng)修改為
FF{width: 560px;margin:10px;padding10px;}

也就是說在FF中,margin,padding的左右值也要算在width中涝开,600-10×2-10X2=560px

在進行Div+Css重構(gòu)中循帐,IE與FF的排版結(jié)構(gòu)中,最關(guān)鍵是第二和第四點舀武,如果不處理好以上幾個問題惧浴,那么你的你的網(wǎng)站在IE中瀏覽是那么定位精確,排版完美奕剃,一到Fire Fox中就是亂七八糟衷旅,橫七樹八的。

最后說一句纵朋,如果你要把你的網(wǎng)站改為一個兼容性完美的Div+Css網(wǎng)站柿顶,那么你就準備大量的CSS知識,那怕你一個經(jīng)驗老到的高手操软,也要為一些兼容BUG付出比較用table排版的網(wǎng)站更多的時間嘁锯。

CSS對瀏覽器器的兼容性具有很高的價值,通常情況下IE和Firefox存在很大的解析差異聂薪,這里介紹一下兼容要點家乘。
常見兼容問題:
1.DOCTYPE 影響 CSS 處理
2.FF: div 設(shè)置 margin-left, margin-right 為 auto 時已經(jīng)居中, IE 不行
3.FF: body 設(shè)置 text-align 時, div 需要設(shè)置 margin: auto(主要是 margin-left,margin-right) 方可居中
4.FF: 設(shè)置 padding 后, div 會增加 height 和 width, 但 IE 不會, 故需要用 !important 多設(shè)一個 height 和 width
5.FF: 支持 !important, IE 則忽略, 可用 !important 為 FF 特別設(shè)置樣式
6.div 的垂直居中問題: vertical-align:middle; 將行距增加到和整個DIV一樣高 line-height:200px; 然后--文字,就垂直居中了藏澳。缺點是要控制內(nèi)容不要換行
7.cursor: pointer 可以同時在 IE FF 中顯示游標手指狀仁锯, hand 僅 IE 可以
8.FF: 鏈接加邊框和背景色,需設(shè)置 display: block, 同時設(shè)置 float: left 保證不換行翔悠。參照 menubar, 給 a 和 menubar 設(shè)置高度是為了避免底邊顯示錯位, 若不設(shè) height, 可以在 menubar 中--一個空格业崖。
9.在mozilla firefox和IE中的BOX模型解釋不一致導(dǎo)致相差2px解決方法:
div{margin:30px!important;margin:28px;}
注意這兩個margin的順序一定不能寫反,據(jù)阿捷的說法!important這個屬性IE不能識別蓄愁,但別的瀏覽器可以識別双炕。所以在IE下其實解釋成這樣:
div{maring:30px;margin:28px}
重復(fù)定義的話按照最后一個來執(zhí)行,所以不可以只寫margin:XXpx!important;
10.IE5 和IE6的BOX解釋不一致

//IE5下
div{width:300px;margin:0 10px 0 10px;}

div的寬度會被解釋為300px-10px(右填充)-10px(左填充)最終div的寬度為280px撮抓,

而在IE6和其他瀏覽器上寬度則是以300px+10px(右填充)+10px(左填充)=320px來計算的妇斤。這時我們可以做如下修改
div{width:300px!important;width :340px;margin:0 10px 0 10px}
關(guān)于這個是什么我也不太明白,只知道IE5和firefox都支持但IE6不支持丹拯,如果有人理解的話站超,請告訴我一聲,謝了Q柿:)
11.ul標簽在Mozilla中默認是有padding值的,而在IE中只有margin有值所以先定義
ul{margin:0;padding:0;}
就能解決大部分問題

注意事項:
1顷编、float的div一定要閉合戚炫。
例如:(其中floatA剑刑、floatB的屬性已經(jīng)設(shè)置為float:left;)

< #div id=”floatA” >
< #div id=”floatB” >
< #div id=”NOTfloatC” >

這里的NOTfloatC并不希望繼續(xù)平移,而是希望往下排。
這段代碼在IE中毫無問題施掏,問題出在FF钮惠。原因是NOTfloatC并非float標簽,必須將float標簽閉合七芭。

< #div class=”floatB”>
< #div class=”NOTfloatC”>
之間加上
< #div class=”clear”>

這個div一定要注意聲明位置素挽,一定要放在最恰當(dāng)?shù)牡胤剑冶仨毰c兩個具有float屬性的div同級狸驳,之間不能存在嵌套關(guān)系预明,否則會產(chǎn)生異常。
并且將clear這種樣式定義為為如下即可:

.clear{
clear:both;}

此外耙箍,為了讓高度能自動適應(yīng)撰糠,要在wrapper里面加上overflow:hidden;
當(dāng)包含float的box的時候,高度自動適應(yīng)在IE下無效辩昆,這時候應(yīng)該觸發(fā)IE的layout私有屬性(萬惡的IE霸睦摇!)用zoom:1;可以做到汁针,這樣就達到了兼容术辐。
例如某一個wrapper如下定義:

.colwrapper{
overflow:hidden;
zoom:1;
margin:5px auto;}

2、margin加倍的問題施无。
設(shè)置為float的div在ie下設(shè)置的margin會加倍辉词。這是一個ie6都存在的bug。
解決方案是在這個div里面加上display:inline;
例如:

<div  class=”imfloat”>
<--相應(yīng)的css為-->

.imfloat{
  float:left;
  margin:5px;
  display:inline;
}

3猾骡、關(guān)于容器的包涵關(guān)系
很多時候较屿,尤其是容器內(nèi)有平行布局,例如兩卓练、三個float的div時隘蝎,寬度很容易出現(xiàn)問題。在IE中襟企,外層的寬度會被內(nèi)層更寬的div擠破嘱么。一定要用Photoshop或者Firework量取像素級的精度。
4顽悼、關(guān)于高度的問題
如果是動態(tài)地添加內(nèi)容曼振,高度最好不要定義。瀏覽器可以自動伸縮蔚龙,然而如果是靜態(tài)的內(nèi)容冰评,高度最好定好。(似乎有時候不會自動往下?lián)伍_木羹,不知道具體怎么回事)
5甲雅、最狠的手段 – !important;
如果實在沒有辦法解決一些細節(jié)問題,可以用這個方法.FF對于”!important”會自動優(yōu)先解析,然而IE則會忽略.如下

.tabd1{
background:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important;
background:url(/res/images/up/tab1.gif) no-repeat 1px 0px; }

申明:本資料由百萬站會員提供解孙,轉(zhuǎn)載請注明出處,資料來源百萬站網(wǎng)站知識庫:http://www.baiwanzhan.com/site/t122522/.
CSS中IE和火狐對margin抛人、padding的兼容性解析
感謝您的支持!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末弛姜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子妖枚,更是在濱河造成了極大的恐慌廷臼,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绝页,死亡現(xiàn)場離奇詭異荠商,居然都是意外死亡,警方通過查閱死者的電腦和手機续誉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門结啼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人屈芜,你說我怎么就攤上這事郊愧。” “怎么了井佑?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵属铁,是天一觀的道長。 經(jīng)常有香客問我躬翁,道長焦蘑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任盒发,我火速辦了婚禮例嘱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宁舰。我一直安慰自己拼卵,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布蛮艰。 她就那樣靜靜地躺著腋腮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪壤蚜。 梳的紋絲不亂的頭發(fā)上即寡,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音袜刷,去河邊找鬼聪富。 笑死,一個胖子當(dāng)著我的面吹牛著蟹,可吹牛的內(nèi)容都是我干的墩蔓。 我是一名探鬼主播梢莽,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼钢拧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起炕横,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤源内,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后份殿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體膜钓,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年卿嘲,在試婚紗的時候發(fā)現(xiàn)自己被綠了颂斜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡拾枣,死狀恐怖沃疮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情梅肤,我是刑警寧澤司蔬,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站姨蝴,受9級特大地震影響俊啼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜左医,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一授帕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧浮梢,春花似錦跛十、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至缝裤,卻和暖如春屏轰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背憋飞。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工霎苗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人榛做。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓唁盏,卻偏偏與公主長得像内狸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子厘擂,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345