CSS 스타일은 세 가지 범주로 나뉩니다.
인라인 스타일: 은 태그에 작성되며, 인라인 스타일은 모든 태그에만 유효합니다.
내부 스타일: 은 HTML로 작성되며, 내부 스타일은 해당 웹페이지에만 유효합니다.
외부 스타일 시트: 여러 웹페이지에서 동일한 스타일(스타일)을 사용해야 하는 경우 접미사가 .css인 CSS 파일에 스타일(스타일)을 작성한 후 추가하세요. 각 페이지에 이러한 스타일(스타일)을 사용해야 하는 웹페이지에서 이 CSS 파일을 참조하세요.
getCompulatedStyle은 현재 요소의 최종 사용된 CSS 속성값을 모두 가져올 수 있는 메소드입니다. 반환되는 것은 CSS 스타일 객체입니다([object CSSStyleDeclaration])
currentStyle은 IE 브라우저의 속성이며 CSS 스타일 객체를 반환합니다
요소는 JS
에서 얻은 DOM 개체를 나타냅니다.
element.style //임베디드 스타일만 얻을 수 있습니다
element.currentStyle //IE 브라우저는 포함되지 않은 스타일을 얻습니다
window.getCompulatedStyle(element, pseudo-class) //IE가 아닌 브라우저는 포함되지 않은 스타일을 얻습니다.
document.defaultView.getCompulatedStyle(element, pseudo-class)//IE가 아닌 브라우저는 비포함 스타일을 얻습니다.
참고: Gecko 2.0(Firefox 4/Thunderbird 3.3/SeaMonkey 2.1) 이전에는 두 번째 매개변수 "의사 클래스"가 필요했습니다(의사 클래스가 아닌 경우 null로 설정). 이제 이 매개변수를 사용할 수 있습니다. 생략.
다음 HTML에는 두 개의 CSS 스타일이 포함되어 있습니다. id 태그가 있는 div는 인라인 스타일이고, id test가 있는 div는 내부 스타일입니다.
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author" content="Yvette Lau"> <meta name="Keywords" content="关键字"> <meta name="Description" content="描述"> <title>Document</title> <style> #test{ width:500px; height:300px; background-color:#CCC; float:left; } </style> </head> <body> <div id = "test"></div> <div id = "tag" style = "width:500px; height:300px;background-color:pink;"></div> </body> </html>
JS 부분
<script type = "text/javascript"> window.onload = function(){ var test = document.getElementById("test"); var tag = document.getElementById("tag"); //CSS样式对象:CSS2Properties{},CSSStyleDeclaration console.log(test.style); //火狐返回空对象CSS2Properties{},谷歌返回空对象CSSStyleDeclaration{} console.log(tag.style); //返回CSS2Properties{width:"500px",height:"300px",background-color:"pink"} //element.style获取的是内嵌式的style,如果不是内嵌式,则是一个空对象 console.log(tag.style.backgroundColor);//pink console.log(tag.style['background-color']);//pink //获取类似background-color,border-radius,padding-left类似样式的两种写法啊 console.log(test.currentStyle) //火狐和谷歌为Undefined,IE返回CSS对象 console.log(window.getComputedStyle(test,null))//谷歌返回CSSStyleDeclaration{……} ,火狐返回CSS2Properties{……} console.log(window.getComputedStyle(test)) //效果同上,但是在Gecko 2.0 (Firefox 4/Thunderbird 3.3/SeaMonkey 2.1) 之前,第二个参数“伪类”是必需的(如果不是伪类,设置为null) console.log(test.currentStyle.width);//500px(IE) console.log(window.getComputedStyle(test).width); //500px; console.log(window.getComputedStyle(test)['width']);//500px; //document.defaultView.getComputedStyle(element,null)[attr]/window.getComputedStyle(element,null)[attr] } </script>
위의 예는 이전 논의가 올바른지 확인하기 위한 것입니다.
단순화를 위해 획득 스타일을 간단하게 캡슐화할 수도 있습니다.
function getStyle(element, attr){ if(element.currentStyle){ return element.currentStyle[attr]; }else{ return window.getComputedStyle(element,null)[attr]; } } console.log(getStyle(test,"cssFloat"));//left console.log(getStyle(test,"float")); //left,早前FF和chrome需要使用cssFloat,不过现在已经不必 console.log(getStyle(test,"stylefloat"));//火狐和谷歌都是undefined console.log(getStyle(test,"styleFloat")); //IE9以下必须使用styleFloat,IE9及以上,支持styleFloat和cssFloat console.log(window.getComputedStyle(test).getPropertyValue("float"))
float 스타일에 대응하여 IE는 styleFloat를 사용했지만 이전 FF와 chrome은 cssFloat를 사용했습니다. 이제 FF와 Chrome은 이미 float를 지원하며 다른 속성을 하나씩 나열하지 않겠습니다. 이러한 차이점을 기억하고 CSS 스타일 객체에 액세스하는 두 가지 방법을 소개합니다.
getPropertyValue 메소드 및 getAttribute 메소드
IE9 및 기타 브라우저(getPropertyValue)
window.getCompulatedStyle(element, null).getPropertyValue(“float”)
element.currentStyle.getPropertyValue(“float”)
getPropertyValue는 카멜 표기법을 지원하지 않습니다. (IE9 이상, FF, Chrom, Safari, Opera와 호환)
예: window.getCompulatedStyle(element,null).getPropertyValue(“배경색”);
IE6~8의 경우 CSS 스타일 개체의 속성에 액세스하려면 getAttribute 메서드를 사용해야 합니다.
element.currentStyle.getAttribute("float");//더 이상 styleFloat로 작성할 필요가 없습니다.
element.currentStyle.getAttribute("BackgroundColor"); //속성 이름은 카멜 표기법으로 작성해야 합니다. 그렇지 않으면 IE6에서는 이를 지원하지 않습니다. IE6을 무시하면 "Background-color"로 작성할 수 있습니다.
위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되고 JS를 사용하여 CSS 스타일을 쉽게 얻을 수 있기를 바랍니다.