- ベストアンサー
CSSの*はどういう意味
CSS下記の*はどういう意味なのでしょうか? *を他に変えてCSSを組むことはできないのでしょうか? * { margin: 0; padding: 0; }
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
スタイルシートにしろHTMLにしろ、学ぼうと思ったら、何よりも先に仕様書に一応目を通しておく。勉強だっていきなり問題集から始めないでしょ(^^) すくなくとも いずれも邦訳--今のところウェブ標準--- ・HTML 4.01仕様書( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/cover.htmloc ) ・Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification (ja)( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/cover.html ) ここに、こんな掲示板で得られる断片的であやふやな情報ではなく、正確な情報があります。 *は 5 セレクタ( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/selector.html ) →5.3 全称セレクタ( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/selector.html#universal-selector ) です。詳細度は 6 プロパティ値とカスケーディング、継承の割り当て( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/cascade.html ) →6.4 カスケード処理( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/cascade.html#cascade ) →6.4.3 セレクタの詳細度を計算する( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/cascade.html#specificity ) あたりです。 CSS2では、セレクタを記述する際に基点となるセレクタから書き始めることになりました。CSS1で、.headerと書かれていたものが、div.headerと書くことになった。CSS1との整合性のために、詳細度は0のセレクタとして*(全称セレクタ)が導入され、.headerは、*.headerと一旦解釈される。 * { margin: 0; padding: 0; } は私は使用しません。なぜなら、ブラウザの持つすべてのスタイルシート HTML 4のためのデフォルトスタイルシート( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/sample.html ) におけるmargin,paddingをすべて上書きしてしまうため、要素すべてに再設定しなければならなくなり、スタイルシートが肥大化・混沌として非効率だからです。 *を他に変えてCSSを組むことはできないのでしょうか? *{} は詳細度が0000ですが、p{}とすれば詳細度が0001になります。私は必ず書いています。 html,body{margin:0;padding:0;} p{margin:0;text-ndent:1em;line-height:1.7em;} というふうに・・ セレクタや詳細度、カスケーディングの仕組みは、CSS(カスケーディングスタイルシート)にとって肝です。ここを完全に理解しておかないとスタイルシートは書けませんよ。