欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

JavaScript插入動態(tài)樣式實現代碼

2024-04-22    分類: 網站建設

能夠把CSS樣式包含到HTML頁面中的元素有兩個。其中,<link>元素用于包含來自外部的文件,而<style>元素用于指定嵌入的樣式

與動態(tài)腳本類似,所謂動態(tài)樣式是指在頁面剛加載時不存在的樣式;動態(tài)樣式是在頁面加載完成后動態(tài)添加到頁面中。

我們以下面這個典型的<link>元素為例:

<link rel="stylesheet" type="text/css" href="style.css">使用DOM代碼可以很容易的動態(tài)創(chuàng)建出這個元素:

var link = document.createElement("link"); link.rel = "stylesheet"; link.type = "text/css"; link.href = "style.css"; var head = document.getElementsByTagName("head")[0]; head.appendChild(link); 以上代碼在所有主流瀏覽器中都可以正常運行。需要注意的是,必須將<link>元素添加到<head>而不是<body>元素,才能保證在所有瀏覽器中的行為一致。整個過程可以用一下函數來表示:

function loadStyles(url) { var link = document.createElement("link"); link.rel = "stylesheet"; link.type = "text/css"; link.href = url; var head = document.getElementsByTagName("head")[0]; head.appendChild(link); } loadStyles("style.css") 加載外部樣式文件的過程是異步的,也就是加載樣式與執(zhí)行JavaScript代碼的過程沒有固定的次序。

另一種定義樣式的方式是使用<style>元素來包含嵌入式CSS,如下所示:

<style> body { background-color: red; } </style>

按照相同的邏輯,下列DOM代碼應該是有效的:

var style = document.createElement("style"); style.type = "text/css"; style.appendChild(document.createTextNode("body{background-color:red;}")); var head = document.getElementsByTagName("head")[0]; head.appendChild(style); 以上代碼可以在Firefox、Safrai、Chrome和Opera中運行,在IE中則會報錯。IE將<style>視為一個特殊的、與<script>類似的節(jié)點,不允許訪問其子節(jié)點。事實上,IE此時拋出的錯誤與向<script>元素添加子節(jié)點時拋出的錯誤相同。解決IE中的這個問題的辦法,就是訪問元素的styleSheet屬性,該屬性又有一個cssText屬性,可以接受CSS代碼,如下面的例子所示:

var style = document.createElement("style"); style.type = "text/css"; try { style.appendChild(document.createTextNode("body{background-color:red}")); } catch (ex) { style.styleSheet.cssText = "body{background-color:red}"; } var head = document.getElementsByTagName("head")[0]; head.appendChild(style); 與動態(tài)添加嵌入式腳本類似,重寫后的代碼使用了try-catch語句來捕獲IE拋出的錯誤,然后再使用針對IE的特殊方式來設置樣式。一次通用的解決方案如下:

function loadStyleString(css) { var style = document.createElement("style"); style.type = "text/css"; try { style.appendChild(document.createTextNode(css)); } catch (ex) { style.styleSheet.cssText = css; } var head = document.getElementsByTagName("head")[0]; head.appendChild(style); } loadStyleString("body{background-color:red}");

本文來源于成都網站建設公司與成都網站設計制作公司-創(chuàng)新互聯成都公司!

網站名稱:JavaScript插入動態(tài)樣式實現代碼
標題來源:http://www.aaarwkj.com/news39/324739.html

成都網站建設公司_創(chuàng)新互聯,為您提供網站內鏈、電子商務品牌網站建設、動態(tài)網站企業(yè)建站、搜索引擎優(yōu)化

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

1成都定制網站建設
亚洲熟女av综合网丁香| 亚洲欧美日韩激情另类| 欧美人妻不卡一区二区久久| 激情内射日本一区二区三区| 日本一区两区三区不卡视频| 厕所偷拍视频一区二区三区| 欧美精品久久在线观看| 青娱乐青青草91在线| 黑人巨大精品欧美一区免| 免费午夜福利一区二区| 日本一区中文字幕怎么用| 久久精品国产亚洲av麻| 亚洲中文字幕精品一区二区三区| 18以下的人禁止看的视频| 一区二区尤物区亚洲国产精品区| 亚洲国产欧美日韩国产| 日韩精品 视频二区| 色偷偷91综合久久噜噜| 色婷婷丝袜一区网站| 久久综合热这里只有精品| 国内精品亚洲成av人片麻豆| 丝袜美腿一区在线播放| 不卡的av中文字幕在线播放| 99久久久国产精品日本久久区一| 色婷婷狠狠久久综合中文一本 | 成人av免费高清在线| 国产成人国产三级国产精品| 亚洲一区二区三区欧美精品| 国产a情人一区二区国产| 欧美精品一区二区亚洲| 亚洲国产精品一区一区| 色婷婷久久五月中文字幕| 久久热久久热在线视频| 亚洲日本精品免费在线观看| 成年人网站一级黄色免费| 欧美成人黄色免费在线网站| 国产av无毛一区二区三区| 亚洲人成网站18禁止人| 日韩av人妻一区二区三区| 久久久久久亚洲精品人妻| 激情五月婷婷我有我色 |