- ベストアンサー
CSSの記法を解説|センセーショナルなタイトルを生成
- CSSの記法について詳しく解説します。CSSファイル内の「#list li」の意味についても解説します。
- 解釈1では「#list」又は「li」タグに適用されると言われていますが、解釈2では「id="list"」の要素の配下の「li」タグに適用されると言われています。
- CSSファイル内に「#list li 」を追加して記述することで、「#list」の影響を受けたレイアウトになることがあります。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
明らかに2が正しいです。 スペースが空くと、配下への指定となります。 #list (id="list"に対する指定) #list li (id="list"配下のliに対する指定) ul#list li (id="list"がついているulの配下にあるliに対する指定) #list li#desert (id="list"の配下にある、id="desert"がついているliに対する指定) #list li li (id="list"の配下にあるliの配下にあるliに対する指定) .list#list1 li (class="list"とid="list1"が両方付いているタグの配下にあるliに対する指定) #list1 li,#list2 li (id="list1"の配下にあるli、id="list2"の配下にあるliの両方に対する指定) > 2.の解釈が正しければ下記のようCSSファイル内に「#list」を追加して記述しても > 「#list li 」が適用されて追加前と比べてもレイアウトに変更はないと思ったのですが > 微妙に「#list」の影響を受け(float:right;としているせいか画像が少し右寄りに表示された)ました。 > #list { > margin:20px; > height:140px; > list-style-type:none; > float:right; > } この#listは<ul id="list">に対して有効な指定ですので、 レイアウトに変更が無い事はあり得ません。 float:right;もそうですが、margin:20px;の効果もあります。 ulとliの両方にmargin:20px;があるので、親ボックスの左からは当然40px離れます。
その他の回答 (3)
- Katsu_Kaiz
- ベストアンサー率58% (345/586)
解釈として正しいのは、「2」のほうです。そもそも画像を横一列に並べるには、親要素の <ul> ではなく、子要素の <li> を float: left; しなければなりません。たとえるならば、<ul> という大きな箱があって、そのなかの <li> を横並びにするような感じです。 そのうえで、 ◆#list li ………… <ul id="list"> のなかにある <li> に適用されるので、横並び。 ◆#list …………… <ul id="list"> に適用されるので、横並びはせずに、<ul> 全体の位置がずれる。 ◆#list { } #list li { } …… 最初に、<ul id="list"> 全体が右による。そのうえで、<ul id="list"> のなかにある <li> が横並び。 となります。 なお、「#list, li」というふうに「,」で区切ると、<ul id="list"> と <li> の両方に適用されます。こうした適用関係がわからなくなったときは、<ul id="list" style="background: red;"> のように、適当な背景色をつけるといいです。見た目は悪くなりますが、全体の位置関係を理解できますよ。
お礼
ご回答ありがとうございます。 詳細なご解説と検証方法、 とても参考になりました。
- ORUKA1951
- ベストアンサー率45% (5062/11036)
自分で言うのもなんだが、その回答のベストアンサーがついている回答は間違ってます。 グループ化は、,で区切って並べたものです。 「 ⇒複数のセレクタで同じ宣言を共有する時、それらのセレクタはコンマで区切ってグループ化することが可能である。( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/selector.html#grouping )」 ★半角スペースは、「子孫セレクタ」です。No.1の回答を理解すること。 スタイルシートを身に付けようと思ったら、仕様書を読むこと。HTMLだって仕様書を読んでおかなきゃならないのと同じです。 ・5.セレクタ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/selector.html ) ・6.値の割り当て、カスケード処理、継承( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/cascade.html ) もちろん最初から読んでおくべきですが・・
お礼
ご回答ありがとうございます。 参考にしていた回答が誤っていたのですね。 スッキリしました。
- Tacosan
- ベストアンサー率23% (3656/15482)
仕様を見れば「1 ではない」ことは明らかなんだけどなぁ.... 厳密にいえば ID属性の値が list であるような任意の要素の中にある li 要素 を指定している.
お礼
ご回答ありがとうございます。
お礼
ご回答ありがとうございます。 詳細なご解説ありがとうございます。 とても参考になりました。