• ベストアンサー

liにスタイルシートが上手くいかない

こんにちは。 次のコードが上手く表示されず困っています。 <ul> <li style="border:1px solid red">aaa</li> <ul> <li>bbb</li> </ul> </ul> この場合aaaにのみ赤い罫線がひかれると思うのですが、bbbまでくくった形で罫線がひかれます。 liはhtmlで省略可能なためこのようになるのでしょうか。それとも書き方を間違っているのでしょうか。

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

  • ベストアンサー
  • LLLuna
  • ベストアンサー率35% (13/37)
回答No.4

書き方が間違っていると思います。 ul要素に直接配置できるのはli要素のみです。 この書き方では、ul要素に直接ul要素が書かれています。 そのため、IEの場合は恐らく、aaaの直後にある</li>をゴミとして無視してしまっているものと思われます。 <ul> <li style="border:1px solid red">aaa</li> <li> <ul> <li>bbb</li> </ul> </li> </ul> 或いは、 <ul> <li><div style="border:1px solid red">aaa</div> <ul> <li>bbb</li> </ul> </li> </ul> と書けば(divは任意の要素に置き換え可)、解決すると思います。

masaota56
質問者

お礼

<ul>の下には<ul>を入れれるものと勘違いしていたようです。ありがとうございました。

その他の回答 (6)

  • LLLuna
  • ベストアンサー率35% (13/37)
回答No.7

6氏の案は、文法的にアウトです。 dt要素に配置できるのはインライン要素に限られるからです。これを行うと、ブラウザによっては不可解なレンダリングがされます。(経験済み) あと、HTMLは文書に意味づけを行うものですから、見かけだけで組み合わせてはいけません。(必ずしも同じ見かけになるとは限りません)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.6

<dl> <dt><ul><li style="border:1px solid red">aaa</ul> <dd><ul><li>bbb</ul> </dl> でいいんじゃないですか?

  • pi8027
  • ベストアンサー率11% (6/53)
回答No.5

ul要素の直下にはli要素しか書けません。リストを入れ子にしたい人は度々ul要素の直下にul/ol要素を記述しますが、それは「不可」です。入れ子にしたい場合は、li要素の直下に書く必要があります。

参考URL:
http://web.xii.jp/iec/html/reference/ul
noname#17189
noname#17189
回答No.3

IEのせいみたい。 オペラとファイアフォックスとネスケだったら質問者さんの意図するみたいに表示されました。 でもIEでも、 <ul> <li style="border:1px solid red">aaa</li> <li>bbb</li> <li>ccc</li> <ul> <li>ddd</li> <li>eee</li> </ul> </ul> みたいにしてあったら一番最初のaaaのみが囲われてくれるみたいですよ。 質問文みたいにaaaとbbbが一個ずつしかないんだったらdivタグとかでmargin指定にしてしまったほうが手っ取り早い気もしますけど。

  • rusya
  • ベストアンサー率51% (73/143)
回答No.2

<dl> <dt style="border:1px solid red">aaa <dd> <ul> <li type="circle">bbb </ul> </dl>  ↑こんな感じでしょうか。文章のインデントを下げるだけなら、その段落に style="margin-left:○px" と指定する方法もありますが。

noname#17189
noname#17189
回答No.1

<ul> <li style="border:1px solid red">aaa</li> <li>bbb</li> </ul> これだけじゃだめなの?

masaota56
質問者

補足

bbbは階層を下げたいので、<ul>でくくりたいと思っています。

関連するQ&A