日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > CSS >内容正文

CSS

深入理解脚本化CSS系列第五篇——动态样式

發(fā)布時間:2024/4/13 CSS 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入理解脚本化CSS系列第五篇——动态样式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前面的話

  很多時候,DOM操作比較簡單明了,因此用javascript生成那些通常原本是HTML代碼生成的內容并不麻煩。但由于瀏覽器充斥著隱藏的陷阱和不兼容問題,處理DOM中的某些部分時要復雜一些,比如動態(tài)樣式就相對較復雜

  所謂動態(tài)樣式,是指在頁面加載時并不存在,在頁面加載完成后動態(tài)添加到頁面的樣式

  動態(tài)樣式包括兩種情況:一種是通過<link>元素插入外部樣式表,另一種是通過<style>元素插入內部樣式。下面將詳細介紹這兩種情況

?

外部樣式

/*style.css里面的內容*/ .box{height:100px;width:100px;background-color: pink;} 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);

  使用函數(shù)封裝如下:

<div class="box">測試文字</div> <button id="btn">動態(tài)添加樣式</button> <script> function loadStyles(url){loadStyles.mark = 'load';var link = document.createElement("link");link.rel = "stylesheet";link.type = "text/css";link.href = url;var head = document.getElementsByTagName('head')[0];head.appendChild(link); } btn.onclick = function(){if(loadStyles.mark != 'load'){loadStyles("style.css"); } } </script>

內部樣式

var style = document.createElement("style"); style.type = "text/css"; style.innerHTML = ".box{height:100px;width:100px;background-color: pink;}"; var head = document.getElementsByTagName('head')[0]; head.appendChild(style);

  使用函數(shù)封裝如下:

<div class="box">測試文字</div> <button id="btn">動態(tài)添加樣式</button> <script> function loadStyles(str){loadStyles.mark = 'load';var style = document.createElement("style");style.type = "text/css";style.innerHTML = str;var head = document.getElementsByTagName('head')[0];head.appendChild(style); } btn.onclick = function(){if(loadStyles.mark != 'load'){loadStyles(".box{height:100px;width:100px;background-color: pink;}"); } } </script>

  [注意]該方法在IE8-瀏覽器中報錯,因為IE8-瀏覽器將<style>視為當作特殊的節(jié)點,不允許訪問其子節(jié)點或設置innerHTML屬性

?

兼容寫法

  動態(tài)插入內部樣式時,存在兼容問題,下面有兩種兼容處理辦法

兼容一

  IE瀏覽器支持訪問并修改元素的CSSStyleSheet對象的cssText屬性,通過修改該屬性可實現(xiàn)類似效果

<div class="box">測試文字</div> <button id="btn">動態(tài)添加樣式</button> <script> function loadStyles(str){loadStyles.mark = 'load';var style = document.createElement("style");style.type = "text/css";try{style.innerHTML = str;}catch(ex){style.styleSheet.cssText = str;}var head = document.getElementsByTagName('head')[0];head.appendChild(style); } btn.onclick = function(){if(loadStyles.mark != 'load'){loadStyles(".box{height:100px;width:100px;background-color: pink;}"); } } </script>

兼容二

  作用域元素是微軟自己的一個定義,一般來說頁面中看到的元素是有作用域的元素,頁面中看不到的元素就是無作用域的元素?

  在IE8-瀏覽器中,<style>元素是一個沒有作用域的元素,如果通過innerHTML插入的字符串開頭就是一個無作用域的元素,那么IE8-瀏覽器會在解析這個字符串前先刪除該元素

  所以,下面這段代碼是無效的

div.innerHTML = '<style>div{height:100px;}</style>';

  于是,可以通過增加一個'_'文本節(jié)點,然后再刪除使之有效

div.innerHTML = "_<style>div{height:100px;}</style>";div.removeChild(div.firstChild); <div class="box">測試文字</div> <button id="btn">動態(tài)添加樣式</button> <script> function loadStyles(str){loadStyles.mark = 'load';var div = document.createElement("div");div.innerHTML = '_' + '<style>' + str+'</style>';div.removeChild(div.firstChild);var head = document.getElementsByTagName('head')[0];head.appendChild(div.firstChild); div = null; } btn.onclick = function(){if(loadStyles.mark != 'load'){loadStyles(".box{height:100px;width:100px;background-color: pink;}"); } } </script>

總結

以上是生活随笔為你收集整理的深入理解脚本化CSS系列第五篇——动态样式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 四虎国产在线观看 | 精品国产丝袜一区二区三区乱码 | 亚洲午夜视频在线观看 | 一级二级三级视频 | 亚洲不卡在线 | 成人在线观看国产 | 国产精品久久久久永久免费看 | 久久久无码精品亚洲无少妇 | 中文字幕乱轮 | 色老头影视| 精品免费视频 | 国产精品丝袜视频无码一区69 | 黄色欧美在线观看 | 亚洲色图在线播放 | 国产精品白浆一区二小说 | 另类小说亚洲色图 | 成年人免费看黄色 | 国产91在线精品 | 色屁屁ts人妖系列二区 | 欧美黑人精品一区二区 | 国产色网站 | 色老头在线视频 | 亚洲午夜av久久乱码 | 国产亚洲欧美一区 | 国产精品久久久免费观看 | 成人激情开心网 | 尤物网站在线 | 白白色免费视频 | 日本在线有码 | 99色影院 | 国产白丝精品91爽爽久久 | 抖音视频在线观看 | 久久视频精品在线 | 中文字幕一区二区三区乱码不卡 | 久操视频免费看 | 日韩特级 | 黄色电影在线视频 | 2017日日夜夜 | 日韩精品免费一区二区夜夜嗨 | 99自拍网 | av黄色免费在线观看 | 欧美国产91 | 无码av天堂一区二区三区 | 久久机热 | 一级肉体全黄毛片 | 99热这里只有精 | av中文网 | 日日夜夜添 | 国产日本精品视频 | 免费日韩| 在线免费观看h片 | 99在线免费观看视频 | 日韩精品一区二区三区网站 | 1000亚洲裸体人体 | 色就是色综合 | 丰满岳乱妇在线观看中字无码 | 黄色网战大全 | 欧美jizzhd精品欧美18 | 国产精品99久久久久久宅男 | 国产一二三级 | 一区二区有码 | 久久久精品久久久久 | 日日夜夜人人 | 寡妇高潮一级视频免费看 | 欧美日韩免费高清 | 亚洲毛片一级 | 久久久性色精品国产免费观看 | 亚洲色婷婷久久精品av蜜桃 | www.日日操 | 久久黄色av | 国产一级免费 | 人妻va精品va欧美va | 午夜影院体验区 | 被两个男人吃奶三p爽文 | 欧洲女性下面有没有毛发 | 扒开女人屁股进去 | 国产成人久久 | 青青在线免费观看 | 亚洲 自拍 另类 欧美 丝袜 | 国产精品178页 | 亚洲av最新在线网址 | 久久99精品国产.久久久久久 | 中文字幕日韩经典 | 成人三区 | 日韩美女国产精品 | 久操福利在线 | 国产激情精品 | 激情综合五月 | 欧美极品jizzhd欧美 | 永久免费看片在线观看 | 丰满人妻一区二区三区精品高清 | 色综合中文网 | 破处视频在线观看 | 2025国产精品视频 | 久久久久久久一区二区 | 国产日韩欧美视频在线观看 | 四色最新网址 | 在线免费看av | 噼里啪啦动漫高清在线观看 |