• ベストアンサー

*でパッディング・マージンを0pxにした場合

と、全てのタグを記述しパッディング・マージンを0pxにした場合とは違いがありますか? 例えば *{ margin: 0px; padding: 0px; } h1,h2,h3,h4,h5,h6,p,table,th,td,div,ul,ol,li { margin: 0px; padding: 0px; } この2つの違いが分かりません。

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

>(h1,h2,h3,h4,h5,h6,p,table,th,td,div,ul,ol,li)にhtmlとbodyを加えれば、全称セレクターと同じ設定になるのでしょうか?  いいえ。HTMLのタイプとブラウザによって差があります。それぞれのHTMLで使われている要素(タグ)の一覧はこちらにあります。 Another HTML-lint : Tags List ( http://openlab.ring.gr.jp/k16/htmllint/tagslist.html )  ま、当面思いつくものだと dl,dt,dd,blockquote・・・

mx5gg
質問者

お礼

ありがとうございました。上のサイトを参考にしてきます。

その他の回答 (1)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

*(全称セレクタ)は詳細度が、d=0です。 h1,h2,h3,h4,h5,h6,p,table,th,td,div,ul,ol,liなどのタイプセレクタは詳細度がd=1です。 ★6.4.3 Calculating a selector's specificity ( http://www.w3.org/TR/CSS2/cascade.html#specificity )  詳細度の計算は、CSS2と原稿標準のCSS2.1では変更されています。  タイプセレクタの場合、詳細度がより高いことと指定された要素以外には適用されないことが違います。  ただ、いずれの方法もオーサリングツールがスタイルシートに本質的な部分で対応できないための、逃げの手法です。*ですべて{margin: 0;padding: 0;}((注)0の場合単位は不要)のmargin,paddingを消してしまうと、「必要な場合、あるいはデフォルトのスタイルシートで十分な場合」にすべて再設定しなければなりません。 h1~h6(見出しレベル1~6),p(段落),table(表),th(見出しのセル),td(内容のセル),div(汎用ブロック),ul(順不同リスト),ol(序列リスト),li(リスト項目)がデフォルトの設定で良い場合も、すべて再設定しなければなりません。  そのためにスタイルシートが、膨大になりメンテナンス不能になってしまいます。  ですから、むやみに何でもかんでもmargin:0;padding:0の設定をする必要はありませんし、避けるべきです。

mx5gg
質問者

補足

ありがとうございます。デフォルトCSSもフル活用していきたいと思います。 もう1つ、質問なのですが、上記のbody内の全ての要素(h1,h2,h3,h4,h5,h6,p,table,th,td,div,ul,ol,li)にhtmlとbodyを加えれば、全称セレクターと同じ設定になるのでしょうか? あくまで知識として知っておきたいので。

関連するQ&A

専門家に質問してみよう