2014-08-29 100 views
-2

是否有任何可能性只使用css擴展存在類?擴展CSS類

.darkStyle { 
     color:#eee; 
     background:#222; 
} 
.element { 

     // here I want to get all properties from darkStyle 

     min-width:100px; 
     display:block; 
} 

我知道我可以在HTML類=「darkStyle元件」使用,但任何類似的在我的例子延伸方法將是更可用。

+0

@ProgramFOX AFAIK CSS繼承是施加到派生元素,而不是由一個樣式非常相同的元件的機構先前的規則。元素不會繼承應用於自身的樣式,它們只是其樣式,適用於它的樣式。 – FelipeAls 2014-08-29 08:53:50

+0

@FelipeAls我鏈接的問題的答案可以在這裏重用,所以它是重複的。例如,那裏的LESS答案准確解釋了OP在這裏想要的內容。 – ProgramFOX 2014-08-29 08:57:22

+0

@ProgramFOX接受的答案也回答了這個問題(部分原因還有很多其他的方法)。我和Jawad一樣困惑:繼承(所謂重複的標題)是CSS的一個支柱,在這種情況下根本不代表這一點 – FelipeAls 2014-08-29 15:23:41

回答

1

爲此使用LessSass

在減:

.element { 
    .darkStyle; // Will output all styles from .darkStyle; 
    min-width:100px; 
    display:block; 
} 
+0

此外,實際問題的實際答案是「不,不使用_only_ CSS」。 – 2014-08-29 08:30:55

1

分配共同屬性第一,然後分配的獨特性質對於.element。這將是僅有CSS的唯一方式。您可以使用像Less這樣的CSS框架來增加繼承等功能。

.darkStyle, .element { 
    color:#eee; 
    background:#222; 
} 

.element { 
    min-width:100px; 
    display:block; 
} 
+0

這是管理CSS的一個好處,但它確實說明了使用_pure_ CSS實現_extend_類的任何方式(不可能)。 – 2014-08-29 08:36:00

+0

是的,當然你是對的。 – 2014-08-29 08:37:36

0

不,你不能「擴展」類。而且你不需要,CSS不是一種編程OO語言,並且具有不同的機制。

例如,類可以給定的HTML元素進行組合:

<p class="darkStyle"> 
    I'm styled by styles applying to .darkStyle 
</p> 
<p class="darkStyle element"> 
    I'm styled by styles applying to both .darkStyle and .element 
</p> 

Multiclass!

+0

儘管可能,但我認爲這種CSS標記並不是最好的。設計應儘可能避免使用HTML。我認爲更好的結合在CSS本身中。 – 2014-08-30 03:20:25

+0

@ Pierre-EmmanuelLevesque我的答案中沒有CSS,只有OP使用的類。儘管在一個理想的世界裏,在大型項目中,內容和形式會有完美的分離,但它不會擴展。新的模板,更多的CSS規則,重複廣告資料庫並獲得數以千計的CSS規則。 OOCSS等在這些情況下非常有用的方法 – FelipeAls 2014-09-01 13:19:29

+0

對不起,我應該更清楚。我的意思是說我不認爲在你的HTML中有這種CSS鉤子是一個好主意。我會說這樣做比較難,但不容易。你越分離內容和設計,我認爲更容易的縮放。個人喜好我猜。 – 2014-09-02 01:03:35