仅14行 JS 函数动态更改 HTML 伪类 的 CSS Style 样式 [ 单个伪类单个控制,不会无限增加 <style> 标签 ]

under Website  Notes of Programming  tag javascript  html  css  pseudo class    Published on April 15th , 2021 at 08:29 pm

/* ----【函数】更改伪类CSS样式---- */
function ChangePseudoClassStyle(PseudoClassCSSName, CSSText) { //伪类名 例"a:after", 新样式
    var PseudoClassCSSID = PseudoClassCSSName; // 设置控制伪类的<style>的ID值为伪类名

    /* ----【子函数】生成新的<style>---- */
    var css = function(t) {
        var s = document.createElement('style');
        s.id = PseudoClassCSSID;
        s.innerText = t;
        document.body.appendChild(s);
    };

    /* ----查找旧的<style>并删除,防止CSS越建越多,随着函数触发无限增长---- */
    var PCS = document.getElementById(PseudoClassCSSName); 
    if (PCS != null) {
        PCS.remove();
    }

    css(PseudoClassCSSName + ' {' + CSSText + '}');  // 填入传入的CSS文本
    // 保留CSS文本例子:css('p:after {color:red; content:\'[我变红了]\'}');
};

使用例

ChangePseudoClassStyle("body:after", "margin-left: 0px");

本页由 matcha 整理和发布,采用 知识共享署名4.0 国际许可协议进行许可,转载前请务必署名
  文章最后更新时间为:April 16th , 2021 at 04:06 am
分享到:Twitter  Weibo  Facebook