js_javascript 기술에서 스타일을 일괄 처리하기 위해 cssText 속성을 영리하게 사용하십시오.
May 16, 2016 pm 06:09 PM
코드 복사 와 같은 HTML 요소에 대한 CSS 속성 설정 코드는 다음과 같습니다.
var head= document.getElementById("head");
head.style.width = "200px";
head.style.height = "70px"
head.style.display = "block ";
쓰기에는 너무 장황합니다. 쉽게 작성하려면
코드 복사와 같은 도구 기능을 작성하세요. 코드는 다음과 같습니다.
function setStyle(obj,css){
for(var atr in css){
obj.style[atr] = css[ atr];
}
var head= document.getElementById("head");
setStyle(head,{width:"200px",height:"70px",display:"block "})
Google API에서 사용되며 모든 브라우저에서 테스트를 통과한 것으로 확인되었습니다. 코드 한 줄만 있으면 되는데, 정말 멋지네요. 예를 들어
코드 복사 코드는 다음과 같습니다.
var head= document.getElementById ("head") ;
head.style.cssText="width:200px;height:70px;display:bolck";
innerHTML과 마찬가지로 cssText도 빠르며 모든 브라우저에서 지원됩니다. 또한 스타일을 일괄적으로 운영할 때 cssText는 한 번만 리플로우하면 되므로 페이지 렌더링 성능이 향상됩니다. head.style.cssText="width:200px;height:70px;display:bolck";
그러나 cssText에도 단점이 있습니다. 이전 스타일을 덮어쓰게 된다는 것입니다. 예를 들어
코드 복사 코드는 다음과 같습니다.
<div style=" color:red;" >TEST</div>
이 div에 CSS 속성 너비를 추가하고 싶습니다 코드 복사 코드는 다음과 같습니다.
div.style.cssText = "width:200px;";
너비가 적용되지만 이때 이전 색상을 덮어씁니다. 따라서 cssText를 사용할 때는 오버레이를 사용하여 원래 스타일을 유지해야 합니다. 코드 복사 코드는 다음과 같습니다.
function setStyle(el, strCss){
var sty = el.style;
sty.cssText = sty.cssText strCss;
}
이 방법을 사용하면 IE9/Firefox/Safari/Chrome/Opera에서 문제가 없습니다. , 그러나 IE6/7/8의 cssText 반환 값에 세미콜론이 없기 때문에 실망하게 될 것입니다. var sty = el.style;
sty.cssText = sty.cssText strCss;
}
따라서 IE6/7/8은 별도로 처리해야 합니다. cssText 반환값에 ";"이 없으면
코드를 추가하세요. 코드는 다음과 같습니다.
function setStyle(el, strCss){
function endWith(str, suffix) {
var l = str .length - suffix.length ;
return l >= 0 && str.indexOf(suffix, l) == l
}
var sty = el.style,
cssText = sty. cssText;
if (!endsWith(cssText, ';')){
cssText = ';'
}
sty.cssText = cssText
}
function endWith(str, suffix) {
var l = str .length - suffix.length ;
return l >= 0 && str.indexOf(suffix, l) == l
}
var sty = el.style,
cssText = sty. cssText;
if (!endsWith(cssText, ';')){
cssText = ';'
}
sty.cssText = cssText
}
관련:
http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration
https:/ / /developer.mozilla.org/en/DOM/CSSStyleDeclaration
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

인기 기사
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
2 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
Repo : 팀원을 부활시키는 방법
4 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD
R.E.P.O. 파일 저장 위치 : 어디에 있고 그것을 보호하는 방법은 무엇입니까?
3 몇 주 전
By DDD

인기 기사
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
2 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
Repo : 팀원을 부활시키는 방법
4 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD
R.E.P.O. 파일 저장 위치 : 어디에 있고 그것을 보호하는 방법은 무엇입니까?
3 몇 주 전
By DDD

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제
Gmail 이메일의 로그인 입구는 어디에 있나요?
7313
9


자바 튜토리얼
1624
14


Cakephp 튜토리얼
1347
46


라라벨 튜토리얼
1260
25


PHP 튜토리얼
1207
29

