cssで同様のクラスの指定が二重に重なった時はどちらが優先されるのでしょうか。
.content {
padding: 20px;
}
.content {
padding: 40px;
}
という表記だと、どちらが優先的に処理されますか?
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
セレクタの優先順位には「詳細度」と「記述順」の2つの情報が用いられます。
「詳細度」とは文字通り「どれだけ詳しく具体的に指定されているか」を意味しており、
ざっくり言うと
要素 < class < id < インラインStyle
の順に詳細度が高くなっていき、優先順位が上がっていきます。
子孫セレクタなど複数のセレクタが組み合わされている場合も、
トータルで**「より詳細に指定されたセレクタ」が優先**されることになります。
(※インラインStyleの詳細度は非常に高いので、原則他の全てのセレクタに優先します)
詳細度が全く同じ(今回の例のようにclassセレクタ同士など)場合は、
「後から読み込まれる方」が優先となります。
ただし、上記の優先順位ルールを無視して指定の記述を最優先させる奥の手として、
!important
の指定があります。
プロパティの後ろにこれをつけると、他に優先順位の高いセレクタがあったとしても、
!importantを指定した箇所のスタイルが最優先される仕様となっています。
(乱発するとメンテナンス困難なCSSになるのであくまで最終手段です)
投稿2016/08/10 16:28
総合スコア3763
0
ベストアンサー
簡単には、より具体的に指定したものが強く、同じ定義なら後に指定したものが勝ちますが、
!important 指定することで、順位を変えることもできます。
簡単な例では
html
1<div class="content">a</div>
以下のようにしたとき、paddingは40になります。
(divよりも、「クラスがcontent」の方が具体的)
css
1.content { 2padding: 20px; 3} 4 5.content { 6padding: 40px; 7} 8 9div{ 10padding : 100px; 11}
しかし以下にした場合は paddingは20になります。
css
1.content { 2padding: 20px !important; 3} 4 5.content { 6padding: 40px; 7} 8 9div{ 10padding : 100px; 11}
投稿2016/08/10 13:28
総合スコア2604
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
重複定義は後書き優先です
追記
厳密には「ポイントの高い方」です(記述例場合はポイントが同じなので原則に従う=後書き優先)
ポイントについての参考サイト
CSSセレクタの優先順位の計算方法
あ、これはセレクタの話か、、、
投稿2016/08/10 13:27
編集2016/08/10 13:37総合スコア3116
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。