[TOC]javascript
如offsetWidht、cilentWidht、scrollWidth……css
let oWidth=obj.offsetWidth;
注意:html
獲取全部樣式(樣式的內容,字符串形式)cssText 和獲取單項樣式:java
let oStyle=obj.style.cssText; let oWidth=obj.style.width;
注意:node
獲取當前元素全部最終使用的CSS屬性值,該方法屬於window對象。 ie8-使用 getCurrentStyle
(元素對象的方法)數組
接收兩個參數:元素對象和要匹配的僞元素的字符串(普通元素省略或null)瀏覽器
返回一個對象,可用使用該返回對象的屬性和方法獲取樣式:app
let oColor=window.getComputedStyle(obj, null).color;
接收一個參數:屬性名(帶引號,原帶-
的CSS屬性要轉換成駝峯法書寫)spa
返回一個給定屬性值的CSSValue對象,該對象有3個屬性:primitiveType、cssText和cssValueType,code
let oStyle=window.getComputedStyle(obj,null).getPropertyCSSValue('color').cssText;
能夠獲取CSS樣式申明對象上的屬性值(直接屬性名稱)
接收一個參數:屬性名(帶引號,原帶-
的CSS屬性要轉換成駝峯法書寫)
let oBgc=window.getComputedStyle(obj, null).getPropertyValue("background-color");
注意:
元素對象的方法。
getClientRects() 獲取元素矩形區域樣式
獲取元素佔據頁面的全部矩形區域樣式。返回值一個TextRectangle對象集合,包含:top left bottom right width height 六個屬性(上下左右寬高)
注意:
let rectCollection = obj.getClientRects();
getBoundingClientRect()獲取元素位置
得到頁面中某個元素的左,上,右和下分別相對瀏覽器視窗的位置。
返回值一個對象,具備6個屬性:top,lef,right,bottom,width,height。
注意:
right是指元素右邊界距窗口最左邊的距離,bottom是指元素下邊界距窗口最上面的距離。
let eleInfo= obj.getBoundingClientRect();
document.styleSheets
返回StyleSheetList是一個類數組對象,包含了當前文檔的全部css樣式表。
cssRules 返回一個類數組對象cssRuleList,其包含樣式表中全部CSS規則。
cssRules數組對象內元素的經常使用屬性(屬性均爲只讀,屬性值均是字符串):
document.styleSheets; //當前文檔全部css樣式表的類數組對象 document.styleSheets.lenth; //當前文檔有多少樣式表 document.styleSheets[0]; //當前文檔第0個樣式表的類數組對象 document.styleSheets[0].cssRules[0]; //當前文檔第0個樣式表的第0條樣式 document.styleSheets[0].cssRules.length; //當前樣式表有多少條樣式 document.styleSheets[0].cssRules[0].cssText; //第0條樣式的內容 document.styleSheets[0].cssRules[0].style.width; //第0條樣式中的寬 document.styleSheets[0].cssRules[0].selectorText; //第0條樣式選擇器
某些元素對象如img能夠直接設置css樣式
obj.width='100%';
obj.setAttribute('style','widht:100px!important'); obj.removeAttribute('style'); obj.setAttribute('width','100%'); //某些元素適用(即「直接設置元素的屬性」的狀況)
obj.style.height = '100px'; obj.style.borderBottom='2px'; obj.cssFloat='left';
注意:
-
的CSS屬性在JavaScript中,應該轉換成駝峯形式或將屬性名(帶引號)寫在中括號[]中可設置多個樣式
obj.style.cssText="color:gray;font-size:1.25rem;"
obj.style.setProperty('height', '300px', 'important'); obj.style.removeProperty('color');
給元素對象增/改/刪className或者idName。相應的class/id設置有相關樣式。
obj.setAttribute('class',newClassName); obj.removeAttribute('class',newClassName) ;
obj.className=newClassName; obj.id=newIdName;
注意:元素對象沒有class(class是JavaScript保留關鍵字)這個屬性,只有className這個屬性。
let attrName=document.createAttribute('class'); let attrName.nodeValue=className;//一個已經存在的class obj.attributes.setNamedItem(attrName); obj.attributes.removeNamedItem(attrName);
示例(添加樣式表):
let linkNew=document.creatElement('link'); linkNew=setAttribute('rel','stylesheet'); linkNew=setAttribute('hreft','new.css'); document.head.appendChild(link);
StyleSheets是一個類數組對象,包含了當前文檔的全部css樣式表。
document.styleSheets[0].disabled;
ie使用addRule()和removeRule()。
document.styleSheets[0].deleteRule(0); document.styleSheets[0].insertRule('.test{color:red;font-size:1.5em;}');
document.getElementByTagName('head')[0].innerHTML+= <link rel="stylesheet" href="new.css">
示例:obj.innerHTML=<span style="color:red">red</span>
……