2017-03-02 4 views
1

別に使用すると正常に動作するコードがあります。CSSクラスが間違った順序で適用されています

<div class="red green blue"> </div> 

redの特性は、最初に適用されるblueによってその後​​によって上書き。最後にdivblueです。

しかし、angular includeでHTMLファイルを参照するメインアプリケーションで同じコンテンツを読み込むと、CSSの順序が逆になります。

今すぐblueが適用されます。最初に適用されます。​​次にredによって上書きされます。今すぐdivred

です。これはコードロジックを破っています。

誰かが考えていると考えられる理由は何ですか?今

+0

'div [class =" class1 class2 class3 "]'のような属性セレクタを使用していない場合、要素内のクラスの順序は関係ありません。 – Andreas

+3

CSSが上記のように動作しないので、問題を示すスタックスニペット( '[<]]'ツールバーボタン)を使用して** runnable ** [mcve]で質問を更新してください。行っている。 –

答えて

7

redの性質は、CSSがどのように動作するかではありませんそれblue

によって、その後​​によって上書きされ、その後最初に適用されます。クラスリスト内のクラスの順序は、そのクラスが要素に適用する規則の優先順位とはまったく関係がありません。

CSSルールは、例えば、同一の特異性を有する他のルール(の(ないクラスリスト)相対ルール

  • CSS内のルールの順序の

    • 特異によって適用されます後でルールはルールが!importantフラグthe specification

    詳細を持っているかどうか)

  • を獲得します。

    例:すべての3つのルールので、両方のdivは、最初はred green blueを有しているにもかかわらず、青色のテキスト(blueで指定された色)を有し、第二のblue green redを有すること

    .red { 
     
        color: red; 
     
    } 
     
    .green { 
     
        color: green; 
     
    } 
     
    .blue { 
     
        color: blue; 
     
    }
    <div class="red green blue">red green blue</div> 
     
    <div class="blue green red">blue green red</div>

    注同じ特異性を持っている場合、.blueルールはCSSの最後のルールであり、いずれも!importantとマークされていません。これとは対照的に

    、の.greenルールをより具体的にしましょう:

    .red { 
     
        color: red; 
     
    } 
     
    div.green { 
     
        color: green; 
     
    } 
     
    .blue { 
     
        color: blue; 
     
    }
    <div class="red green blue">red green blue</div> 
     
    <div class="blue green red">blue green red</div>

    div.green.blueよりも特異的であるためのdivは、代わりに青緑色今どのように注意してください、そうdiv.green CSSの後半に.blueがあるにもかかわらず、ルールは.blueルールよりも優先されます。

  • +0

    はい、最後のルールは勝つ必要があります..しかし、メインアプリケーションで角を使ってhtmlを読み込むと、最初のルールが優先され、ロジックに違反します。 –

    +0

    @ atulquest93:これはCSSの仕組みではありません。問題を示す質問に[mcve]を追加した場合は、おそらく便利です。 –

    +0

    実際に私はサブアプリケーションを持っているので、メインアプリケーションページにマージする必要があります。別々に使用すると、サブアプリケーションが動作していますが、メインページにインポートされたときにCSSの順序が尊重されます。だから私は立ち往生し、解決策を見つけることができません。 –

    関連する問題