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

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欧美精品在线视频| 亚洲女同另类在线播放视频| 日本不卡一区二区在线播放 | 免费草b视频在线观看| 麻豆影片在线免费观看| 黄色录像日本黄色录像| 国产在线不卡免费精品| 国产丰满熟女视频免费| 精品国产一区二区av麻豆| 人体蜜桃视频一区二区| 国内自拍一区二区三区| 欧美日韩亚洲综合在线| 亚洲偷拍自拍在线观看| 亚洲码av一区二区三区| 草草影院最新地址在线观看| 国内自拍韩国资源在线| 丰满人妻毛片一区二区三区| 日本成人一区二区三区在线| 日韩精品一区免费电影| 欧美日韩国产一区在线| 国产一区二区三区午夜视频 | 中文字幕一区精品日韩| 好吊毛片一区二区三区| 亚洲婷婷综合久久一区二区| 中文字幕五月久久婷热| 青青草原三区在线播放| 精品欧美一区二区在线| 欧美精品高清在线视频| 亚洲毛片免费视频久久| 精品熟妇人妻一区二区三区| 久久精品亚洲一区二区| 一区二区在线视频国产| 高清日韩精品视频在线观看| 国产精品国产三级国产普通话99| 久久精品性少妇一区二区三区| av在线成人国产精品欧美| 最新亚洲国产高清激情| 美味人妻手机在线观看|