美文网首页让前端飞前端开发
如何用js改变伪元素的样式?

如何用js改变伪元素的样式?

作者: littleyu | 来源:发表于2019-05-17 14:04 被阅读5次

在工作偶尔会遇到改变伪元素样式的场景,虽然也有很多解决方法,
但是这个方法能让你像操作正常元素一样操作伪元素样式

function ruleSelector(selector) {
  function uni(selector) {
    return selector.replace(/::/g, ':')
  }
  // es6
  return Array.from(document.styleSheets).reduce((a,b) => {
    return a.concat(Array.from(b.cssRules))
  }, []).filter(x => {
    return uni(x.selectorText) === uni(selector);
  })
  // es5
  // return Array.prototype.filter.call(Array.prototype.concat.apply([], Array.prototype.map.call(document.styleSheets, function (x) {
  //   return Array.prototype.slice.call(x.cssRules);
  // })), function (x) {
  //   return uni(x.selectorText) === uni(selector);
  // });
}

var toggle = false,
  pseudo = ruleSelector("ref::before").slice(-1);

document.querySelector("article").onclick = function () {
  pseudo.forEach(function (rule) {
    if (toggle = !toggle)
      rule.style.color = "red";
    else
      rule.style.color = "black";
  });
}

相关文章

  • 如何用js改变伪元素样式

    通常设置伪元素的样式直接用CSS很方便 可是有时候想用js动态的去改变伪元素的样式,但是js获取不到伪元素,这就很...

  • 如何用js改变伪元素的样式?

    在工作偶尔会遇到改变伪元素样式的场景,虽然也有很多解决方法,但是这个方法能让你像操作正常元素一样操作伪元素样式。

  • 动态绑定实现改变伪元素等样式attr( data-number)

    情景三:动态绑定实现改变伪元素等样式描述:以上样式都是我们最普通的样式,但是我们如何通过绑定样式改变伪元素(::b...

  • CSS基础之伪类伪元素&样式优先权

    伪类&伪元素 首字样式控制 —— 使用伪元素::first-letter 首行样式控制 —— 使用伪元素::fir...

  • js修改伪元素的样式

    http://www.imooc.com/article/2523

  • 【CSS】自定义复选框

    思路:借助于组合选择符和 before 伪元素,利用 content 属性改变伪元素的内容,为其添加我们想要的样式...

  • CSS样式优先级

    1.CSS样式优先级如下: 元素(类型)选择器(如,h1) < 伪元素(如,::before) < 类选择器(如,...

  • 使用 js 设置伪元素样式

    在开发一个ui编辑功能,因为使用的是Vue,最开始的时候是的方法是直接将styles放在dom元素上面,当遇到伪元...

  • js初识第二节

    通过js给div元素设置样式 原生js的select的onchange事件来改变p元素文本的color 全选和反选...

  • Css中样式的优先级

    Css中样式的优先级 !important>行内样式>ID选择器>类、伪类、属性>元素、伪元素>继承>通配符 !i...

网友评论

    本文标题:如何用js改变伪元素的样式?

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