js 怎么删除 style 中某个类样式?

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>

  <style>
body{
  margin: 0 !important;
}
.frame-page{
  height: 100vh;
  display: flex;
  flex-direction: column;
}
 .frame-page .frame-footer{
    height: 60px;
    border: 1px solid green;
    background-color:#6f42c1;
  }
  </style>
</head>
<body>

</body>
<script>
 
</script>
</html>

怎么使用 js 删除 .frame-page 非样式覆盖

阅读 2.9k
2 个回答

可以实现,但是我觉得你是在南辕北辙,CSS 的正确操作就是叠层。

document.styleSheets 对象会列出页面上所有的 CSS,包括引入的、或直接写的 style 标签。

然后遍历这些 styles,再遍历里面的 rules 属性,找到对应的 rule,最后给 rule 的 style.cssText 赋值为空,即可实现清空。

下面这个代码只是一个简单的例子。

!(function () {
  const findRule = (rules, selector) => [...rules].find(rule => -1 !== rule.selectorText.indexOf(selector))

  const style = [...document.styleSheets].find(({ rules }) => findRule(rules, '.frame-page'))
  const rule = findRule(style.rules, '.frame-page')
  // 清空这个选择器的样式
  rule.style.cssText = ''
})()

611d5689-86ff-42e6-819f-adfd05e325dc.gif

jq   removeClass();   移除class

js  document.querySelector('frame-page');  获取
    classList.remove('frame-page');   移除

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏