• ベストアンサー

CSSに同じclass名がいっぱい‥。どれが最優先されますか?

貰ったCSSファイルがありますが、同じclass名が無数にあります。 .abc { *****:+++; } .def .abc { *****:+++; *****:+++; } .abc { *****:+++; } こんな感じで、同じclassが10以上ある時もあります。 これらを触りたい時、一体どれを触れば正しく反映されるのかお教え頂けませんでしょうか。 (一番最後のが反映される、など) また、同じclassはひとつにまとめた方が管理上便利かと思うのですが、そうでもないのでしょうか。 どうぞ宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • ICHI-yan
  • ベストアンサー率33% (45/134)
回答No.2

整理はされた方が管理が楽です。自分ルールはやっているうちになんとなく出来ていくみたいですが。 1さんの言うように、正確には仕様書が一番なのですが、とっつき悪いのでなんとなくわかったような気になるページを紹介しますね。 http://www.stylish-style.com/csstec/base/order.html 簡単にいうとポイント制で得点の高い値が表示されます。誤解を恐れずにいうと限定されればされるほどポイントが高くなるような配点になっているようです。全称セレクタより部分、部分の中のclassよりidの方が限定される。って具合。で、同じ得点なら後ろが反映されるって具合です。

shigaieto
質問者

お礼

これまた分かりやすく重宝しそうです。確かに分かった気になれそうです(^^; しばらくはICHI-yan様のこのサイトを参考に、着実に習得していければと思います。 ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

http://www.w3.org/TR/CSS21/cascade.html 6.4.1 Cascading order カスケードの順序 該当するmedia typeに適用されるプロパティを 優先度高 !importantが書かれているユーザースタイルシート !importantが書かれているページ製作者スタイルシート !importantが書かれていないページ製作者スタイルシート !importantが書かれていないユーザースタイルシート ブラウザ等のユーザーエージェントのスタイルシート 優先度低 プロパティの値は以下の順で優先度が決められる http://www.w3.org/TR/CSS21/cascade.html#specificity ●style属性によって指定されている宣言にはaを1、指定されていないものはaを0とする。 ●セレクタ中に含まれるIDセレクタ(#)の数を数え、bとする。 ●セレクタ中に含まれるIDセレクタ(#)以外の属性および擬似クラスの数を数え、cとする ●セレクタ中に含まれる要素名および擬似要素の数を数え、dとする p[id=p33]のような指定のものはたとえ使われているのがDTD上でID型の属性として定義されていたとしてもcに含める。 a>b>c>d の順で優先される(aが同じならbが大きい方が優先,aもbも同じならcが大きい方が優先・・・・) したがって、上記URL中のソースではP要素の背景は緑色になる ●優先度が同じになってしまった宣言については後に書かれた宣言が優先される ●@importで読み込まれたスタイルシートファイルについては,そのファイル中の宣言は,読み込み元のスタイルシートのすべての宣言の前に書かれているものとして扱われる。 ======= 以上,W3C CSS 2.1 6.4 The cascade 6.4.1 Cascading order 6.4.2 !important rules 6.4.3 Calculating a selector's specificity を私訳

shigaieto
質問者

お礼

もの凄く丁寧にご回答頂き、ありがとうございます。 今CSSを猛勉強中なので、ぜひ参考にさせて頂ければと思います。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CSSファイルが見当らないclass名があり、しかもCSSが効いています。どこにあるんでしょうか?

    tableのtdやthの背景にうまく画像が入っていてうまいつくりがあったので、方法を調べようとしてソースを見て、CSSファイルを調べるのですが、該当のclass名が検索しても存在しないのです。こんなこと初めてです。 なのにちゃんとCSSは効いています。HTMLソースには記述という記述がないので、どう考えても外部スタイルシートとしか思えないのですが・・・ JavaScriptで操作しているのか?と思ってそのあたりも見はしたのですがわかりませんでした。 以下のURLです。 ※ちなみに「比べてください!圧倒的なコストパフォーマンス」というところの表のように、背景画像や2ピクセルでの区切り線、tdやthによって背景画像や色を変更している手法などを知りたいものです。 http://www.rensaba.com/campaign/ocssl/ とりあえず、tableタグにある「class="comparison"」が見当たらないのです。 このソースにかかれてあるCSSファイルは複数ありますが、全て検索かけてみたのですがひとつも出てきませんでした・・・・ この表の作り方だけでなく、いったいどうやって効かせているのかも知りたいです。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • 外部css定義したclassをhtmlで引き継ぎ別名で定義する方法

    いつもお世話になります。 外部cssで、例えば xyz.css div.abc{ font-size:13px; width:100px; height:120px; border:solid; border-width:2px; border-color:#460675; } などと定義し、 htmlで <link rel="stylesheet" href="xyz.css" type="text/css"> <style type="text/css"><!-- div.def{ ここで、class abc の内容の一部のみ変更、追加をしたいんですが、 その記載方法がわかりません。 } --></style> 次のようにしてもできますが、 <div class="abc" style="ここに記載" ・・・・ JavaScriptで、classを切り替えて使用したいので、 cssで定義したclassを基に新たなclassを新たな名前でそれぞれのページでできないものかと調べています。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • 【DreamWeaver】CSSのclass名を変更したい

    ドリームウィーバーMX2004と8を使用しています。(Win-XP) 現在CSS(スタイルシート)のclass名を変更したくなった場合、全てのファイルを手作業でチェックしなくてはならず結構大変です。ドリームウィーバーではClass名の一括更新の機能はあるのでしょうか? ご存知の方教えてください。よろしくお願いいたします。

  • CSSでid名やclass名に「_」や「-」は危険?

    CSSでid名やclass名に「_」や「-」を使うと 一部のブラウザでは、正しく表示されないと 聞いたのですが、本当なのでしょうか? 私の場合 #left_column { 等と使っていたのですが、 上記が本当なら非常に管理が難しくないでしょうか? 皆さんはどうしておりますか?

    • ベストアンサー
    • CSS
  • DWでhtml5で記述するとCSSが反応しな

    Dreamweaver CS6を使ってますが、なぜか、html5で記述すると、CSSが反応しません。 例えば、今までの、XHTML+cssですと、 <div id="header"> <div class="abc"> 中身 </div></div> だと、CSSパネルで、 #header .abc で、記述したら、もちろんデザインビューに反映してたのですが、 HTML5の記述で、例えば、 <haader id="header"> <section class="abc"> 中身 </section> </header> だと、CSSパネルで、 #header .abc と、しても反映されません。 ライブビューや、ブラウザでは、反映されている様です。 (しかし、一回一回、ライブビューに切り替えたり、ブラウザで確認しないとならないのは、非常に不便です。) ■Dreamweaverのデザインビューでは、HTML5は、対応してないのでしょうか? ■Dreamweaverで、HTML5を使う、何かのプラグインなどあるのでしょうか? ■その他、何が間違っているのでしょうか? お詳しい方、お教え頂けますでしょうか。 宜しくお願い致します。

  • CSS内で呼び出してる画像に対して、class属性をつけたい

    CSS内で呼び出してる画像に対して、class属性をつけたい お世話になります、CSSに関して下記のようなことは可能なのでしょうか。 とあるライブリにimgタグにclass属性を指定して使用するものがありました。 例:<img src="image.gif" class="○○"/> (クラスを指定すると画像にエフェクトがかかる) これをcssで下記のように呼び出している画像に対して適用することは可能でしょうか。 [cssファイル] #bkg .opt1 { background: url('画像のパス'); } [html] //こんな感じで呼んでいる <li class="bkg opt1"><span>image</span></li> CSS内でクラス指定ができないものかと色々試してみたもののうまくいきません・・ 適用方法、ヒント等教えていただけますでしょうか よろしくお願いします

  • CSSのid名class名の重複回避方法について

    今、複数ページがあるサイトを作ろうとしているのですが、 他の人が作成をする場合もあるので、 ヘッダ・フッタなど、共通部分に使っているcssの設定(idやclass名)と、 個々のページで設定するcssの設定が重複しないようにしたいと思っています。 もし、共通cssと個別cssに同じ#fontというid名が存在してしまったとして、 個別のページのcssファイルに↓の用に記述し #page01 #font{  color:#FFFFFF; } html内の、<div id="page01">~</div> の中に含まれるid="font"と定義した場合 共通のidに#font が存在していても大丈夫なのでしょうか? また、大丈夫な場合、idやclassを作るたびに #page01 #font #page01 .photo と#page01を頭に全部つけると分かりづらくなるな。。と思うのですが、 それを回避する方法はありますでしょうか? ほか、重複しないアイデアをご存知の方がいらっしゃいましたら ご教示いただければ幸いです。 どうぞよろしくお願いいたします!

    • ベストアンサー
    • CSS
  • JqueryでCSSの設定値を変更する

    こんにちは。 JqueryもしくはjavascriptでCSSの操作を行いたいのですが、 CSSの設定値そのものを変更させ、保持することは出来るのでしょうか。 例えば、以下のようなCSS設定があり、 p.class-abc{ line-height : 120%; } 描画されている<p class = "class-abc">***</p>に対して、 $('p.class-abc').css({'line-height' : '200%'});とすると、 firebugsで見る限り、 描画されている<p>に対してstyle属性を付与し、line-heightの値を上書きしているように見えます。 私がやりたいのは、 「.class-abc」をあるイベントで「line-height : 200%」に変更して保持し、(これを(1)とします。) その後、あるイベントに連動して、例えば$('p.#zyx').addClass('.class-abc');とした時に、 line-height : 200%である.class-abcを付与したいということなんですが・・・。 この質問を書いていて思ったのですが、 ”クラス”というのは、あくまでセレクタであり、スタイルシートで設定する p.class-abc{ line-height : 120%; } のような記述は、何らかのオブジェクトとしてブラウザに保持されるものでは無いということでしょうか。 雑多な質問になってしまいましたがご教授頂けますと幸いです。 宜しくお願い申し上げます。

    • ベストアンサー
    • CSS
  • cssが読み込まれない

    htmlを作成しています。(html5) が、cssが読み込まれなくて困っています。 例えば下記のような場合、 ***************** <div id="syu"> <table> <tr> <td class="code1">コード    <input type="text" class="style1"> </td> <td class="style2"> <input type="text" value="abc" class="style3"> </td> </tr> (続く) ******************* cssファイルに設定する場合、下記の書き方はどちらも間違っていて、効かないのですが どういう風にかけばいいのか、思い悩んでいます。 (1) #syu .code1{・・・} (2) #syu table td.code1{・・・} 正しくはどういうふうに書くのが正解なのでしょうか? すみません、自分で調べろ、いろいろ試してみろと言われそうですが、 最初はうまくcss読み込まれていたのですが、途中で事情があって、htmlの一部をiframeに持っていったら、残されたほう(上記)のcssが効かなくなってしまったのです。 これを元にプログラミングしなければならず、緊急なのでヘルプをお願いしたいです。 よろしくお願いします。

    • ベストアンサー
    • CSS
  • DWの拡張で、CSSの空を作成するもの

    こんにちは。 私が、HTMLをある程度作ってからCSSを入力していくのですが。 いつもこんな感じになります。 <div id="wraper"> <div class="content"> <div class="content_detail"> </div> </div> </div> こんな感じで適当にHTMLを書いて、 「wraper」という文字をコピーして、CSSにペースト。閉じタグをつける。 ↓こんな感じです。 #wraper{ } ---------------------- いつもいつもコピして、cssでid名やclass名を設定するのが面倒です。 DWの「新規CSSルール」を押しても、何も入力していない場合は、cssに反映されません。 ボタン1つで、HTMLのID、class名がCSSで「作成される」方法はないでしょうか? alt+クリックしても CSS側に設定されないと、表示されませんでした。

このQ&Aのポイント
  • 別府由来さんからの質問『取り柄がひとつ無くなってしまった』
  • 花粉症対策を教えてほしいという別府由来さんからの質問
  • 「暴太郎戦隊ドンブラザーズ」の出演者である別府由来さんが、花粉症対策について質問をしています。
回答を見る