2016-09-19 3 views
1

質問は簡単です。メインHTMLに含まれる2つのファイル間の競合する競合するCSSプロパティが解決され、2つのファイルのいずれかの設定が優先されるようにすることは可能ですか?他のファイルよりも1つ上のファイルのCSS設定の優先順位付け

私は

<link href="A.css" rel="stylesheet" type="text/css"> 
<link href="B.css" rel="stylesheet" type="text/css"> 

を持っており、Bが含まれているのに対し、Aは

body{ 
    color: #000000; 
} 

は私が何とか両方のファイルに存在するすべての設定が得ることを示すことができ

body{ 
    color: #ffffff; 
} 

のようなものが含まれている場合そのプロパティは、例えば、ファイルからですか?

SASSやLESSのようなエンジンでこれが可能ですか?

答えて

1

Aファイルでは、おそらく!importantを使用しますか?私はこれがCSSファイル全体で動作するかどうかはわかりませんが、これを試すことができます。

body{ 
    color: #ffffff !important; 
} 

これを使用することを避けることをお勧めしますが、それはうまくいく場合があります。なぜ重要でないのか、それをいつ使うべきかを説明する回答hereがあります。

+2

もちろん、さまざまなCSSファイルで動作します。これは、カウントするID /クラスです。 – Tom

+0

私はこれを知っています。しかし、私は、開発者がどのプロパティが重複しているか分からなくても、状況を解決しようとしていました。この方法には、この種の情報を取得する必要があります。 – MadPhysicist

3

CSSはカスケーディングスタイルシートの略語です。つまり、最後のルールは常に最初のルールを無効にします。ブラウザはまずA.cssのルールを解釈して適用し、B.cssのルールを解釈して適用し、A.cssのルールを上書きします。

ルールを1つのファイルに書き込むと同じことが起こります。

したがって、たとえば:

body { 
    background-color: red; 
} 

body { 
    background-color: blue; 
} 

background-color青を返します。スタイルを複数のスプレッドシートに分割するか、1つのファイルに書き出す場合も同じことが起こります。

ここではCascading and inheritanceについて詳しく読むことができます。

SASSまたはLESSはこれをCSSにコンパイルすると変更できません.SSS/LESSではCSSでできないことはできません。基本的には、より効率的なコードを記述してCSSにコンパイルするのに役立つツールです。

スタイルシートをマークアップ内の特定の設定(モバイルデバイスのみ)に適用するように指定することも、!important CSSプロパティを使用して常に適用するルールをマークすることもできます。

+0

ファイルがページの中央に含まれる場合はどうなりますか?それは「最後」と考えられるでしょうか? – MadPhysicist

+1

@MadPhysicist接線ですが、注目に値する:スタイルの中段を含む(実際には絶対に必要な場合を除き、「