2013-04-01 31 views
5

當JavaScript庫創建一個<div>,它通常設置在DIV一類,以便該庫的用戶可以風格它他/她自己。然而,對於JS庫來說,爲<div>設置一些默認樣式也很常見。應如何JavaScript庫組默認的CSS樣式(有沒有「!notimportant」?)

爲做到這一點,圖書館將與內嵌樣式最明顯的方法:

<div style="application's default styles" class="please-style-me"> 
    ... 
</div> 

然而,這將使應用程序的默認樣式王牌用戶的風格。一種解決方法是使用嵌套的div:

<div style="application's default styles"> 
    <div class="please-style-me"> 
    ... 
    </div> 
</div> 

這對於很多樣式,比如「字體」的偉大工程,但無法對其他類似的「位置」,其中內div的風格將不會覆蓋外div的。

哪些是一個JavaScript庫創建帶有默認用戶風格化元素的最佳做法?我不希望用戶需要包含默認的CSS文件(保持庫的獨立性很好)。

+4

只有在CSS中有趣'!important'會意味着重要。在任何編程語言中''important''已經意味着'不重要' –

+0

@HankyPankyㇱ,這就是爲什麼CSS不是一種編程語言:D –

+0

如果您使用外部CSS樣式表進行樣式設計,那麼請確保將應用程序的CSS文件在默認樣式表之後。並且使用更多確定的選擇器,如'div.container'而不是'.container',它將覆蓋其他不太強大的選擇器。 –

回答

2

當JS庫有應使用樣式的默認設置,但也應該被覆蓋時,JS庫應該包括一個單獨的樣式表。

的JavaScript應避免添加樣式直接儘可能地,所有的造型推遲到CSS它是合理的。

風格集開啓和關閉很常見。優雅地處理這些情況的方法是使用CSS類。

簡單地使用外部樣式表可能不合理的情況是動畫。當然可以使用CSS動畫,但對於跨瀏覽器支持,異步插值用於將樣式從一個值移動到另一個值。

1

沒有!notimportant或CSS !unimportant。我還沒有遇到一個公認的最佳做法。它看起來像一個CSS文件是應該是用戶可修改的樣式的事實標準。

但是,如果你想保留的東西都在一個庫,我會拿你的第二個例子,你的應用程序的默認樣式,然後一個CSS類追加到它,並在前面加上獨特的類名的東西。然後,如果實現者想要覆蓋樣式,那麼實現者可以使用!important來覆蓋您的用戶樣式。

!important添加到CSS文件中的一個或兩個樣式應該不是什麼大問題,但是如果您要創建一堆內聯樣式,這可能不是最佳解決方案。

相關問題