美文网首页
利用CSSStyleSheet对象,完成控制style标签内容的

利用CSSStyleSheet对象,完成控制style标签内容的

作者: JohnYuCN | 来源:发表于2021-07-17 16:32 被阅读0次

1. 需求:

我们可能需要动态的添加或删除在网页style标签的内容, 如:

<head>
    <style>
        /* 此部分内容,希望由JS控制*/
    </style>
</head>

此时,我们就可以添加或删除如@keyframes,从而达到精确的动画控制的技术

2. 控制原理:

document.styleSheets; 可以获取一个由CSSStyleSheet对象组成的数组,获取整个网页中所有的由style标签生成的所有对象,然后利用CSSStyleSheet的insertRule()和deleteRule()方法控制“规则”的插入和删除,而每个“规则”可以是字符串类型。

3. 案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <style>
        /* document.styleSheets[0] */
    </style>
    <style>
        /* document.styleSheets[1] */
    </style>
</head>
<body>
    <h1 class="fore bgc">可以由JS控制,向style标签中添加规则</h1>
    <button>顺序加入前景和背景色</button>
    <button>顺序去掉前景色和前景色</button>
    <script>
        
        // 获取一个CSSStyleSheet,对应的标签<style></style>
        let sheet=document.styleSheets[0];
        document.querySelector('button:first-of-type').addEventListener('click',function(){
            let styleString='.fore{color:red}'
            //相当于在style中加入一条规则:.fore{color:red}
            sheet.insertRule(styleString,0)
            styleString='.bgc{background-color:green}'
            sheet.insertRule(styleString,1)
        })
        //只去掉第一条规则(前景色)
        document.querySelector('button:last-of-type').addEventListener('click',function(){
            sheet.deleteRule(0)
        })
    </script>
</body>
</html>

相关文章

  • 利用CSSStyleSheet对象,完成控制style标签内容的

    1. 需求: 我们可能需要动态的添加或删除在网页style标签的内容, 如: 此时,我们就可以添加或删除如@key...

  • jQuery常用方法

    1,查找标签的父标签:$(this).parent(),返回jQuery对象2,添加style属性:$(this)...

  • CSS-Learn1

    引入css的4种方法 style 属性 style 标签在head标签内容中添加 link 标签引入i 创建一个a...

  • DOM BOM

    DOM简单学习: 功能:控制html文档的内容 获取页面标签(元素)对象:Elementdocument.getE...

  • 008 BOM, DOM, 和事件.

    DOM 控制html文档的内容. 代码 : 获取页面标签(元素)对象 Element.let elementByI...

  • 8 BOM

    本章内容 理解window对象--BOM 的核心 控制窗口,框架和弹出窗口 利用location对象中的页面信息 ...

  • JS第一天

    ECMAScript js的标准语法 DOM(html每一个标签对应一个对象) html(控制内容)+css(控制...

  • HTML

    一、head标签 1.head标签中的内容:title、meta、base、link、style、script 二...

  • vue文件添加style便签webpack报错

    报错内容如下: 解决办法:style标签添加lang="sass"

  • html入门(三)文本标签、文本格式化

    文本标签 要控制文本的格式,除了可以设置标签的style属性,指定样式,还可以直接通过标签来执行样式,这些标签可以...

网友评论

      本文标题:利用CSSStyleSheet对象,完成控制style标签内容的

      本文链接:https://www.haomeiwen.com/subject/bfpwpltx.html