2017-10-04 32 views
1

我在我的網站上實現了一個黑暗模式,並試圖以最乾淨的方式(無鍋爐板代碼)進行。如何爲一個CSS類定義多個樣式?

所以我想在CSS中製作.darkmode類,用它定義樣式,並且當用戶啓用暗模式時,javascript只是將darkmode類添加到<body>

我怎麼能用CSS做這樣的事情?

.darkmode { 
    .content{ 
     background-color: black; 
    } 
    input{ 
     background-color: black; 
    } 
} 

所以我的問題是,我怎麼能加入這個類的<body>時使網頁上的CSS變化不同的元素?

+0

你不能在CSS中做這個語法糖,但你可以在Sass或更少。在香草CSS中完成它的唯一方法是'.darkmode .content {...}''.darkmode input {...}' – Damon

回答

4

您發佈的代碼將是有效的SCSS/LESS。但在純CSS,你可以簡單地做,通過使用

.darkmode .content { /* CSS */ } 
.darkmode input { /* CSS */ } 

所以,是的,你總是在每一個選擇的前指定.darkmode

+0

太棒了!感謝解決方案。 – captincrunch

0

讓我們假設你有一個選擇,像

.mydiv .myanchor 

你可以重寫/使用

body.darkmode .mydiv .myanchor 

是更具體的,因此規則將覆蓋默認規則添加屬性。

0

要在普通的CSS中實現這一點,你將不得不使用CSS子選擇器;

body.darkmode .content { 
    /* Put styles here */ 
} 
body.darkmode input { 
    /* Put styles here */ 
} 

基本上有邏輯說:「與類darkmode得到body元素,並找到其子.content/input

使用CSS選擇器,具有由空間seporated二元選擇查找所有第一元素內的第二元素; div p會在所有<div>標籤內找到所有的<p>標籤。