讓IE6支持fixed的捷徑
本文和大家重點(diǎn)討論一下讓IE6支持fixed的簡(jiǎn)單方法,在主題制作或者修改中一些元素要設(shè)置為隨頁(yè)面滾動(dòng)的效果,通常的做法是加上fixed屬性,或者干脆用js實(shí)現(xiàn)這個(gè)功能。
讓IE6支持fixed的簡(jiǎn)單方法
最近發(fā)現(xiàn)一個(gè)小問(wèn)題:在主題制作或者修改中一些元素要設(shè)置為隨頁(yè)面滾動(dòng)的效果,通常的做法是加上fixed屬性,或者干脆用js實(shí)現(xiàn)這個(gè)功能。
不過(guò)對(duì)于懶得去后臺(tái)更新js文件的同學(xué)來(lái)說(shuō),這不是個(gè)好辦法,或者對(duì)于還未引入js的同學(xué),這更不是好辦法。但是不用的話在IE6下會(huì)無(wú)效,這個(gè)經(jīng)典到目前訪問(wèn)量的半數(shù)以上的瀏覽器版本是直接無(wú)視fixed的(當(dāng)然還有其他若干問(wèn)題,所以希望更新或扔掉該瀏覽器)。
關(guān)于這個(gè)問(wèn)題的解決辦法,我之前的做法一直是用_position:absolute來(lái)暫時(shí)修訂,當(dāng)然這么做產(chǎn)生的效果和想象中的差距很大。最近發(fā)現(xiàn)一個(gè)方法來(lái)修正IE6的fixed效果,如下:
- _top:expression(documentElement.scrollTop+數(shù)值+"px")
也是一個(gè)簡(jiǎn)單的hack,對(duì)于不想引入JS又迫切希望使用fixed屬性的人來(lái)說(shuō),確實(shí)是個(gè)好辦法。
More:
Q:有時(shí)候好像使用document.body.scrollTop來(lái)獲取滾動(dòng)條滾動(dòng)的長(zhǎng)度,結(jié)果滾動(dòng)后得到的也是0,為什么改用document.documentElement.scrollTop就可以了?
A:可以查看一下源代碼,如果沒(méi)有
- <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
這一句那么可以用document.body.scrollTop,否則只能用document.documentElement.scrollTop。
原因:在標(biāo)準(zhǔn)w3c下,document.body.scrollTop恒為0,需要用document.documentElement.scrollTop來(lái)代替;document.documentElement.scrollTop中documentElement對(duì)應(yīng)的是html標(biāo)簽;document.body.scrollTop中body對(duì)應(yīng)的是body標(biāo)簽。
【編輯推薦】
- hover在IE6下的問(wèn)題及解決方法
- 探究IE8與IE7具體功能中窗口功能按鈕的變化
- IE6 IE7 IE8三個(gè)版本的CSS兼容速查手冊(cè)
- IE6下使用CSS定義DIV高度行之有效的辦法
- 技術(shù)前沿 一段JS代碼輕松解決IE6-IE8的兼容性問(wèn)題