2012-05-25 4 views
5

単一のCSSセレクタのスタイリングを別のCSSセレクタにインポートし、それを追加したり、そこからプロパティを書き直したりする方法はありますか?別のセレクタのCSSセレクタスタイルをインポートしますか? (@importではなく)

.original_class{ 
background:black; 
color:white; 
} 
.overwrite{ 
@import(.original_class); /* I know this doesn't work */ 
color:blue; 
border:1px solid green; 
} 

は、私はちょうど.original_classを再宣言し、(CSSスタイルは上から下に書き換えされているので)、新しい値を割り当てることによって、これを達成することができますが、これは、元のCSSの属性を置き換えます:

さんが言ってみましょうクラス。私が望むのは、それらのプロパティを別のクラスに継承することです(複製すること)。

答えて

3

直接、

<div class="original_class overwrite">...</div> 

これは、同じ効果を持つことになりますが、あなたは、あなたがそのようにスタイリングしたいすべての要素のためにこれを行う必要があります:

あなたのHTMLにこのような何かを行うことができます。

継承/ミックスインをサポートするSASSのようなCSSプリプロセッサを使用するオプションもあります。

0

残念ながら。少なくとも私は1マイルの長さのポールで触れていないそれらの派手なCSSのプラグインのもののいずれかなしでは...

もちろん、1つの要素に複数のクラスを持つことを止めるものはありません。

+0

"手に触れないだろうか..."という部分について詳しく説明していますか? –

+0

私は一般的なフレームワークを承認しません。 HTML、CSS、JavaScript、PHPのすべてを手作業で書いています。何かがうまくいかないときは、私は非常に武装しています。 –

+1

さて、私はCSSプリプロセッサ(または、あなたがそれらを呼び出すときに "プラグインのもの")と良い経験だけがあります。私を保存して開発時間を大幅に短縮し、CSSの管理を非常に簡単にして面白くないようにしました。しかし、それぞれに自分自身... –

0

ちょっと迂回したい場合は、多分thisがあなたのためです。

2

カンマ(grouping selectors)との既存のセレクタからそれを分離することにより、最初のルールに.overwriteセレクターを追加することができますので、セレクタルールは.original_class, .overwrite次のようになります。

また
.original_class, 
.overwrite { 
background: black; 
color: white; 
} 
.overwrite { 
color: blue; 
border: 1px solid green; 
} 

、あなたが書くとき:

これは、元のCSSクラスの属性を置き換えます

CSSには属性やクラスといったものはなく、OOPの意図した意味ではありません。ルール、セレクタルール(HTML ID、クラス、要素、属性、その他の擬似オブジェクトを選択するためのルール)、宣言、プロパティ、および値があります。

関連する問題