是否可以在js中覆盖CSS

时间:2014-07-31 22:19:20

标签: javascript html css rss

我正在使用从RSS转换器(webrss.com)生成的链接,该链接位于我的html末尾的javascript标记内。我需要将RSS提要转换为HTML以便在某些数字标牌上显示。它工作得很好,除了我无法覆盖其默认样式。我可以在body或html标签中更改.li和.a样式但不能更改font-size。

我到处寻找解决方案,并尝试在我的CSS中使用!important但它不起作用。我想使用外部样式表并让它覆盖我的html末尾的js标签中的所有样式。

这可能吗?我是新来的,我被卡住了,请帮忙!

3 个答案:

答案 0 :(得分:1)

可能他们在元素上设置了一些内联样式,例如。 <span style="font-size:12px">contents</span>自己使用JS。如果它们是,那么就无法用CSS覆盖它,你将不得不使用自己的j来覆盖它们的样式。

答案 1 :(得分:0)

基本上,特异性和有效的CSS可能是你的问题。

特异性:您可以检查元素以查看正在应用的样式。假设您的css代码有效,它将显示所选元素,低于css规则优先于您自己的css规则。像“li {font-size:11px!important;}”之类的东西应该优先于其他所有东西,除非有一个更具体的选择器使用重要的部分。

有效期:对于所有html元素(li,a,body,html),只需将它们写出来即可选择它们(即“html {color:red;}”NOT“.html {颜色:红色;}“。我看到你在你的问题中提到了.li和.a,这可能只是一个意外。请注意,除非是指定了一个类名(即。),否则不需要点。如果你的css甚至列在该元素的检查员中,以检查你的css是否有效。

可以使用css覆盖内联样式。重要的标签胜过内联风格。见http://css-tricks.com/override-inline-styles-with-css/

答案 2 :(得分:0)

在JS中覆盖规则的最佳方法是使用CSSOM,我发现这个lib可能会有所帮助:

https://github.com/cssobj/cssobj

它从JS渲染CSSOM,您可以直接从JS更改规则。