2015-05-12 15 views
0

我有很多CSS選擇器和多選擇的例外,所以我用:不給他們留下了...CSS:不()選擇與選擇列表進入

例如(只是一些選擇,我不需要) :

[class*="-dashboard-"]:not([class$="-binding"]), [class*="-dashboard "]:not([class$="-binding"]), [class$="-dashboard"]:not([class$="-binding"]) 

但我反而希望是:

([class*="-dashboard-"],[class*="-dashboard "],[class$="-dashboard"]):not([class*="-binding-"],[class*="-binding "],[class$="-binding"]) 

或別的東西,即北京時間比工作之一,並容易編輯短,沒有那麼重複...

我的問題是,我有大列表中的選擇器。允許用戶添加/刪除列表,所以我必須動態更改選擇器和例外。

有沒有人有一個想法來縮短那個?

+2

爲什麼如此複雜的選擇器的使用,瀏覽器將在呈現這個複雜的CSS代碼時死亡.. –

+0

你能展示一段HTML代碼來精確地展示你想要選擇的元素嗎?沒有這個,很難去嘗試和猜測。可能有點容易出錯。 –

+0

如果您需要複雜的選擇器來做某件事,那麼您的HTML絕對是不好的形狀。如果因爲某種原因你需要這樣做,我會查看sass或另一個預處理程序來生成完整列表,而不用正則表達式選擇,這可能會非常緩慢地呈現 – BillPull

回答

0

通常情況下,我的CSS看起來越來越具有特異性。一個非常通用的規則設置了大量的默認值,然後積極的匹配您給我們的那些規則之一,用其他方式覆蓋該樣式。

例如,您可以爲任何以「-binding」結尾的元素設置優先級更高的規則,以使元素不可見,或者任何您想要的元素。簡單來說,計算CSS規則的優先級:

  • 對方選擇添加100每個ID選擇
  • 添加10每類選擇
  • 添加1

我想你如果你的元素中有更多的類可以很容易地選擇,也就是說增加lolwtf-dashboard類的任何東西都應該添加dashboard類,這很容易被CSS選擇。