JS设置CSS样式的几种方式

本文介绍了使用JavaScript动态设置CSS样式的多种方法,包括直接修改style属性、使用setAttribute、利用CSS属性设置!important优先级等技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JS设置CSS样式的几种方式

用JS来动态设置CSS样式,常见的有以下几种

 

1. 直接设置style的属性  某些情况用这个设置 !important值无效

如果属性有'-'号,就写成驼峰的形式(如textAlign)  如果想保留 - 号,就中括号的形式  element.style['text-align'] = '100px';

element.style.height = '100px';

2. 直接设置属性(只能用于某些属性,相关样式会自动识别)

element.setAttribute('height', 100);
element.setAttribute('height', '100px');

3. 设置style的属性

element.setAttribute('style', 'height: 100px !important');

4. 使用setProperty  如果要设置!important,推荐用这种方法设置第三个参数

element.style.setProperty('height', '300px', 'important');

5. 改变class   比如JQ的更改class相关方法

因JS获取不到css的伪元素,所以可以通过改变伪元素父级的class来动态更改伪元素的样式

element.className = 'blue';
element.className += 'blue fb';

6. 设置cssText

element.style.cssText = 'height: 100px !important';
element.style.cssText += 'height: 100px !important';

7. 创建引入新的css样式文件

复制代码
复制代码
        function addNewStyle(newStyle) {
            var styleElement = document.getElementById('styles_js');

            if (!styleElement) { styleElement = document.createElement('style'); styleElement.type = 'text/css'; styleElement.id = 'styles_js'; document.getElementsByTagName('head')[0].appendChild(styleElement); } styleElement.appendChild(document.createTextNode(newStyle)); } addNewStyle('.box {height: 100px !important;}');
复制代码
复制代码

8. 使用addRule、insertRule

复制代码
// 在原有样式操作
        document.styleSheets[0].addRule('.box', 'height: 100px');
        document.styleSheets[0].insertRule('.box {height: 100px}', 0);

        // 或者插入新样式时操作 var styleEl = document.createElement('style'), styleSheet = styleEl.sheet; styleSheet.addRule('.box', 'height: 100px'); styleSheet.insertRule('.box {height: 100px}', 0); document.head.appendChild(styleEl); 

用JS来动态设置CSS样式,常见的有以下几种

 

1. 直接设置style的属性  某些情况用这个设置 !important值无效

如果属性有'-'号,就写成驼峰的形式(如textAlign)  如果想保留 - 号,就中括号的形式  element.style['text-align'] = '100px';

element.style.height = '100px';

2. 直接设置属性(只能用于某些属性,相关样式会自动识别)

element.setAttribute('height', 100);
element.setAttribute('height', '100px');

3. 设置style的属性

element.setAttribute('style', 'height: 100px !important');

4. 使用setProperty  如果要设置!important,推荐用这种方法设置第三个参数

element.style.setProperty('height', '300px', 'important');

5. 改变class   比如JQ的更改class相关方法

因JS获取不到css的伪元素,所以可以通过改变伪元素父级的class来动态更改伪元素的样式

element.className = 'blue';
element.className += 'blue fb';

6. 设置cssText

element.style.cssText = 'height: 100px !important';
element.style.cssText += 'height: 100px !important';

7. 创建引入新的css样式文件

复制代码
复制代码
        function addNewStyle(newStyle) {
            var styleElement = document.getElementById('styles_js');

            if (!styleElement) { styleElement = document.createElement('style'); styleElement.type = 'text/css'; styleElement.id = 'styles_js'; document.getElementsByTagName('head')[0].appendChild(styleElement); } styleElement.appendChild(document.createTextNode(newStyle)); } addNewStyle('.box {height: 100px !important;}');
复制代码
复制代码

8. 使用addRule、insertRule

复制代码
        // 在原有样式操作
        document.styleSheets[0].addRule('.box', 'height: 100px');
        document.styleSheets[0].insertRule('.box {height: 100px}', 0);

        // 或者插入新样式时操作 var styleEl = document.createElement('style'), styleSheet = styleEl.sheet; styleSheet.addRule('.box', 'height: 100px'); styleSheet.insertRule('.box {height: 100px}', 0); document.head.appendChild(styleEl); 
JavaScript设置CSS样式是非常常见的任务,通常用于动态改变元素的外观或响应用户交互。以下是几种常用的方法来通过JS设置CSS样式: ### 直接修改内联样式 最直接的方式就是使用`style`属性直接访问并更改DOM元素的内联样式。例如: ```javascript // 获取目标元素 let element = document.getElementById('myElement'); // 修改单个样式属性 element.style.color = 'red'; element.style.fontSize = '24px'; // 修改多个样式可以链式赋值 element.style.backgroundColor = '#f0f0f0'; element.style.padding = '10px'; ``` 这种方法简单直观,但它会覆盖原有的其他内联样式声明,并不适合复杂的场景。 ### 使用classList管理类名 更推荐的做法是利用`classList` API 来添加、删除或切换CSS类。这种方式不仅可以让代码更为简洁,而且能够更好地分离样式与逻辑: ```javascript // 添加一个class element.classList.add('new-class'); // 移除一个class element.classList.remove('old-class'); // 切换class (存在则移除,不存在则添加) element.classList.toggle('active'); ``` 然后可以在外部定义对应的CSS规则: ```css .new-class { color: blue; font-weight: bold; } .active { background-color: yellow; } ``` 这使得维护和调试变得容易得多。 ### 应用自定义样式表 如果你希望一次性应用一组预定义好的样式集合到某个元素上,则可以通过创建新的 `<style>` 节点或将样式注入现有节点的方式来完成: ```javascript function applyCustomStylesheet(cssText) { let styleSheet = document.createElement("style"); styleSheet.type = "text/css"; if (styleSheet.styleSheet) { // IE styleSheet.styleSheet.cssText = cssText; } else { styleSheet.appendChild(document.createTextNode(cssText)); } document.getElementsByTagName("head")[0].appendChild(styleSheet); } applyCustomStylesheet(` .my-custom-style { display: block; text-align: center; }`); ``` 以上就是在 JavaScript设置 CSS 样式的三种常见方法。选择合适的技术取决于具体的应用场景和个人偏好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值