詳細-jsでCSSを操作する方法
6822 ワード
詳細–jsでCSSを操作する方法
前言
DOM2
の操作がたくさんあるので、以下のコードを使ってブラウザのサポート状況を検出することができます. function isSuportDOM2(){
return document.implementation.hasFeature('CSS','2.0') &&
document.implementation.hasFeature('CSS2','2.0');
}
!!!以下の时普通の知识の点、すでに経験の学友は省略することができます
CSS(積層スタイルシート)の参照方式
、そして非難されて久しい@import url(...)
本当の本文!!
First、基本的な認識は
CSSStyleSheet > CSSRuleList > CSSStyleRule > CSSDeclaration
CSSStyleSheetオブジェクト
スタイルシートオブジェクト、たとえば
で導入された外部スタイルシート取得方法は次のとおりです.
// first, document.styleSheets, StyleSheetList, CSSStyleSheet, StyleSheet
var styleList = document.styleSheets;
// link sheet/styleSheet( IE~orz), CSSStyleSheet
var link = document.querySelector('link');
var stylesheet = link.sheet || styleSheet;
栗!!!
// IE
var sheet = document.styleSheets[0];
sheet.addRule('body','font-size:12px',0);
// IE
sheet.insertRule('body{font-size:12px;}',0);
CSSRuleListオブジェクト
スタイル規則のリスト(例:
selector1{...}、selector2{...}...selectorN{...}
)取得方法
// CSSStyleSheet , cssRules/rules
var rulelist = document.styleSheets[0].cssRules ||
document.styleSheets[0].rules;
CSSStyleRuleオブジェクト(CSSRuleインタフェースに継承)
スタイル規則(1つ)、例:
selector{...}
取得方法 var rulelist = document.styleSheets[0].cssRules ||
document.styleSheets[0].rules;
// CSSStyleRule
var rule = ruleList[0];
栗を挙げます.
style.css
--body{
font-size:12px;
...
}
a{
text-decoration:none;
...
}
/* :
: `body{...}`
cssText->"body{font-size:12px...}"
selectorText->"body"
parentStyleSheet->"style.css"
*/
CSSStyleDeclarationオブジェクト(最も一般的な操作)
取得方法
var cd = element.style
// IE
var currentStyle = element.currentStyle;
// IE
var computedStyle = getComputedStyle(element,false);
var rulelist = document.styleSheets[0].cssRules ||
document.styleSheets[0].rules;
// CSSStyleRule
var rule = ruleList[0];
// CSSStyleDeclaration
var cd = rule.style;
!!!注:
CSSStyleDeclaration
オブジェクトのcssText
は、CSSSstyleRule
オブジェクトのcssText
と区別されます.>コードは次のとおりです. /*
:body{font-size:12px}
CSSStyleRule cssText-->"body{font-size:12px}"
CSSStyleDeclaration cssText-->"font-size:12px"
*/
key
値getPropertyCSSValue(key)、たとえばgetPropertyCSSValue('font-size')
getPropertyValue(key)ですが、この方法ではより広範なremoveProperty(key)を使用して、あるCSSスタイルを削除します.たとえば、removeProperty('font-size')
getPropertyPriority(key)、スタイルが!important
に設定されている場合は「import」を返し、逆に「setProperty(key,value,import)」を返し、スタイルを設定します.##参考文献
JAvascriptプレミアムプログラミング(第3版)——[美]Nicolas C.Zakas著李松峰曹力訳HTML 5権威ガイド——[美]Adam Freeman著謝廷晟牛化成劉美英訳
もっとオリジナルの文章はブロガーの個人独立ブログ--zifengBlogに注目してください