2012-03-04 81 views
0

場景從根中繼承CSS?

比方說,我有一個側邊欄,每一個盒/小部件是鋰元素(不是很常見)。我用顏色,填充,邊距字體等設計了這些li元素。

一個或幾個盒子在其內容中都有自己的內部元素。我不想從box li元素繼承樣式。

另一種情況

比方說,我有與TinyMCE的(編輯)添加主要內容方含段落,列表和標題的頁面。

然後在內容中有一個「shortcode」,如下所示:[my_superbox_module]被自定義內容取代。該自定義內容包含添加了li元素的框。

的代碼可能是這樣的:

<p>My content</p> 
<ul> 
    <li>My content list item 1</li> 
    <li>My content list item 2</li> 
</ul> 
<p>Another content</p> 
<div class="my_superbox_module"> 
    <ul> 
     <li>My superbox 1</li> 
     <li>My superbox 2</li> 
    </ul> 
</div> 
<p>Ending paragraph</p> 

在這種情況下,我不希望一個類添加到每個UL-元素,因爲它是內容部分,加入TinyMCE的編輯器。

我可以從根繼承嗎?

有沒有辦法從根繼承樣式屬性,或者只是清理它並從頭開始。

這些事我已經知道

  • 我可以明確通過重寫其CSS內鋰元素。這增加了額外的CSS代碼。
  • 我可以使用外部li元素上的>選擇器來僅指定一個級別的深度。這在某些情況下效果不佳,例如嵌套框(嵌套li元素)。
  • 我可以將重置類添加到內部li元素。這增加了額外的HTML代碼。

有沒有很好的解決方案呢?

+0

你是什麼意思「根」? CSS中沒有「根」。 – 2012-03-04 19:49:28

+2

爲你想要的風格添加一個特殊的類。在編寫CSS時,針對特定元素並讓其他人獨立,而不是針對所有內容,並試圖否定某些特效。 – approxiblue 2012-03-04 19:51:37

+1

@Andrew Marshall:無論如何都有一個':root'選擇器:P – BoltClock 2012-03-04 19:54:51

回答

2

爲什麼不只是使用一個類?將您在CSS中的選擇器從li更改爲li.sidebar,並將class="sidebar"添加到您的li元素中。

+0

好點,但我認爲它在某些情況下失敗。看看我在「另一個場景」中更新的帖子。我還添加了一個代碼示例。如果您有任何更多的想法,請回復。謝謝! – 2012-03-04 20:22:00

+0

所以你說你希望你的風格被應用到網站上的每個'li',除了那些由模塊創建的? – 2012-03-04 21:50:18

+0

內容區域上的li元素應該被設置爲列表項,項目符號,左邊距等......但是屬於「模塊」一部分的li元素不應該繼承該元素。 – 2012-03-05 18:55:43