1. 程式人生 > >IE6下position:fixed不支援問題及其解決方案

IE6下position:fixed不支援問題及其解決方案

IE6有諸多奇葩,不支援position:fixed就是其中之一。所以在做一些比如固定在頂部或者底部或者固定元素的效果時需要考慮相容IE6的這個問題。解決方案是用Ie6的hack。

*html {/* 只有IE6支援 */
    background-image: url(about:blank); 
    background-attachment: fixed; /* 固定背景 */
}
#box {
    /* 非IE6瀏覽器使用固定元素 */
    position: fixed;
    top: 0;
    left: 0;
    /* IE6改為絕對定位,並通過css表示式根據滾動位置更改top的值 */
    _position: absolute;
    _top: expression(eval(document.documentElement.scrollTop));
}
這裡還需要解決的是“抖動”的問題,因為當你滾動滾動條的時候expression下的樣式一直在重新計算並且執行css,會產生延遲的抖動。而在使用固定背景之後,在滾動的時候先執行了css,再重新計算網頁,所以不會產生抖動的現象。
下面是固定到底部的程式碼,需要仔細看一下:
_top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0)));
PS:在網上看到expression的諸多弊病,也是雅虎34條裡面竭力避免使用css表示式的一個重要原因,摘引一段話:表示式的問題就在於它的計算頻率要比我們想象的多。不僅僅是在頁面顯示和縮放時,就是在頁面滾動、乃至移動滑鼠時都會要重新計算一次。給CSS表示式增加一個計數器可以跟蹤表示式的計算頻率。在頁面中隨便移動滑鼠都可以輕鬆達到10000次以上的計算量。由此可見一斑。

相關推薦

IE6position:fixed支援問題及其解決方案

IE6有諸多奇葩,不支援position:fixed就是其中之一。所以在做一些比如固定在頂部或者底部或者固定元素的效果時需要考慮相容IE6的這個問題。解決方案是用Ie6的hack。 *html {/* 只有IE6支援 */ background-image: url

IE6position:fixed支持問題及其解決方式

div 網頁 this margin otto ima hack 一段 奇葩 IE6有諸多奇葩,不支持position:fixed就是當中之中的一個。所以在做一些比方固定在頂部或者底部或者固定元素的效果時須要考慮兼容IE6的這個問題。解決方式是用Ie6的hack。

iosposition:fixed失效的問題解決

作者:旺仔如題的問題其實大家在開發過程中應該都有遇到過,網上搜的答案層出不窮,特別是用js解決的各路大神們,你用js解決你考慮過js的感受嗎?這個耗能是用css3解決成千上萬倍,好了話不多說,直接進入主題:如圖,考慮到使用者體驗的問題,一般頁面的下方提交按鈕都會隨著固定在頁面

uploadify在火狐上傳了的解決方案,java版(Spring+SpringMVC+MyBatis)詳細解決方案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

小程式Promise支援finally解決方案

小程式Promise不支援finally解決方案 程式碼片段 點選連結即可在微信開發者工具中檢視程式碼wechatide://minicode/t2eidemj7P3X git地址 基本思路 小程式的Promise是不支援polyfill方法的,這樣有一些操作就不太方便玩了,比如hideLoadin

微信瀏覽器支援下載解決方案--跳轉到預設瀏覽器開啟

在微信的內建瀏覽器(QQ內建瀏覽器也一樣)裡他遮蔽了下載連結,不管是app的下載連結,還是普通檔案的連結都遮蔽了,這個問題有兩個解決方案。首先如果你是App下載連結就傳到騰訊應用寶,但是這會給應用寶帶來流量,如果二次下載折損率很高。其二就是提示引導使用者在瀏覽器開啟所以如果你沒有將軟體上傳到應用寶裡,或者你的

linux安裝redis出現錯誤及其解決方案

測試於:Redis2.6.17 | CentOS 5.7 安裝: 通過wget方式直接在linux上下載Redis wget http://download.redis.io/releases/red

create-react-app 腳手架支援less解決方案

1. 在node_modules下找到react-scripts資料夾 cd node_modules/react-scripts 2. 安裝less、less-loader依賴包 a. yarn安裝 yarn add less less-loader b. npm安裝 n

sass 支援中文解決方案

sass不支援中文  不是他不支援  是你開啟的方式不對  我用的是 Ruby    Koala  來壓縮  如果你也是用了這2款 那你沒進來錯   跟著博主的步驟來走 1、 開啟koala 的安裝目錄找到  engine.rb的那個檔案   2、在 requi

Arcgis For Android 支援中文解決方案

之前專案用的Arcgis for Android版本為10.2.1,TextSymbol還支援中文,現在升級到了10.2.4竟然不支援中文了,所有的中文都被空格替換掉了,鬱悶了半天,現在找到了一個比較

NPOI自適應寬度支援中文解決方案

    最近一個專案中涉及報表匯出為excel功能需求。我最開始使用微軟自身的excel COM元件呼叫的方式進行匯出,發現當需要匯出的內容增大到一定程度時,速度十分緩慢,而且呼叫COM元件需要在伺服

解決IE6瀏覽器position:fixed固定定位問題

像你所遇到的問題一樣, IE6瀏覽器有太多的bug讓製作網頁的人頭疼。這篇文章介紹的是介紹的是如何解決IE6不支援position:fixed;屬性的辦法。如果我們需要做某個元素始終位於瀏覽器的底部,不會因為瀏覽器視窗的縮放和滾動條的滾動而變化,那個肯定是想到的用posit

【CSS筆記之五】IE6/IE7/IE8float:right的異常及其解決方法

示例分析程式碼: <div id="channel_tit" class="round_top"> <span class="rtl rtl1"></span> <h2>安卓首頁><a href=

通過js添加的DOM節點的click事件綁定上的解決方案以及IOSclick事件委派失效的解決方案

之前 obj cli 並且 create 使用 引入 gpo 聲明 問題描述: 如以下代碼所示,通過js添加的Dom節點,在其上綁定點擊事件,有的時候會出現點擊事件不響應的情況,按照正常的理解,js代碼具有阻塞性,Dom節點添加成功之後,就可以找到該節點並綁定事件,沒有道理

oracle 10g支援 continue解決方法

解決方案如下 : 採用goto進行跳轉 DECLARE done BOOLEAN; BEGIN FOR i IN 1..50 LOOP IF done THEN GOTO end_loop; END IF; <<

VMware安裝Ubuntu支援1920X1080解析度問題

VMware下安裝Ubuntu不支援1920X1080解析度問題的解決方法: [email protected]:~$ cvt 1920 1080 # 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz Mo

關於nuxt支援import解決方法

首先安裝babel-cli腳手架,在package.json裡在測試環境跟生產環境末尾加上--exec babel-node這句 "dev": "cross-env NODE_ENV=development nodemon server/index.js --watch server --exe

解決IE支援getElementsClassName的方案

在DOM3裡已經加入了getElementsByClassName這個方法,然而IE9、10以外的其它版本均不支援,這是一塊傷痛啊! 目前可以這麼解決,判斷瀏覽器支不支援這個方法,如果支援就不管;如果不支援,就在document物件里加入getElements

RedHat(小紅帽) yum用了的解決辦法

由於RedHat是商業版的,通常由於沒有註冊,導致yum程式無法使用(linux下面,yum是個安裝軟體的“神器”)。此時可用CentOS的地址進行替換。下面將一步步說明如何處理: 一、刪除RedHat自帶的yum相關檔案   1、檔案位置:/etc/yum.conf和/e

Linuxtomcat啟動了的解決方法

 linux下啟動tomcat的時候,如果服務啟動不成功,可以到檢視logs資料夾下的catalina.out  日誌檔案,cat我的日誌檔案可得到如下的錯誤資訊: cat catalina.out  Error: Exception thrown by the ag