亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JS讀寫CSS樣式的方法匯總

2019-11-20 09:14:05
字體:
來源:轉載
供稿:網友

為了日后方便查詢,本人翻閱了一些資料總結了以下方法,僅限原生JS,如有不對的地方歡迎指出!只求大家看完覺得有學到點什么就OK了!

一、可以通過DOM節點對象的style對象(即CSSStyleDeclaration對象)來讀寫文檔元素的CSS樣式
如:var elm = document.getElementById('test');
      elm.style.color = 'black';

二、通過Element對象的getAttribute()、setAttribute()、removeAttribute()直接讀寫style屬性
 如:elm.setAttribute('style','color:red;line-height:30px');

三、通過CSSStyleDeclaration對象的cssText屬性和setProperty()、removeProperty等方法
如:

elm.style.cssText ='color:red;line-height:30px';elm.style.removeProperty('color');elm.style.setProperty('color', 'green', 'important');elm.style.cssText = ''; //快速清空該規則的所有聲明

每一條CSS規則的樣式聲明部分(大括號內部的部分),都是一個CSSStyleDeclaration對象,它的屬性和方法:
屬性:
1.cssText:當前規則的所有樣式聲明文本。該屬性可讀寫,即可用來設置當前規則。
2.length:當前規則包含多少條聲明。
3.parentRule:包含當前規則的那條規則,同CSSRule接口的parentRule屬性。
方法:
1.getPropertyPriority()方法返回指定聲明的優先級,如果有的話,就是“important”,否則就是空字符串;
2.getPropertyValue方法返回指定聲明的值;
3.item(index)方法返回指定位置的屬性名,一般用[index]語法更直接;
4.removeProperty方法用于刪除一條CSS屬性,返回被刪除的值;
5.setProperty方法用于設置指定的CSS屬性,沒有返回值;

四、利用document.styleSheets屬性,返回當前頁面的所有StyleSheet對象(即所有樣式表),它是一個只讀的類數組對象,它的元素是CSSStyleSheet對象(繼承自StyleSheet對象),該對象的屬性方法如下:
屬性:
1.cssRules類數組對象,元素是樣式表中CSS規則CSSStyleRule對象;IE9以下為rules;
2.disabled屬性用于打開或關閉一張樣式表,值為true或disabled;
3.ownerNode屬性返回StyleSheet對象所在的DOM節點,通常是<link>或<style>。對于那些由其他樣式表引用的樣式表,該屬性為null;
4.因為CSS的@import命令允許在樣式表中加載其他樣式表,就有了parentStyleSheet屬性,它返回包括了當前樣式表的那張樣式表。如果當前樣式表是頂層樣式表,則該屬性返回null;
5.type屬性返回StyleSheet對象的type值,通常是text/css;
6.title屬性返回StyleSheet對象的title值;
7.href屬性是只讀屬性,返回StyleSheet對象連接的樣式表地址。對于內嵌的style節點,該屬性等于null;
8.media屬性表示這個樣式表是用于屏幕(screen),還是用于打?。╬rint),或兩者都適用(all),該屬性只讀,默認值是screen;
方法:deleteRule()從樣式表中刪除一條規則,insertRule()向樣式表中插入一條新規則,IE9以下為addRule()、removeRule();
如:

 document.styleSheets[0].insertRule('#test:hover{color: white;}',0); document.styleSheets[0].deleteRule(0); //刪除樣式表中的第一條規則 document.styleSheets[0].cssRules[1].selectorText; //返回選擇器字符串 document.styleSheets[0].cssRules[1].cssText; //返回規則字符串,含選擇器 document.styleSheets[0].cssRules[1].style.border; document.styleSheets[0].cssRules[1].style.cssText; //返回當前規則的所有樣式聲明字符串

五、用window對象的getComputedStyle方法,第一個參數是Element對象,第二個參數可以是null、空字符串、偽元素字符串,該方法返回一個只讀的表示計算樣式的CSSStyleDeclaration對象,它代表了實際應用在指定元素上的最終樣式信息,即各種CSS規則疊加后的結果; 

如:var color = window.getComputedStyle(elm, ':before').color;
       var color = window.getComputedStyle(elm, ':before').getPropertyValue('color');
       或:var color = window.getComputedStyle(elm, null).color;

表示計算樣式的CSSStyleDeclaration對象與表示內聯樣式的CSSStyleDeclaration對象的區別:
1.計算樣式的屬性是只讀的;
2.計算樣式的值是絕對值,類似百分比和點之類相對的單位將全部轉換為以'px'為后綴的字符串絕對值,其值是顏色的屬性將以“rgb(#,#,#)”或“rgba(#,#,#,#)”的格式返回;
3.不計算復合屬性,只基于最基礎的屬性,如不要查詢margin,而單獨查詢marginTop等;
4.計算樣式對象未定義cssText屬性;
5.計算樣式同時具有欺騙性,使用時需注意,在查詢某些屬性時的返回值不一定精準,如查詢font-family;
6.IE9以下不支持getComputedStyle方法,IE的Element對象有currentStyle屬性;

六、直接添加樣式表
1.創建標簽<style>添加一張內置樣式表

var style1 = document.createElement('style'); style1.innerHTML = 'body{color:red}#top:hover{background-color: red;color: white;}'; document.head.appendChild(style1);

2.另一種是添加外部樣式表,即在文檔中添加一個link節點,然后將href屬性指向外部樣式表的URL

var link1 = document.createElement('link');link1.setAttribute('rel', 'stylesheet');link1.setAttribute('type', 'text/css');link1.setAttribute('href', 'reset-min.css');document.head.appendChild(link1);

七、window.matchMedia方法用來檢查CSS的mediaQuery語句。各種瀏覽器的最新版本(包括IE 10+)都支持該方法,對于不支持該方法的老式瀏覽器,可以使用第三方函數庫matchMedia.js;
下面是mediaQuery語句的一個例子:

 @media all and (max-device-width: 700px) {           body {background: #FF0;}         } 

window.matchMedia方法接受一個mediaQuery語句的字符串作為參數,返回一個MediaQueryList對象。該對象有以下兩個屬性:
media:返回所查詢的mediaQuery語句字符串。
matches:返回一個布爾值,表示當前環境是否匹配查詢語句。

var result = window.matchMedia('(max-width: 700px)');    if (result.matches) {      console.log('頁面寬度小于等于700px');    } else {      console.log('頁面寬度大于700px');     }

 window.matchMedia方法返回的MediaQueryList對象有兩個方法,用來監聽事件:addListener方法和removeListener方法。如果mediaQuery查詢結果發生變化,就調用指定的回調函數;

 var mql = window.matchMedia("(max-width: 700px)");    mql.addListener(mqCallback);// 指定回調函數    mql.removeListener(mqCallback);// 撤銷回調函數     function mqCallback(mql) {       if (mql.matches) {// 寬度小于等于700像素}        else { // 寬度大于700像素}     } 

本文參考:
MDN: https://developer.mozilla.org/zh-CN/docs/Web/API
阮一峰javascript參考:http://javascript.ruanyifeng.com/dom/css.html
javascript權威指南第六版

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情亚洲视频| 精品久久久一区| 成人a免费视频| 精品一区二区三区三区| 欧美激情视频在线| 欧美成人精品xxx| 在线日韩欧美视频| 日韩免费在线观看视频| 97国产成人精品视频| 欧美香蕉大胸在线视频观看| 国产视频精品久久久| 国产免费一区视频观看免费| 91av免费观看91av精品在线| 久久久久久一区二区三区| 中文日韩在线视频| 国产精品精品久久久久久| 亚洲一区二区精品| 欧美日韩国产黄| 久久久亚洲国产天美传媒修理工| 成人黄色av免费在线观看| 久久久伊人欧美| 久久夜色精品国产亚洲aⅴ| 国产精品视频最多的网站| 欧美性猛交99久久久久99按摩| 68精品国产免费久久久久久婷婷| 久久高清视频免费| 在线观看免费高清视频97| 亚洲综合在线中文字幕| 国产精品白丝av嫩草影院| 91精品国产乱码久久久久久久久| 欧美日韩爱爱视频| 91免费看片网站| 亚洲国产中文字幕在线观看| 国语自产精品视频在线看一大j8| 国产97在线视频| 中文字幕亚洲综合| 黑人极品videos精品欧美裸| 狠狠久久亚洲欧美专区| 亚洲丝袜一区在线| 久久精品在线视频| 亚洲tv在线观看| 亚洲少妇中文在线| 国产精品视频xxxx| 精品久久国产精品| 国产男女猛烈无遮挡91| 国产欧美最新羞羞视频在线观看| 亚洲a级在线播放观看| www.午夜精品| 国产精品96久久久久久又黄又硬| 欧美在线视频免费| 亚洲白虎美女被爆操| 欧美久久精品午夜青青大伊人| 亚洲精品成人久久久| 久久久久久久久国产| 日韩在线视频免费观看高清中文| 久久视频在线观看免费| 日韩中文娱乐网| 伊人亚洲福利一区二区三区| 国产精品视频免费观看www| 亚洲va久久久噜噜噜久久天堂| 中文字幕自拍vr一区二区三区| 国产亚洲一区精品| 欧美成人性生活| 欧美电影免费观看高清完整| wwwwwwww亚洲| 亚洲国产福利在线| 亚洲精品日韩av| 国产精品久久久久久亚洲影视| 久久精品国产欧美激情| 欧洲成人免费视频| 亚洲美女精品久久| 亚洲激情国产精品| 国产精品视频男人的天堂| 欧美电影免费在线观看| 国产精品成人av在线| 粉嫩老牛aⅴ一区二区三区| 日韩电影免费观看中文字幕| 亚洲欧美成人精品| 欧美日韩激情视频8区| 日韩有码在线视频| 欧美激情亚洲自拍| 91精品国产自产在线| 国产亚洲精品美女久久久久| 日韩成人激情在线| 91亚洲国产精品| 韩国视频理论视频久久| 国内精品一区二区三区四区| 国外成人在线视频| 国内伊人久久久久久网站视频| 日本一区二区三区在线播放| 国产精品高潮呻吟久久av无限| 亚洲第一男人天堂| 国产精品一二区| 日韩理论片久久| 亚洲日韩中文字幕在线播放| 日本成人免费在线| 亚洲有声小说3d| 91av中文字幕| 亚洲欧洲国产精品| 亚洲最大的网站| 亚洲性生活视频| 午夜精品久久久久久久男人的天堂| 日韩美女在线观看一区| 欧美壮男野外gaytube| 国产精品免费福利| 国产精品久久久久久久久粉嫩av| 中文字幕精品视频| 久久精品青青大伊人av| 欧美性videos高清精品| 成人两性免费视频| 中文字幕日韩在线视频| 亚洲日本成人网| 欧美大片免费观看| 国产亚洲a∨片在线观看| 精品人伦一区二区三区蜜桃网站| 日韩在线激情视频| 亚洲韩国欧洲国产日产av| 韩国欧美亚洲国产| 亚洲图中文字幕| 日韩精品在线影院| 国产精品亚洲综合天堂夜夜| 91久久久久久国产精品| 国产亚洲一区精品| 国产精品偷伦视频免费观看国产| 欧美日韩人人澡狠狠躁视频| 亚洲精品福利免费在线观看| 成人xvideos免费视频| 国产精品久久久久免费a∨| 97人人做人人爱| 欧美性猛交丰臀xxxxx网站| 久久视频在线播放| 亚洲精品一区二区网址| 日韩电影在线观看中文字幕| 亚洲国产日韩欧美在线99| 精品福利樱桃av导航| 国产精品色午夜在线观看| 亚洲国产精品成人精品| 亚洲一区国产精品| 日本免费一区二区三区视频观看| 精品久久久久久久久久ntr影视| 国产成人亚洲综合青青| 国产精品第8页| 国产一区二区av| 亚洲大尺度美女在线| 国产成人a亚洲精品| 久久久久久成人精品| 欧美情侣性视频| 免费成人高清视频| 亚洲欧美国产一区二区三区| 久久深夜福利免费观看| 日韩影视在线观看| 黑人巨大精品欧美一区二区三区| 精品女同一区二区三区在线播放| www.欧美免费| 亚洲电影在线看| 欧美一性一乱一交一视频| 亚洲欧美日韩一区在线| 色婷婷综合成人| 国产免费久久av| 国产精品天天狠天天看| 国产精品精品久久久久久| 精品国产一区久久久| 日韩成人性视频| 日韩在线视频观看正片免费网站|