站長資訊網
        最全最豐富的資訊網站

        js如何控制css

        js控制css的方法:1、通過style屬性或者“setAttribute()”來更改樣式;2、改變偽類“(after,before)”的“content”內容;3、通過更改類名來更改樣式等等。

        js如何控制css

        本文操作環境:windows7系統、javascript1.8.5&&CSS3版,DELL G3電腦

        js如何控制css?

        JS控制css樣式的幾種方式

        我們在js的工作學習中總會遇到一些不輕易通過style屬性動態加載css樣式的情況(eg:偽類的樣式控制,動畫的樣式控制),這里總結一下js改變樣式的幾種方法:

        1,通過style屬性或者setAttribute()來更改樣式

        ele.style.width='50px';//最常用 ele.style.cssText='width:50px';//并不會覆蓋原先所有css ele.style.setProperty("width", "50px", "important");//可以傳第三個參數 ele.setAttribute("style", "width: 50px")//也不會覆蓋原先所有css放心用
        ele.style.width='50px';//最常用 ele.style.cssText='width:50px';//并不會覆蓋原先所有css ele.style.setProperty("width", "50px", "important");//可以傳第三個參數 ele.setAttribute("style", "width: 50px")//也不會覆蓋原先所有css放心用

        2,如果只是改變偽類(after,before)的content內容也可以這么做

        //css代碼 div::after{     content:attr(data-myadd);     width:10px; } //js代碼 div.setAttribute('data-myadd',需要動態加載的內容)
        //css代碼 div::after{     content:attr(data-myadd);     width:10px; } //js代碼 div.setAttribute('data-myadd',需要動態加載的內容)

        3,通過更改類名來更改樣式

        ele.className=''; ele.classList.add();//emmmm沒什么好說的
        ele.className=''; ele.classList.add();//emmmm沒什么好說的

        4,那么重點來了:利用document.styleSheets我們獲取到所有樣式表,然后選擇一個樣式表通過 insertRule 來添加樣式;也可以創建新的cssRules,通過addRule()來添加樣式

        document.styleSheets:獲取到的是所有樣式列表的集合 href:通過link標簽引入的樣式表,則是樣式表的URL,否則為null media:當前樣式表支持的所有媒體類型集合 type:樣式表類型的字符串 disabled: 通過disabled來屏蔽掉該樣式表,可以用來切換樣式表 ; document.styleSheets[i].disabled = true cssRules:是當前樣式列表的所有樣式集合;document.styleSheets[i].cssRules cssText:當前樣式表的某一個樣式的樣式document.styleSheets[i].cssRules[i].cssText selectorText:當前樣式的選擇符 parentStyleSheet:當前規則所屬樣式表;IE不支持 insertRule(rule,index):在index前插入一條rule新規則; document.styleSheets[0].insertRule('* {background:blue;color:#000}',0)不支持IE;document.styleSheets[0].addRule('*',' {background:blue;color:#000}',0)支持IE; deleteRule(index):刪除某個央視列表的第index個樣式;IE用removeRule(index) //使用document.styleSheets獲取樣式表的時候最好獲取最后一個,在最后一個樣式表上添加樣式 var sheets=document.styleSheets; var lastSheet=sheets[sheets.length-1]; lastSheet.insertRule('#div{width:10px}',index)//將#div樣式直接添加到cssRules中;index是添加到第幾條;現代瀏覽器 lastSheet.addRule('div','width:10px;',0)//IE瀏覽器
        //使用document.styleSheets獲取樣式表的時候最好獲取最后一個,在最后一個樣式表上添加樣式 var sheets=document.styleSheets; var lastSheet=sheets[sheets.length-1]; lastSheet.insertRule('#div{width:10px}',index)//將#div樣式直接添加到cssRules中;index是添加到第幾條;現代瀏覽器 lastSheet.addRule('div','width:10px;',0)//IE瀏覽器

        5,動態加載樣式表

        如果需要更改的樣式比較多,還是建議通過動態加載樣式的方式來改變頁面樣式

        //改變樣式文件的引用 function loadStyle(url){   var link = document.createElement('link');     link.type = 'text/css';     link.rel = 'stylesheet';     link.href = url;     var head = document.getElementsByTagName('head')[0];     head.appendChild(link); } loadStyle('test.css'); //動態加載css代碼片段 var style = document.createElement('style');     style.type = 'text/css';     style.rel = 'stylesheet';     try{ //Chrome Firefox Opera Safari         style .appendChild(document.createTextNode(code));     }catch(ex){//IE         style.styleSheet.cssText = code;     }     var head = document.getElementsByTagName('head')[0];     head.appendChild(style); } loadCssCode('body{background-color:#f00}');
        //改變樣式文件的引用 function loadStyle(url){   var link = document.createElement('link');     link.type = 'text/css';     link.rel = 'stylesheet';     link.href = url;     var head = document.getElementsByTagName('head')[0];     head.appendChild(link); } loadStyle('test.css');   //動態加載css代碼片段 var style = document.createElement('style');     style.type = 'text/css';     style.rel = 'stylesheet';     try{ //Chrome Firefox Opera Safari         style .appendChild(document.createTextNode(code));     }catch(ex){//IE         style.styleSheet.cssText = code;     }     var head = document.getElementsByTagName('head')[0];     head.appendChild(style); } loadCssCode('body{background-color:#f00}');

        推薦學習:《javascript高級教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产精品亚洲欧美大片在线观看| 亚洲AV无码久久精品狠狠爱浪潮| 欧美精品免费专区在线观看| 精品人妻中文字幕有码在线| 久久久无码精品亚洲日韩软件| 国产精品欧美亚洲韩国日本| 亚洲精品乱码久久久久久中文字幕| 91亚洲精品自在在线观看| 久久亚洲欧美国产精品| 男女男精品网站免费观看| 99精品视频在线观看婷| 国产在线精品免费aaa片| 亚洲日韩国产AV无码无码精品| 国产成人精品免费视频大全| 国产精品国产三级国产专播| 色欲精品国产一区二区三区AV| 欧美精品三区| 国产精品片在线观看手机版| 久久99热精品| 2021国产精品成人免费视频| 无码人妻精品一区二区三区久久| 久久精品人妻一区二区三区| 国产精品美女久久久免费| 精品视频一区二区三区免费| 国产精品第12页| 久久99精品久久久久久久久久| 亚洲?V乱码久久精品蜜桃| 久久久99精品一区二区| 国产亚洲精品自在线观看| 99国内精品久久久久久久| 久久精品一区二区国产| 国产成人精品高清在线观看93| 久久久无码精品亚洲日韩蜜臀浪潮| 亚洲精品自在在线观看| 亚洲国产精品自产在线播放| 日本精品一区二区三区在线视频 | 精品久久无码中文字幕| 亚洲AV无码久久精品成人| 中文精品无码中文字幕无码专区| 香港aa三级久久三级老师2021国产三级精品三级在| 精品人妻少妇一区二区|