国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

javascript 動態生成css代碼的兩種方法

2019-11-19 17:07:31
字體:
來源:轉載
供稿:網友

javascript 動態生成css代碼的兩種方法

有時候我們需要利用js來動態生成頁面上style標簽中的css代碼,方法很直接,就是直接創建一個style元素,然后設置style元素里面的css代碼,最后把它插入到head元素中。但有些兼容性問題我們需要解決。首先在符合w3c標準的瀏覽器中我們只需要把要插入的css代碼作為一個文本節點插入到style元素中即可,而在IE中則需要利用style元素的styleSheet.cssText來解決。還需要注意的就是在有些版本IE中一個頁面上style標簽數量是有限制的,如果超過了會報錯,需要考慮這點。

方法1:

給<style id="css">標簽添加一個id名,在<script>標簽中寫

var oCss=document.getElementById("css");oCss.innerHTML+="#box{width:200px;}";

這樣就可以加上樣式了。

方法2:

有時候我們需要利用js來動態生成頁面上style標簽中的css代碼,方法很直接,就是直接創建一個style元素,然后設置style元素里面的css代碼,最后把它插入到head元素中。但有些兼容性問題我們需要解決。首先在符合w3c標準的瀏覽器中我們只需要把要插入的css代碼作為一個文本節點插入到style元素中即可,而在IE中則需要利用style元素的styleSheet.cssText來解決。還需要注意的就是在有些版本IE中一個頁面上style標簽數量是有限制的,如果超過了會報錯,需要考慮這點。

下面直接放上代碼,看注釋說明。

function addCSS(cssText){  var style = document.createElement('style'), //創建一個style元素    head = document.head || document.getElementsByTagName('head')[0]; //獲取head元素  style.type = 'text/css'; //這里必須顯示設置style元素的type屬性為text/css,否則在ie中不起作用  if(style.styleSheet){ //IE    var func = function(){      try{ //防止IE中stylesheet數量超過限制而發生錯誤        style.styleSheet.cssText = cssText;      }catch(e){      }    }    //如果當前styleSheet還不能用,則放到異步中則行    if(style.styleSheet.disabled){      setTimeout(func,10);    }else{      func();    }  }else{ //w3c    //w3c瀏覽器中只要創建文本節點插入到style元素中就行了    var textNode = document.createTextNode(cssText);    style.appendChild(textNode);  }  head.appendChild(style); //把創建的style元素插入到head中  }//使用addCSS('#demo{ height: 30px; background:#f00;}');

當然這只是一個最基本的演示方法,實際運用中還需進行完善,比如把每次生成的css代碼都插入到一個style元素中,這樣在IE中就不會發生stylesheet數量超出限制的錯誤了。

總結:以上方法可以解決很多問題,有什么不懂的找我!

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巨鹿县| 孝昌县| 米泉市| 台中市| 阿图什市| 大埔县| 星座| 慈溪市| 资源县| 沁源县| 汾西县| 玉田县| 邯郸市| 区。| 六盘水市| 九寨沟县| 咸宁市| 新河县| 澄城县| 安仁县| 安国市| 赣州市| 沿河| 汝南县| 观塘区| 双城市| 湘潭县| 富蕴县| 灌南县| 上思县| 菏泽市| 龙山县| 高密市| 类乌齐县| 岫岩| 淳化县| 红桥区| 泸水县| 阿拉善左旗| 明溪县| 甘泉县|