2016-06-13 5 views
0

私はbase.csslayout.csscontents.cssの3つのscssファイルを持っています。特化なしでクラスをオーバーライドする方法は?

<link rel="stylesheet" href="base.css"> 
<link rel="stylesheet" href="layout.css"> 
<link rel="stylesheet" href="contents.css"> 

base.cssは、要素のデフォルトのスタイルのためにある:私は、次のように宣言します。私はheaderfooter、およびwrapperのウェブサイトにlayoutを使用しています。 contents.cssについては、その名前はそれ自体について語ります。はい、それはウェブサイトのすべての内容です。私は別にそれを得たので、私は実際に特異性を使用しません。

base.css

input { 
    padding: 12px 0 12px 0; 
} 

layout.css

layout-wrapper{ 
    /*some styles*/ 
} 

contents.css

input { 
    font-size:1.5em; 
    padding: 2px 0 2px 0; 
} 

I:例えばのようにcontents.cssinputをオーバーライドすると、base.cssのスタイルが最初に読み取られてからcontents.cssになります。私はなぜそれがうまくいけなかったので他の要素のinputのために働かないのだろうか。私は私のinput要素に特異性を置けば、私は私の目標を達成することができますが、それは次のようになります。これは、レイアウトとコンテンツを分離する目的を台無しにしてしまう

layout-wrapper{ 
      /*some styles*/ 

    input { 
     font-size:1.5em; 
     padding: 2px 0 2px 0; 
    } 
} 

contents.css。だから私の質問はどのように私は入力スタイルを任意の特異性なくコンテンツからオーバーライドできますか?

答えて

1

ファイルを分離していても、特定性はあなたの問題に対する答えですが、他の人は!importantを使用してもよいと思いますが、それはどうしても避けてください。

+0

本当に必要な場合以外は、私は使用したくありません。本当に特異性以外の方法はありませんか?私が特異性を追加すると、私のscssは5-6レベル深くなります。私は、すべての費用がそれ以上深くなることを望んでいません。順序付けられていないリストのため、その深さは4-5レベルです。 – user3771102

+0

次に、入力するクラスを追加し、より具体的なクラスを使用して入力をあなたのcontent.cssスタイルで入力します。それは私が与えた答えです。 - 特異性 - [特異度計算機](https://特異性)をチェックします。 – dippas

+0

私は良い特異性を置く方法を知っていますが、私の問題は私がそれを行うと私のコードが繰り返されることです。可能な限り私は自分のコードを再利用したい。 – user3771102

0

デフォルトのCSSのデフォルト入力と同じように、defaul diffクラス名または要素名を指定する必要があります

+0

まあ、私は自分のコードを再利用できるようにできるだけ一般的にしようとしています。私はこれら3つのscssで圧縮する必要がある20のCSSファイルがあります。だから、より多くのクラスを持つことは、1 scssでそれらの20 cssを持つようなものです。私はそれが良いとは思わない。 – user3771102

関連する問題