用我自己的覆盖CDN CSS

用我自己的覆盖CDN CSS,css,cdn,Css,Cdn,从CDN样式表重写CSS规则的最佳方法是什么 例如,我希望对所有锚定文本进行文本装饰,我只需使用: a{text-decoration: underline !important;} 自启动以来: a{text-decoration: none;} 有更好的方法吗?是的,如果选择使用,通常会有更好的方法!重要信息。使用更高的。换句话说,使选择器更具体,以便它覆盖引导选择器。例如,body a{text-decoration:none;} 根据链接文章: 而不是使用!重要信息,您考虑: 更好

从CDN样式表重写CSS规则的最佳方法是什么

例如,我希望对所有锚定文本进行文本装饰,我只需使用:

a{text-decoration: underline !important;}
自启动以来:

a{text-decoration: none;}

有更好的方法吗?

是的,如果选择使用
,通常会有更好的方法!重要信息
。使用更高的。换句话说,使选择器更具体,以便它覆盖引导选择器。例如,
body a{text-decoration:none;}

根据链接文章:

而不是使用!重要信息,您考虑:

  • 更好地利用CSS级联属性
  • 使用更具体的规则。通过在元素>之前指示一个或多个元素,您选择的规则将变得更具体,并获得更高的优先级

只能使用
!重要信息
当绝对没有其他选项时。

当处理CDN样式表(我经常这样做)时,用自己的样式表覆盖其规则的一个安全可靠的选项是使用
!重要信息

是的,你可以全力以赴地使用特技和级联魔法。但最终,您会使代码复杂化,使其难以理解和维护,最重要的是,不能始终确保您的规则将占上风

如果
!重要的
如果存在的原因只有一个,我想这就是:覆盖CDN和其他您无法控制的第三方样式


编辑(经过一点反冲;-)

这个问题可能只关注引导CDN。其他答案可能满足这种情况。我不使用引导

我使用第三方CSS的经验主要涉及嵌入式工具,如搜索、翻译、视频和幻灯片放映

这些程序并不总是以相同的顺序加载样式表。因此,依赖级联并不是一个好的解决方案

有时,CDN选择器已经“最大化”以获得特异性。下面是Google Translate小部件的一个示例:

#goog gt tt.翻译表单.活动表单输入.活动-提交.焦点#goog gt tt.翻译表单.活动表单输入.活动提交:活动

向选择器添加特定性是可能的,但会使代码更加复杂和难以理解

同样重要的是:第三方可以随时更改选择器的特定性,迫使您调整自己的选择器

出于这些原因,我通常下载CDN样式表的副本,并使用
进行调整!重要信息


(添加
!重要
还有助于在检查开发工具时将您的样式与CDN的样式区分开来。)

不需要
!重要信息
,使用这样的选择器。只要确保你的规则符合bootstrap的规则,你就会没事的

<link rel="stylesheet" href="//bootstrap.cdn.url.wow.css">
<style>
  a {
    text-decoration: underline;
  }
</style>

a{
文字装饰:下划线;
}

请教我一些新的东西。正如我提到的,我经常这样做。如果你有一个更有效的方法,老实说,我洗耳恭听。[不是downvoter]我们不能在cdn之后加载样式表来覆盖样式吗?这适用于普通样式表,所以我假设它也适用于CDN。不过,我认为从CDN加载并不重要。@j08691方法如下:在许多情况下,选择器已经长得可笑了。对我来说,覆盖它们需要使它们更长。第二,第三方CSS选择器特性经常发生变化。然后我还必须调整我的特异性。再说一次,这可能不是引导问题。但是在处理了大量的在线小部件和工具之后,我发现唯一有效、可靠的方法就是使用
!重要信息
。我可以向后弯腰,让特殊性和级联工作吗?可能在某些情况下。看
出了什么问题!重要信息
?“这似乎是一个完美的使用案例。”格林先生在我的回答中补充了更多细节。希望它能解决你的困惑。在你的情况下,你只需要使用
a{/*你的风格在这里*/}
。只需在cdn样式表之后加载它。我也这么认为。但由于其他高代表性用户的回答而完全困惑:/@Mr_Green如果特异性相同,那么是的,在引导后加载CSS规则将占上风。我完全不同意@Michael_B的答案。@j08691的答案很好,但当您可以控制源代码顺序时,没有理由在这里使用更具体的内容。@BillCriswell谢谢。我提倡特殊性的原因是,无论您在哪里加载它,它都会胜出,而且很多时候用户无法加载一个又一个样式表。