javascript - 前置所有 CSS 选择器

标签 javascript jquery css regex css-selectors

是否有文本过滤器或 javascript/jquery 函数可以在样式表中的所有 css 选择器前添加一些东西?我试图用 twitter bootstrap 只影响一个 div,但它影响了它之外的侧边栏,无论如何都要这样做吗? (我不想使用 iframe。)

编辑:

我想要的是能够为 css 文件中的每个选择器添加一个 ID“#content”。

最佳答案

您在 sabithpocker 的回答下的评论告诉我,您不是动态更改样式,而是希望静态修改 CSS。我认为使用正则表达式最简单:

查找:([,|\}][\s$]*)([\.#]?-?[_a-zA-Z]+[_a-zA-Z0-9-]* )
替换为:$1#content $2

正则表达式分解

  • ([,|\}][\s$]*) - 从前面的样式中查找 },空格(空格/制表符:\s,换行符:$)。右大括号\逗号可防止正则表达式查看您的样式的内部。
  • [\.#]? - 匹配样式名称中的起始 #.(如果存在)。
  • -?[_a-zA-Z]+ - CSS 样式名称可以以下划线或字母开头。此外,样式名称可以在前面加上破折号。
  • [_a-zA-Z0-9-]* - 匹配样式名称的其余部分。这可以省略,但最好知道所有已修改样式的样式名称。
  • $1#content $2 - (或 ,)和空格保持原样($1)。它后面是您插入的文本 #content(注意空格),然后是样式名称 ($2)。

我在 Notepad++ 中对此进行了测试,它适用于我的样式表。
需要注意的是,如果你的 CSS 没有被压缩(并且是多行的), 您将需要支持多行正则表达式的编辑器(Notepad++ 支持)。

关于javascript - 前置所有 CSS 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11161198/

相关文章:

javascript - 当我分离轨道时,twilio 视频代码留下视频标签

javascript - 在 Angular 4 CLI 项目中实现 Angular-calendar

jquery - Appgyver 类固醇 + Jquery 移动 + Phonegap

php - foreach 如果用户单击链接?

HTML- iframe 图片问题

html - 如何设置textarea的高度以填充整列?

javascript - 具有自动建议功能的 Extjs 级联组合框

javascript - 如何修复 html 元素以跟随类或 div?

javascript - 从用户控件内部关闭 jQuery 对话框

javascript - 在 JavaScript 中重新启用鼠标滚动