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