关于HTML Object中三个Style实例的区别
?我們在網(wǎng)頁元素中定義的CSS屬性,會被映射成該DHTML對象中Style對象(不是Style Tag對象)的實(shí)例。我們可以使用import-style[1]和inline-style[2]為網(wǎng)頁元素指定CSS屬性,同時(shí)也可以使用element. style. attributeName = '...'的形式在Web頁腳本中設(shè)置其值。但是同一個(gè)元素上的這些CSS屬性值并不是都疊加后映射到同一個(gè)Style對象的實(shí)例上。
??? 我們使用腳本最常訪問的Style對象,一般是element[3].style,但是這個(gè)對象只能反映出inline-style和使用腳本設(shè)置的樣式值。同時(shí)這個(gè)element.style是不能訪問元素的import-style的屬性設(shè)置的。如果非要訪問,可以使用styleSheets集合,在里面遍歷獲得元素的import-style屬性,不過這樣太麻煩了。
??? 在IE5.0及以后,微軟為HTML Object提供了兩個(gè)新的Style對象實(shí)例,分別是:currentStyle和runtimeStyle。
??? currentStyle可以獲元素的實(shí)際表現(xiàn)出來的CSS屬性,就是說除了inline-style、import-style外,還包括了HTML元素屬性的設(shè)置和HTML元素默認(rèn)屬性的累加。累加的默認(rèn)優(yōu)先級是:inline-style > import-style > HTML Attribute > HTML default。例如:<div style="display:inline"></div>。其currentStyle.display將會是inline,雖然div本身默認(rèn)的display是block。不過對于inline-style和import-style的優(yōu)先級不是絕對的,它倆還可以使用 ! important限定符來定制優(yōu)先級,當(dāng)然要是都使用了 ! important限定,就和都沒有用一樣。同時(shí)currentStyle還可以獲取display屬性為none的元素的CSS屬性,得到的屬性值和其顯示時(shí)的值相同。由于currentStyle是一個(gè)異步對象,其實(shí)際取值依賴于它的實(shí)際顯示狀態(tài),而不依賴于腳本對style的賦值。
??? runtimeStyle也是Style對象的實(shí)例,所有的runtimeStyle的屬性在默認(rèn)狀態(tài)下都是為空的(就是沒有指定值)。那么它是用來干什么的呢?這個(gè)屬性和style基本沒有什么關(guān)系,顧名思義,它是在運(yùn)行時(shí)刻控制元素的CSS屬性的,設(shè)置了runtimeStyle后會影響currentStyle的對應(yīng)屬性值,同時(shí)也會在HTML元素的顯示上表現(xiàn)出來。它的最大特點(diǎn)是,當(dāng)我們把修改過的CSS屬性的值再次清掉(賦'')的時(shí)候,其HTML元素的CSS屬性會變?yōu)橘x值前的值,同時(shí)currentStyle也還原了。runtimeStyle設(shè)置的屬性具有最高的優(yōu)先級,但是它不是永久的。
??? style的用途不說了,太easy。currentStyle用來取元素實(shí)際表現(xiàn)得CSS屬性。而runtimeStyle的用途除了本頁提供的"Resume"功能這種情況外,想了半天再也想不出啥別的大作用了。
?
??? [1]. import-style是指在HTML元素中使用class屬性或者使用其id等直接為元素指派的外部CSS屬性。例如:<div class="fontSize"></div>。
??? [2]. inline-style是指在HTML元素中使用style屬性直接為其指派的CSS屬性。例如:<div style="width: 100%; height: 100%"></div>。
??? [3]. 泛指Web頁中的HTML標(biāo)簽元素。
本文轉(zhuǎn)自博客園鳥食軒的博客,原文鏈接:http://www.cnblogs.com/birdshome/,如需轉(zhuǎn)載請自行聯(lián)系原博主。
總結(jié)
以上是生活随笔為你收集整理的关于HTML Object中三个Style实例的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM学习之GC常用算法
- 下一篇: iOS开发的一些事