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

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成人| 色噜噜色一区二区三区| 日本一区二区三区播放| 99热久久精品免费精品| 日本一区二区三区高清在线| 欧美日韩久久亚洲精品| 亚洲精品国产第一区第二区| 日韩av熟女中文字幕| 国产女同互慰一区二区| 中文在线在线天堂中文| 欧美亚洲综合日韩精品区| 国产一区二区av免费| 精品欧美一区二区三久久| 国产有码视频一区二区三区| 国产原创剧情av网址| 精品国产一区二区av麻豆| 日韩电影一区二区在线观看中文字幕 | av在线观看亚洲天堂| 免费黄色日韩在线观看| 欧美日本国产高清不卡| 亚洲美女毛茸茸的逼逼| 日韩精品一区高清视频| 亚洲天堂av一区二区在线 | 欧美日韩一级一区二区| 97人妻人人澡人人爽| 亚洲天堂成人av蜜臀| 日韩在线国产精品视频| 亚洲a∨乱码一区二区三区蜜臀| 美日韩黄色大片免费看| 午夜福利精品在线观看| 色婷婷狠狠久久综合中文一本| 亚洲综合日韩精品国产av| 一区二区视频精品在线观看| 欧洲精品久久久久久| 99久久免费精品老色| 国产一区二区日本在线| 婷婷六月亚洲中文字幕| 强d乱码中文字幕在线| 伊人青草免费在线视频|