2017-01-24 47 views
2

從CDN樣式表覆蓋CSS規則的最佳方法是什麼?用我自己的替代CDN CSS

例如,我想文飾上的所有固定的文本,我只想用:

a{text-decoration: underline !important;} 

由於引導有:

a{text-decoration: none;} 

有沒有更好的辦法?

+0

在你的情況下,你只需要使用'/ {你的風格在這裏* /}'。只需在cdn樣式表之後加載它即可。 –

回答

1

是的,當替代方案使用!important時,通常有更好的方法。使用更高的specificity。換句話說,使選擇器更具體,以便覆蓋Bootstrap選擇器。例如,body a{text-decoration: none;}

每所鏈接的文章:

而不是使用很重要,你考慮:

  • 更好地利用CSS層疊特性
  • 使用更具體的規則。通過指示元素之前的一個或多個元素>你選擇的規則變得更加具體,並得到更高的優先級

只使用!important時絕對不會有其他的選擇。

0

在處理CDN樣式表(我做了很多事情)時,使用!important來替代自己的規則是一個安全可靠的選項。

是的,你可以用特異技巧和級聯魔法全力以赴。但最終,您的代碼變得複雜,難以理解和維護,而最重要的是,並不總是確保您的規則佔上風。

如果!important由於某種原因而存在,我認爲這將是:重寫CDN和其他無法控制的第三方樣式。


編輯(有點反彈;-)

這個問題後,可以專注於CDN引導。其他答案可能會滿足這種情況。我不使用Bootstrap。

我的第三方CSS經驗主要涉及嵌入式工具,如搜索,翻譯,視頻和幻燈片演示。

這些程序並不總是以相同的順序加載樣式表。所以依靠級聯不是一個好的解決方案。

有時候CDN選擇器已經「超出」了特異性。下面是來自谷歌翻譯插件的例子:

#goog-gt-tt .translate-form .activity-form input.activity-submit.focus #goog-gt-tt .translate-form .activity-form input.activity-submit:active

添加特異性之選擇是可能的,但讓人更復雜和困難的代碼來理解。

同樣重要的是:第三方可以隨時改變選擇器的特異性,迫使你調整你的選擇。

由於這些原因,我通常會下載一份CDN樣式表並使用!important進行調整。

(添加!important也有助於檢查開發工具時,區分了CDN的您的樣式。)

+0

教我一些新的,downvoter。正如我所提到的,我做了很多。如果你有一個更有效和有效的方法,我誠實地說,所有的耳朵。 –

+0

[不是downvoter]我們不能在cdn之後加載樣式表來覆蓋樣式嗎?適用於正常的樣式表,所以我認爲它應該也適用於CDN。我不認爲從CDN加載很重要。 –

+0

你的規則仍然需要相同或更高的特異性。 –

2

沒有必要對!important有這樣的選擇。只要確保你的規則 bootstrap的規則後,你會沒事的。

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

我覺得一樣。但完全困惑,因爲其他高代表用戶的答案在這裏:/ –

+0

@Mr_Green如果特異性是相等的,那麼是,在Bootstraps後加載你的CSS規則將盛行 – j08691

+2

是的。我完全不同意Michael_B的回答。 –

相關問題