IE6不相容position:fixed屬性的解決辦法

來源:互聯網
上載者:User

文章簡介:IE6下不相容position:fixed屬性!在網上也看了一些資料還是不行!

IE6下不相容position:fixed屬性!在網上也看了一些資料還是不行!

position: fixed;這個屬性用起來確實很方便,可以輕鬆的實現固定位置的浮動層效果。但是,它不支援IE6及以下版本。於是很多同學使用JS類比。今天寫了一個DEMO,涉及左側、右側。及上下兩邊,共四種位置的固定,與以往的教程不同的地方是,它使用CSS運算式來相容IE5、IE6,且避免了js類比時,拖動捲軸時出現抖動的問題,另外在IE5或者怪癖模式下也完全正常,沒有任何問題。如果你有更好的方案,歡迎來噴我。
下面是代碼

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>position: fixed——webjx.com</title>
<style type="text/css">
* {
    padding: 0;
    margin: 0;
}
#content {
    height: 5000px;
    width: 50%;
    border-right: 10px dotted red;
}
#demo_t, #demo_b, #demo_l, #demo_r {
    background: #f90;
    position: fixed;
}
#demo_t, #demo_b {
    left: 0;
    width: 100%;
}
#demo_l, #demo_r {
    width: 50px;
    top: 300px;
}
#demo_t {
    top: 0;
}
#demo_b {
    bottom: 0;
}
#demo_l {
    left: 0;
}
#demo_r {
    right: 0;
}
</style>
<!--[if lte IE 6]>
<style type="text/css">
html {
    /*這個可以讓IE6下滾動時無抖動*/
    background: url(about:black) no-repeat fixed
}
#demo_t, #demo_b, #demo_l, #demo_r {
    position: absolute;
}
#demo_t, #demo_b {
    /*這個解決body有padding時,IE6下100%不能鋪滿的問題*/
    width: expression(offsetParent.clientWidth);
}

/*下面三組規則用於IE6下top計算*/
#demo_l, #demo_r {
    top: expression(offsetParent.scrollTop + 300);
}
#demo_t {
    top: expression(offsetParent.scrollTop);
}
#demo_b {
    top: expression(offsetParent.scrollTop + offsetParent.clientHeight-offsetHeight);
}
</style>
<![endif]-->
</head>

<body>
<div id="demo_t">此處顯示  id "demo" 的內容</div>
<div id="demo_b">此處顯示  id "demo" 的內容</div>
<div id="demo_l">此處顯示  id "demo" 的內容</div>
<div id="demo_r">此處顯示  id "demo" 的內容</div>
<div id="content"></div>
</body>
</html>

建議在實際使用時,將IE條件注釋中的代碼放在單獨的css檔案中,以便節約其他瀏覽器的流量。

順便頂一下微軟的這個項目,現在有中文版了,建議廣大前端er加入這一行列,儘快滅亡IE6



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.