- ベストアンサー
*でパッディング・マージンを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つの違いが分かりません。
- みんなの回答 (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・・・
その他の回答 (1)
- ORUKA1951
- ベストアンサー率45% (5062/11036)
*(全称セレクタ)は詳細度が、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の設定をする必要はありませんし、避けるべきです。
補足
ありがとうございます。デフォルトCSSもフル活用していきたいと思います。 もう1つ、質問なのですが、上記のbody内の全ての要素(h1,h2,h3,h4,h5,h6,p,table,th,td,div,ul,ol,li)にhtmlとbodyを加えれば、全称セレクターと同じ設定になるのでしょうか? あくまで知識として知っておきたいので。
お礼
ありがとうございました。上のサイトを参考にしてきます。