繁体   English   中英

是否有可能在JS中覆盖CSS

[英]Is it possible to override CSS in js

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

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

这可能吗? 我对此并不陌生,被困住了,请帮忙!

可能他们在元素上设置了一些内联样式。 使用JS本身<span style="font-size:12px">contents</span> 如果是这样,则无法用CSS覆盖它,您将不得不使用js自身来覆盖其样式。

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

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

有效性:对于所有html元素(li,a,body,html),只需将它们写出来即可选择它们(即“ html {color:red;}”而不是“ .html {color:red;}”。在您的问题中提到了.li和.a,这可能只是一个意外。请注意,除非已为点名分配了类名(例如),否则该点不是必需的。检查您的css是否甚至在检查器中列出了该元素以检查您的CSS是否有效。

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

在JS中重写规则的最佳方法是使用CSSOM ,我发现此lib可能会有所帮助:

https://github.com/cssobj/cssobj

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM