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

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://aaarwkj.com/news39/324739.html

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

廣告

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

1成都定制網站建設
宅男视频在线观看视频| 韩国日本午夜福利在线| 日韩精品在线第一视频| 免费国产网站在线观看不卡| 99久久免费看国产精品| 99亚洲综合一区二区三区| 女同三人按摩高潮喷出| 欧美成人午夜精品一区二区| 91久久一区二区秋霞免费| 一本色桃子精品久久中文字幕| 午夜日本大胆裸体艺术| 欧美一日韩一级片免费看| 亚洲欧美日韩国产在线一区| 91亚洲国产成人久久| 中文字幕精品人妻在线| 一个人看的视频天堂色| 亚洲国产精品一区二区三区在线| 国产在线视频不卡一线路| 日本丝袜福利在线观看| 成人免费在线国产视频| 午夜少妇久久久久久久久| 亚洲乱码中文字幕在线观看| 色婷婷中文字幕久久久| 国产色视频一区在线观看| 中文字幕亚洲精品乱码在线| 少妇高潮惨叫久久麻豆传| 久久99热最新地址获取| 国产三级国产精品国产国在线观看| 一区二区三区毛片免费| 日韩一二三四区免费观看| 91麻豆国产在线视频| 欧美亚洲国语精品一区二区| 亚洲欧美另类国产一区| 久久视热频这里只有精品| 在线精品91国产在线观看| 国产精品欧美日韩中文| 免费可以看的黄片欧美| 91在线视频欧美国产| 国产三级三级三级精品8ⅰ区| 国产激情福利一区二区| 97视频在线观看网站|