- ベストアンサー
タグの属性とスタイルの優先度について
- HTMLの勉強中の方へのアドバイス。タグの属性とスタイル指定に関して、スタイルの方が優先されることがあります。
- 具体的なソースコードを通じて説明します。タグの属性でセルパディングを指定しても、スタイルによって上書きされることがあります。
- スタイルでの指定が優先される理由についても触れました。詳しくは記事をご覧ください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
*{ margin:0px; padding:0px; } なんて、お馬鹿な指定は止めましょう。オーサリングツール由来のもので、それをしてしまうと、すべてのデフォルトのスタイルを一から設定しなおさなきゃならない。 必要最小限の html,body{margin.0;padding:0;}位でよい!! スタイルシートを使うときは、基本的にstrictでHTMLを書きましょう。strictはプレゼンテーションに関わる要素、属性が使えません。スタイルシートでプレゼンテーションをHTMLは文書構造をというすみわけがきちんとできます。 <table summary="何とかの表"> <tbody> <tr> ・・・・・・・・でよい。 CSSを使うなら、プロパティより先にしっかり覚えておかなければならないのは、カスケーディング処理・・これがCSSの命であり、最大の利点。カスケーディング処理を理解してなきゃ、膨大な無駄なCSSととんでもないHTMLを書くことになる。 HTMLの要素(Element)の属性(attribute)での指定は、詳細度0として計算されますから、 たとえば、 table{cellpadding:0.5ex 0.5em;}と指定されただけで、その宣言は詳細度1ですね。だから上書きされる。 6.4.4 CSS以外の手段による体裁指定の優先度 ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/cascade.html#q12 ) カスケーディング処理 ★ユーザー、著者の最重要宣言 ★スタイルの出所(ユーザー、著者、ブラウザ) ★出現順番 ★詳細度 ★継承されるプロパティか、されないプロパティか? 値の割り当て、カスケード処理、継承 ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/cascade.html ) これを使わなきゃ、CSS(カスケーディングスタイルシート)と言いながら、CSSじゃない。
その他の回答 (1)
- Questa
- ベストアンサー率48% (13/27)
>“タグの属性”と“スタイル”での指定なら、“スタイル”が優先されると考えてよいのですか? その通りです。スタイルが優先します。 「属性は詳細度 0 に相当するCSS規則として解釈される。それらは制作者スタイルシートの先頭に挿入されているかのごとく扱われ、後続するスタイルシートで上書きされるかもしれない。」 http://www.w3.org/TR/CSS21/cascade#preshint (CSS 2.1) 6.4.4 Precedence of non-CSS presentational hints
お礼
W3Cの記事を引用していただいての丁寧な回答ありがとうございました。
お礼
『CSSを使うなら、プロパティより先にしっかり覚えておかなければならないのは、カスケーディング処理・・これがCSSの命であり、最大の利点。カスケーディング処理を理解してなきゃ、膨大な無駄なCSSととんでもないHTMLを書くことになる』このアドバイスに、目からうろこが落ちたような気がします。ありがとうございました。