20-IE6瀏覽器兼容

CSS Hack

  • 什么是CSS Hack?
    針對(duì)IE的不同版本設(shè)置不同的CSS屬性, 我們就稱之為CSS Hack

  • CSS Hack可以讓我們編寫的CSS代碼, 只在我們指定的IE版本瀏覽器下有效
    \9作用, 就是讓該屬性在IE10及以下的瀏覽器都有效
    *作用, 就是讓該屬性在IE7及以下的瀏覽器都有效
    _ 作用, 就是讓該屬性在IE6及以下的瀏覽器都有效

注意點(diǎn):
在使用CSS Hack的時(shí)候, 一定要將CSS Hack的代碼寫到標(biāo)準(zhǔn)代碼的后面

<style>
        div{
            width: 200px;
            height: 200px;
            background-color: red;
            background: green\9;
            *background-color: yellow;
            _background-color: blue;
        }
</style>

IE6盒模型的默認(rèn)高度

  • 在IE6瀏覽器下, 盒模型的最小高度是19px昼浦, 所以如果設(shè)置了盒模型的高度為1px岩瘦, 也會(huì)顯示位19個(gè)px
    注意點(diǎn): 在其它瀏覽器都沒有問題
  • 解決方案
    如果現(xiàn)在IE6瀏覽器下設(shè)置盒模型的高度為1px竟坛, 那么需要再添加一個(gè)屬性
    overflow: hidden;
<style>
        *{
            margin: 0;
            padding: 0;
        }
        div{
            height: 1px;
            background: red;
            /*添加這個(gè)屬性就能解決IE6盒子默認(rèn)高度問題*/
            overflow: hidden;
        }
</style>
IE6盒子默認(rèn)高度時(shí)19px

父子元素包裹寬高問題

  • 在其它瀏覽器中亿笤, 如果子元素的寬高大于父元素的寬高赌朋, 那么不會(huì)把父元素?fù)伍_
  • 在IE6瀏覽器下嫁乘, 如果子元素的寬高大于父元素的寬高杯瞻,那么父元素會(huì)被子元素?fù)伍_
  • 解決方案:
    在企業(yè)開發(fā)中, 不要讓子元素的寬高大于父元素的寬高
    如果在企業(yè)開發(fā)中子元素必須要大于父元素端圈, 那么可以添加overflow: hidden;
    overflow: hidden;含義: 將超出父元素的部分剪切掉
<style>
        *{
            margin: 0;
            padding: 0;
        }
        .father{
            width: 100px;
            height: 100px;
            border: 10px solid #000;
            /*overflow: hidden;*/
        }
        .son{
            width: 200px;
            height: 200px;
            background: red;
        }
    </style>

<div class="father">
    <div class="son"></div>
</div>

父盒子會(huì)被子盒子撐開

IE6浮動(dòng)兼容問題

浮動(dòng)的兼容問題一
  • 在IE6中, 如果浮動(dòng)的父元素的高度是由子元素?fù)纹饋淼? 那么在IE6中父元素的浮動(dòng)就會(huì)失效

  • 解決方案:
    讓子元素也浮動(dòng)

<style>
        *{
            margin: 0;
            padding: 0;
        }
        div{
            float: left;
            border: 1px solid #000;
        }
        div p{
            float: left;
            height: 300px;
            background: red;
        }
        div p:nth-child(2){
            background: deepskyblue;
        }
    </style>

<div class="one">
    <p>我是段落</p>
</div>
<div class="two">
    <p>我是段落</p>
</div>
浮動(dòng)的兼容問題二
  • 如果兩個(gè)元素一個(gè)浮動(dòng)了, 另外一個(gè)沒有浮動(dòng), 然后設(shè)置另外一個(gè)元素的margin-left等于浮動(dòng)元素的寬度, 在IE6瀏覽器下兩個(gè)元素之間會(huì)多出1px的間隙,在企業(yè)開發(fā)中不要這樣寫


<style>
        *{
            margin: 0;
            padding: 0;
        }
        div{
            width: 200px;
            height: 200px;
            background: red;
        }
        .one{
            float: left;
        }
        .two{
            margin-left: 200px;
            float: left;
            background: purple;
        }
    </style>
浮動(dòng)兼容問題三
  • 1.在IE6中如果一個(gè)元素浮動(dòng)了, 然后又設(shè)置了這個(gè)元素浮動(dòng)那邊的margin, 那么會(huì)出現(xiàn)雙倍margin問題

  • 解決方案

    • 在企業(yè)開發(fā)中, 如果一個(gè)元素左浮動(dòng)了, 那么就不要設(shè)置這個(gè)元素左邊的margin, 如果一個(gè)元素右浮動(dòng)了, 那么就不要設(shè)置這個(gè)元素右邊的margin
    • 通過CSS HACK設(shè)置
      *display: inline;
      雙倍margin問題
<style>
        *{
            margin: 0;
            padding: 0;
        }
        div{
            float: left;
            width: 200px;
            height: 200px;
            background: red;
            margin-left: 200px;
            *display: inline;
        }
</style>
浮動(dòng)兼容問題四
  • 如果在IE7及以下的瀏覽器中, li中的元素都浮動(dòng), 在IE下會(huì)產(chǎn)生4px間隙問題
  • 解決方案:
    通過給li標(biāo)簽設(shè)置 *vertical-align: top;來解決問題
    間隙問題

<style>
        *{
            margin: 0;
            padding: 0;
        }
        ul>li{
            height: 100px;
            width: 500px;
            border: 2px solid #000;
            background: deepskyblue;
            *vertical-align: top;
        }
        ul>li>.left{
            float: left;
            background: green;
        }
        ul>li>.right{
            float: right;
            background: purple;
        }
    </style>

<ul>
    <li>
        <div class="left">左邊</div>
        <div class="right">右邊</div>
    </li>
    <li>
        <div class="left">左邊</div>
        <div class="right">右邊</div>
    </li>
    <li>
        <div class="left">左邊</div>
        <div class="right">右邊</div>
    </li>
    <li>
        <div class="left">左邊</div>
        <div class="right">右邊</div>
    </li>
</ul>
浮動(dòng)兼容問題五
  • 在IE6瀏覽器中,浮動(dòng)元素之間有行內(nèi)元素或者注釋, 在IE下出現(xiàn)小尾巴問題

  • 解決方案:
    2.1 讓浮動(dòng)元素的寬度不要等于父元素的寬度, 并且要小于3px及以上
    2.2 不要在浮動(dòng)元素之間添加任何內(nèi)容

<style>
        *{
            margin: 0;
            padding: 0;
        }
        .father{
            width: 300px;
            height: 300px;
            background: red;
        }
        .father .left{
            width: 150px;
            height: 100%;
            float: left;
        }
        .father .right{
            float: right;
            width: 150px;
            height: 100%;
            background: skyblue;
        }
    </style>
<div class="father">
    <div class="left"></div>
    <!---->
    <div class="right">我是一段文字</div>
</div>
在高版本瀏覽器中顯示

在IE6中顯示小尾巴

IE6瀏覽器透明背景圖片兼容問題

  • 1.無論通過img標(biāo)簽設(shè)置, 還是通過background設(shè)置, 透明的圖片, 在IE6瀏覽器下都不透明

解決方案:
2.1利用第三方的JS框架來解決

<script src="js/DD_belatedPNG_0.0.8a.js"></script>
<script>
    DD_belatedPNG.fix("div");
</script>

注意點(diǎn): fix當(dāng)中, 要解決誰的透明問題, 就填寫誰

<script src="image/DD_belatedPNG_0.0.8a.js"></script>
    <script>
    DD_belatedPNG.fix("div");
</script>
<style>
        div{
            width: 200px;
            height: 300px;
            background: url("image/lnj123.png") no-repeat;
        }
</style>
在IE6瀏覽器中背景不透明

解決后顯示透明
  • 由于第三方的js框架無法解決body的背景在IE6下不透明的問題, 所以可以使用如下方式來解決
_background-image:none;
_filter : progid:DXImageTransform.Microsoft.AlphaImageLoader(src="images/lnj123.png", sizingMethod="crop");

注意點(diǎn):
1.一定要給body設(shè)置寬度和高度, 在企業(yè)開發(fā)中, 一般我們都會(huì)給body設(shè)置寬度和高度為100%
2.src=""要修改為我們需要設(shè)置的圖片地址
-->

<style>
        body{
            width: 100%;
            height: 100%;
            background: red url("image/lnj123.png") no-repeat;
            _background-image:none;
            _filter : progid:DXImageTransform.Microsoft.AlphaImageLoader(src="images/lnj123.png", sizingMethod="crop");
        }
</style>

input的兼容問題

  • 在IE6中, 如果input的寬高和父元素的寬高一樣, 那么會(huì)在頂部和底部多出一段間隙
    解決方案:
    給Input添加浮動(dòng)屬性
<style>
        *{
            margin: 0;
            padding: 0;
        }
        div{
            width: 300px;
            height: 40px;
            background: red;
        }
        input{
            width: 300px;
            height: 40px;
            float: left;
        }
    </style>
<div>
    <input type="text" placeholder="請(qǐng)輸入一點(diǎn)內(nèi)容">
</div>
IE6中顯示間隙
  • 在IE6瀏覽器下, 如果給input設(shè)置背景, 那么背景會(huì)隨著input中的內(nèi)容被填滿而移出input
  • 解決方案:
    給background設(shè)置背景關(guān)聯(lián)的fixed屬性即可
<style>
        *{
            margin: 0;
            padding: 0;
        }
        input{
            background: url("image/icon.png") no-repeat fixed;
        }
</style>
IE6input標(biāo)簽背景移動(dòng)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末焦读,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子舱权,更是在濱河造成了極大的恐慌矗晃,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宴倍,死亡現(xiàn)場(chǎng)離奇詭異张症,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鸵贬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門俗他,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人阔逼,你說我怎么就攤上這事兆衅。” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵羡亩,是天一觀的道長(zhǎng)摩疑。 經(jīng)常有香客問我,道長(zhǎng)畏铆,這世上最難降的妖魔是什么雷袋? 我笑而不...
    開封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮辞居,結(jié)果婚禮上片排,老公的妹妹穿的比我還像新娘。我一直安慰自己速侈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開白布迫卢。 她就那樣靜靜地躺著倚搬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪乾蛤。 梳的紋絲不亂的頭發(fā)上每界,一...
    開封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音家卖,去河邊找鬼眨层。 笑死,一個(gè)胖子當(dāng)著我的面吹牛上荡,可吹牛的內(nèi)容都是我干的趴樱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼酪捡,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼叁征!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起逛薇,我...
    開封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤捺疼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后永罚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體啤呼,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年呢袱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了官扣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡产捞,死狀恐怖醇锚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤焊唬,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布恋昼,位于F島的核電站,受9級(jí)特大地震影響赶促,放射性物質(zhì)發(fā)生泄漏液肌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一鸥滨、第九天 我趴在偏房一處隱蔽的房頂上張望嗦哆。 院中可真熱鬧,春花似錦婿滓、人聲如沸老速。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽橘券。三九已至,卻和暖如春卿吐,著一層夾襖步出監(jiān)牢的瞬間旁舰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來泰國打工嗡官, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留箭窜,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓衍腥,卻偏偏與公主長(zhǎng)得像磺樱,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子婆咸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案坊罢? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,754評(píng)論 1 92
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)擅耽。 注意:講述HT...
    kismetajun閱讀 27,489評(píng)論 1 45
  • 孤獨(dú)難能可貴活孩,不言語的人比較美
    清淺的安然閱讀 111評(píng)論 0 0
  • “空心菜”是他的外號(hào) 世上只有他和她師妹兩個(gè)人知道 師妹說他沒腦筋乃沙,除了練武起趾,什么都不想 說他的心像空心菜一樣,是...
    時(shí)間的某處閱讀 759評(píng)論 0 49
  • 那些我知道 或者不知道的事 文:少女不寫詩 立冬那天警儒,媽媽寄過來一個(gè)包裹训裆,我拆開看是一條厚厚的大紅色的圍巾眶根。 她在...
    少女不寫詩閱讀 241評(píng)論 0 1