2017-09-01 7 views
-2
<table class="table table-striped"> 
     <thead> 
      <tr> 
       <th>#</th> 
       <th>Firstname</th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr> 
       <td>1</td> 
       <td>Anna</td> 
      </tr> 
      <tr> 
       <td>2</td> 
       <td>Debbie</td> 
      </tr> 
      <tr> 
       <td>3</td> 
       <td>John</td> 
      </tr> 
     </tbody> 
</table> 

これはブートストラップの例のスニペットです。 は1つのラベルに複数のクラスがあることに気づいたので、これらの2つのクラスの関係は何ですか? テーブルストライプのサブクラスはテーブルのサブクラスですか?複数のクラスが1つのラベルにある

そして、CSSはこの要素のスタイルをどのように変更しますか? のスタイルはのテーブルストライプの表のスタイルを上書きしますか?

さらに、クラスごとにどのようにこの要素を選択する必要がありますか?

答えて

1

私はあなたがまだ基本的な仕組みがどのように動作するかを学ぶまでは、フレームワークから離れることを学ぶために、はるかに優れていることを示唆しています。とにかく:

あなたが言及したクラスは全く関係がありませんが、実際にはすべてのCSSクラスは全く関係がありません。

.table { 
    border: 1px solid black; 
    width: 100%; 
    // other common properties you find in a table 
} 

、そこに他が行く::彼らは、例えば自分で目立つ

.table-striped { 
    border: 1px dashed black; 
    // other properties you can find on a striped table 
} 

あなたはtableクラスtable-stripedを含むテーブルでtable-stripedを呼び出すようちょうどtableいるの共通プロパティをオーバーライドしますborderであり、要素に適用されます。

どのようにオーバーライドしますか?それはCSSで優先と呼ばれるものです。最後にスタイルが適用されても後で適用されますが、後でCSSオーバーライドが発生します。IFセレクタは一致しません。

そして最後の事:

.table { 
    // stuff 
} 

.table-striped { 
    // stuff 
} 

// if selector contains both classes 
.table.table-striped { 
    // stuff 
} 

// if a table element contains .table class 
table.table { 
    // stuff 
} 

// and so on... 

は全く関係ありません:それはどのようにあなたのようにクラスを選択しようとしている問題ではありません。あなたが理解するのを助けることを願って。

+0

偉大な答えです!しかし私の経験では、 '.table-striped'は通常、偶数行と奇数行の背景色が異なることを意味します。 –

+0

'.table-striped'が提供できる' other'プロパティです。私の例はトップレベルの要素にしか当てはまりませんが、後で '.table'で見つけることのできない '.table striped td:nth-​​child(even){// stuff}'となります。 – masterpreenz

+0

あなたの問題に答えるには、答えとしてマークすることを忘れないでください。 – masterpreenz

0

ブラウザは両方のクラスの値を使用して、その要素に適用します。

あなたは複数のクラスは、彼らがお互いにどんな関係があることを意味するものではありませんしているそれらのそれぞれまたはそれらの両方

​​

+0

cls-aとcls-bに対して同じattrがcssで競合する場合はどうなりますか?どちらが優先されますか?秩序は問題ですか?私はclass = "cls-a cls-b"とclass = "cls-b cls-a"を意味します。 –

+0

これはcssの特異性に関連しています。これは例えばhttps://css-tricks.com/specificsで確認できます。 -on-css-specificity/ – Dekel

0

に基づいて要素を選択することができます。私が知る限り、<table class="table table-striped"><table class="table-striped table ">とまったく同じです。

あなたは以下の組み合わせのいずれかでそのクラスを使用して、このテーブルを選択します:

  • .table
  • .table-stripped
  • .table.table-strippedまたは.table-stripped.table
  • CSSが影響を受けるだろうどのように

が依存スタイル。名前によって、私は.tableがすべてのブートストラップテーブルとしてそれをスタイルすると仮定します。 .table-strippedは、奇数行と偶数行に異なる背景色を追加します。 Example

+0

属性セレクタを使用している場合、CSSクラスの順序は問題になりません – Nova

0

これは単なるブートストラップCSSスタイリングであり、1つの要素に必要なだけのクラスを持つことができます。テーブルストライピング後にもう1つのクラスを追加し、独自の.cssファイルを作成し、必要に応じて編集することができます。または、idをテーブルに追加して、そのようにスタイルすることもできます。

関連する問題