> 웹 프론트엔드 > 프런트엔드 Q&A > js가 CSS를 제어하는 ​​방법

js가 CSS를 제어하는 ​​방법

藏色散人
풀어 주다: 2023-01-07 11:42:45
원래의
6196명이 탐색했습니다.

js가 CSS를 제어하는 ​​방법: 1. 스타일 속성 또는 "setAttribute()"를 통해 스타일을 변경합니다. 2. 의사 클래스 "(이후, 이전)"의 "콘텐츠" 콘텐츠를 변경합니다. 클래스 이름 등을 변경하여

js가 CSS를 제어하는 ​​방법

이 기사의 운영 환경: windows7 시스템, javascript1.8.5&&CSS3 버전, DELL G3 컴퓨터

js는 CSS를 어떻게 제어하나요?

JS가 CSS 스타일을 제어하는 ​​여러 가지 방법

JS 작업과 연구에서 스타일 속성을 통해 CSS 스타일을 동적으로 로드하는 것이 쉽지 않은 상황에 항상 직면합니다(예: 의사 클래스 스타일 제어). , 애니메이션 스타일 컨트롤), 다음은 js에서 스타일을 변경하는 여러 가지 방법에 대한 요약입니다.

1. 스타일 속성 또는 setAttribute()를 통해 스타일을 변경합니다.

ele.style.width='50px';//最常用
ele.style.cssText='width:50px';//并不会覆盖原先所有css
ele.style.setProperty("width", "50px", "important");//可以传第三个参数
ele.setAttribute("style", "width: 50px")//也不会覆盖原先所有css放心用
로그인 후 복사
로그인 후 복사
ele.style.width='50px';//最常用
ele.style.cssText='width:50px';//并不会覆盖原先所有css
ele.style.setProperty("width", "50px", "important");//可以传第三个参数
ele.setAttribute("style", "width: 50px")//也不会覆盖原先所有css放心用
로그인 후 복사
로그인 후 복사

2. 가상 클래스의 내용(이후, 이전)

//css代码
div::after{
    content:attr(data-myadd);
    width:10px;
}
//js代码
div.setAttribute('data-myadd',需要动态加载的内容)
로그인 후 복사
로그인 후 복사
//css代码
div::after{
    content:attr(data-myadd);
    width:10px;
}
//js代码
div.setAttribute('data-myadd',需要动态加载的内容)
로그인 후 복사
로그인 후 복사

3, 클래스 이름

ele.className='';
ele.classList.add();//emmmm没什么好说的
로그인 후 복사
로그인 후 복사
ele.className='';
ele.classList.add();//emmmm没什么好说的
로그인 후 복사
로그인 후 복사

4을 변경하여 스타일을 변경합니다. 핵심은 다음과 같습니다. document.styleSheets를 사용하여 모든 스타일 시트를 얻은 다음 insertRule을 통해 스타일을 추가하는 스타일 시트; 새로운 cssRules를 생성하고, addRule()

document.styleSheets:获取到的是所有样式列表的集合
href:通过link标签引入的样式表,则是样式表的URL,否则为null
media:当前样式表支持的所有媒体类型集合
type:样式表类型的字符串
disabled: 通过disabled来屏蔽掉该样式表,可以用来切换样式表 ; document.styleSheets[i].disabled = true
cssRules:是当前样式列表的所有样式集合;document.styleSheets[i].cssRules
cssText:当前样式表的某一个样式的样式document.styleSheets[i].cssRules[i].cssText
selectorText:当前样式的选择符
parentStyleSheet:当前规则所属样式表;IE不支持
insertRule(rule,index):在index前插入一条rule新规则; document.styleSheets[0].insertRule('* {background:blue;color:#000}',0)不支持IE;document.styleSheets[0].addRule('*',' {background:blue;color:#000}',0)支持IE;
deleteRule(index):删除某个央视列表的第index个样式;IE用removeRule(index)
//使用document.styleSheets获取样式表的时候最好获取最后一个,在最后一个样式表上添加样式
var sheets=document.styleSheets;
var lastSheet=sheets[sheets.length-1];
lastSheet.insertRule('#div{width:10px}',index)//将#div样式直接添加到cssRules中;index是添加到第几条;现代浏览器
lastSheet.addRule('div','width:10px;',0)//IE浏览器
로그인 후 복사
//使用document.styleSheets获取样式表的时候最好获取最后一个,在最后一个样式表上添加样式
var sheets=document.styleSheets;
var lastSheet=sheets[sheets.length-1];
lastSheet.insertRule('#div{width:10px}',index)//将#div样式直接添加到cssRules中;index是添加到第几条;现代浏览器
lastSheet.addRule('div','width:10px;',0)//IE浏览器
로그인 후 복사

5을 통해 스타일을 추가하고, 스타일 시트를 동적으로 로드할 수 있습니다

변경해야 할 스타일이 많으면 페이지를 변경하는 것이 좋습니다. 스타일을 동적으로 로드하여 스타일

//改变样式文件的引用
function loadStyle(url){
  var link = document.createElement('link');
    link.type = 'text/css';
    link.rel = 'stylesheet';
    link.href = url;
    var head = document.getElementsByTagName('head')[0];
    head.appendChild(link);
}
loadStyle('test.css');
//动态加载css代码片段
var style = document.createElement('style');
    style.type = 'text/css';
    style.rel = 'stylesheet';
    try{ //Chrome Firefox Opera Safari
        style .appendChild(document.createTextNode(code));
    }catch(ex){//IE
        style.styleSheet.cssText = code;
    }
    var head = document.getElementsByTagName('head')[0];
    head.appendChild(style);
}
loadCssCode('body{background-color:#f00}');
로그인 후 복사
//改变样式文件的引用
function loadStyle(url){
  var link = document.createElement('link');
    link.type = 'text/css';
    link.rel = 'stylesheet';
    link.href = url;
    var head = document.getElementsByTagName('head')[0];
    head.appendChild(link);
}
loadStyle('test.css');
 
//动态加载css代码片段
var style = document.createElement('style');
    style.type = 'text/css';
    style.rel = 'stylesheet';
    try{ //Chrome Firefox Opera Safari
        style .appendChild(document.createTextNode(code));
    }catch(ex){//IE
        style.styleSheet.cssText = code;
    }
    var head = document.getElementsByTagName('head')[0];
    head.appendChild(style);
}
loadCssCode('body{background-color:#f00}');
로그인 후 복사

추천 학습: "javascript 고급 튜토리얼

위 내용은 js가 CSS를 제어하는 ​​방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿