中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js如何控制css

發布時間:2022-04-22 13:57:05 來源:億速云 閱讀:152 作者:iii 欄目:大數據

這篇文章主要講解了“js如何控制css”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“js如何控制css”吧!

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

本文操作環境: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}');

感謝各位的閱讀,以上就是“js如何控制css”的內容了,經過本文的學習后,相信大家對js如何控制css這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

城口县| 纳雍县| 安阳县| 梅河口市| 灌阳县| 麻栗坡县| 阜新| 吴旗县| 三穗县| 山东省| 东至县| 汽车| 曲靖市| 蕲春县| 宁晋县| 佛教| 衢州市| 吐鲁番市| 老河口市| 巨鹿县| 土默特右旗| 盐亭县| 孟村| 浦江县| 卢氏县| 盐边县| 龙陵县| 交城县| 阿荣旗| 玉田县| 临潭县| 康马县| 桓台县| 大安市| 和平区| 崇左市| 桐柏县| 商洛市| 淮南市| 航空| 南岸区|