您好,登錄后才能下訂單哦!
這篇文章主要講解了“如何使用css樣式加載的優先級”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何使用css樣式加載的優先級”吧!
定義了class,在頁面最初加載的過程中是被識別出來了,當加載完畢后的一瞬間,樣式像被重寫了一樣,定義好的margin-bottom不起作用了。控件因為沒有這個樣式就擠在了一起。
測試中FF和Chrome都是可以的,IE8有問題,但是用IE developer工具是可以看到這個margin-bottom被識別出來了,也沒有被重定義。
問題比較怪異。
這個頁面不是普通的結構,頁面內容是異步生成的,而不是之前已經寫好各種元素的普通頁面。至于在加載完的一瞬間是被什么給重定義了還沒有找到原因。現象是其中的擠在一起的表單元素隨便點擊一個,它所在的模塊的所有表單都會加載margin-bottom樣式,就不會再擠在一起。或者用IE developer工具,先把margin-bottom前面的勾點擊為不選,然后再點擊選中,這樣頁面上所有沒有識別margin-bottom的表單元素都會正常加載這個樣式。
但這肯定不是解決問題的辦法,不能讓客戶看到這個問題,UI是最能打動用戶的部分,也是最容易激怒用戶的部分。
隨后試了幾種方法,專門寫一個樣式定義margin-bottom,而不是隨著別的定義一起,不行;
加!important這種優先級很高的辦法也不行;
直接寫style優先級還不如!important,并且代碼冗余太多,弊端更多,不行;
然后試了一個方法,script的方法,可行,代碼如下:
代碼如下:
<script type="text/javascript">
document.getElementByClassName("mar_b_10").style.margin-bottom="10px";
</script>
其實就是再聲明一遍,跟class是同樣的內容,瀏覽器就能識別了。JS控制的樣式對象,document.getElementByClassName("mar_b_10").style.margin-bottom="10px";一般情況是JS控制的樣式優先級高,因為往往DOM操作是在DOM樹加載完畢之后。在DOM樹加載完畢,這個時候我寫了js進行重定義,就沒有別的再對這次樣式定義進行覆蓋,結果就比較滿意。
一般情況下:
[1位重要標志位] > [4位特殊性標志] > 聲明先后順序
!important > [ 內聯樣式 > ID選擇器 > 類,屬性,偽類 選擇器 > 元素標簽,偽元素 選擇器 ]
使用!important可以改變優先級別為最高,其次是style對象,然后是id > class >tag ,另外,另外在同級樣式按照申明的順序后出現的樣式具有高優先級。
感謝各位的閱讀,以上就是“如何使用css樣式加載的優先級”的內容了,經過本文的學習后,相信大家對如何使用css樣式加載的優先級這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。