麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

JS之獲取樣式的簡單實現方法(推薦)

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

基本代碼:

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>Document</title>  <style>    div{      color:yellow;    }  </style></head><body>  <div style="width:100px;height:100px;background-color:red">This is div</div></body></html>

1.通過使用element.style屬性來獲取

<script>  var div = document.getElementsByTagName("div")[0];  console.log(div.style.color); //""  console.log(div.style.backgroundColor); //red</script>

element.style屬性只能獲取行內樣式,不能獲取<style>標簽中的樣式,也不能獲取外部樣式

由于element.style是元素的屬性,我們可以對屬性重新賦值來改寫元素的顯示。 

<script>    var div = document.getElementsByTagName("div")[0];    div.style['background-color'] = "green";    console.log(div.style.backgroundColor); //green  </script>

2.通過getComputedStyle和currentStyle來獲取樣式

getComputedStyle的使用環境是chrome/safari/firefox IE 9,10,11

<script>  var div = document.getElementsByTagName("div")[0];  var styleObj = window.getComputedStyle(div,null);  console.log(styleObj.backgroundColor); //red  console.log(styleObj.color); //yellow</script>

currentStyle在IE里能得到完美支持,chrome不支持,ff不支持

<script>    var div = document.getElementsByTagName("div")[0];    var styleObj = div.currentStyle;    console.log(styleObj.backgroundColor); //red    console.log(styleObj.color); //yellow  </script>

3.ele.style和getComputedStyle或者currentStyle的區別

3.1 ele.style是讀寫的,而getComputedStyle和currentStyle是只讀的

3.2 ele.style只能得到行內style屬性里面設置的CSS樣式,而getComputedStyle和currentStyle還能得到其他的默認值

3.3 ele.style得到的是style屬性里的樣式,不一定是最終樣式,而其他兩個得到的是元素的最終CSS樣式

4.獲取樣式兼容性寫法

<script>    //獲取非行間樣式(style標簽里的樣式或者link css文件里的樣式),obj是元素,attr是樣式名    function getStyle(obj,attr){       //針對IE       if(obj.currentStyle){         return obj.currentStyle[attr];               //由于函數傳過來的attr是字符串,所以得用[]來取值       }else{         //針對非IE         return window.getComputedStyle(obj,false)[attr];       }    }    /*       獲取或者設置css屬性        */    function css(obj,attr,value){       if(arguments.length == 2){         return getStyle(obj,attr);       }else{            obj.style[attr] = value;       }    }  </script>

 5.window.getComputedStyle(ele[,pseudoElt]);

 第二個參數如果是null或者省略,則獲取得到是ele的CSSStyleDeclaration對象

如果是一個偽類,則獲取到的是偽類的CSSStyleDeclaration對象

<style>div{  width:200px;  height:200px;  background-color:#FC9;  font-size:20px;  text-align:center;  }div:after{  content:"This is after";  display:block;  width:100px;  height:100px;  background-color:#F93;  margin:0 auto;  line-height:50px;    }</style><body>  <div id='myDiv'>    This is div  </div>   <input id='btn' type="button" value='getStyle'/>   <script>    var btn = document.querySelector('#btn');    btn.onclick = function(){      var div = document.querySelector('#myDiv');      var styleObj = window.getComputedStyle(div,'after');      console.log(styleObj['width']);    }  </script></body>

 6.getPropertyValue獲取CSSStyleDeclaration對象中的指定屬性值

<script>    var div = document.getElementsByTagName("div")[0];    var styleObj = window.getComputedStyle(div,null);    console.log(styleObj.getPropertyValue("background-color"));</script>

getPropertyValue(propertyName);中的propertyName不能是駝峰式表示

obj.currentStyle['margin-left'] 有效

obj.currentStyle['marginLeft']  有效   

window.getComputedStyle(obj,null)['margin-left']  有效

window.getComputedStyle(obj,null)['marginLeft']  有效

window.getComputedStyle(obj,null).getPropertyValue('margin-left')  有效

window.getComputedStyle(obj,null).getPropertyValue('marginLeft')   無效

obj.currentStyle.width   有效

obj.currentStyle.background-color 無效

obj.currentStyle.backgroundColor  有效

window.getComputedStyle(obj,null).width  有效

window.getComputedStyle(obj,null).background-color  無效

window.getComputedStyle(obj,null).backgroundColor 有效

綜上,就是帶有"-"的屬性不能直接點出來,所以有getPropertyValue方法來處理,但是可以用[]來取代getPropertyValue

7.defaultView

在許多在線的演示代碼中, getComputedStyle 是通過 document.defaultView 對象來調用的。 大部分情況下,這是不需要的, 因為可以直接通過window對象調用。但有一種情況,你必需要使用 defaultView,  那是在firefox3.6上訪問子框架內的樣式 (iframe)

以上這篇JS之獲取樣式的簡單實現方法(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国内毛片视频 | 久久中文一区 | 久久久久北条麻妃免费看 | 一级一级一级一级毛片 | 91久久国产综合久久91猫猫 | 黄色高清视频网站 | 国产妇女乱码一区二区三区 | 亚洲福利在线免费观看 | 久久精品久久久久 | 亚洲成人在线视频网站 | 亚洲第一成人久久网站 | 99国内精品视频 | av色在线观看 | 毛片免费观看完整版 | 亚洲一区二区观看播放 | 久久国产不卡 | 黄色网址免费在线播放 | 免费一级毛片电影 | 久久久久久久九九九九 | 男女隐私免费视频 | 久久久久一区二区三区四区五区 | 欧洲精品色 | 国产中文av在线 | 亚洲一区二区三区高清视频 | 黄色特级毛片 | 成人9禁啪啪无遮挡免费 | 欧美a∨一区二区三区久久黄 | 亚洲一级成人 | 日韩中文字幕三区 | 毛片视频网址 | 午夜视 | 久久国产精品久久精品国产演员表 | 中文亚洲视频 | 久久影院一区二区三区 | 激情夜色 | 自拍偷拍999| 久久精品国产亚洲7777小说 | 精品三区视频 | 国产精品99久久久久久久 | 国产免费视频在线 | 欧美日韩精品一区二区三区蜜桃 |