• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:paddingがきかない。)

paddingがきかない。ulはpaddingがきかないと言うことは無いのになぜきかないのでしょうか?

このQ&Aのポイント
  • paddingがきかない理由として、ul要素にはデフォルトのpaddingが設定されており、それを上書きしない限り適用されないためです。
  • 解決策としては、ul要素に対して明示的にpaddingを指定することで解決できます。
  • また、heightを使用して背景を指定することでもpaddingが効かない問題を回避することができます。

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

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

先ほどは横幅と誤解して筋違いの回答をしたようで・・ ulは、ブロック要素ですがそれ自体のサイズは抱合している要素に依存します。 したがって、高さはline-height:で指定しないとなりません。line-height:は継承されますので ul{line-height:40px;} とするのが正しい方法です。 また、ul{ border:solid transparent 1px; padding:20px 0; } とborderを指定すると背景色/画像はborder辺の内側になります。  ul自体に高さが存在しないのは、含まれるli(リストアイテム)要素をabsoluteなどで独立させると、高さが消えてしまうことでわかるでしょう。  詳しくは  ⇒8.4 パディングのプロパティ( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/box.html#padding-properties )

noname#226032
質問者

お礼

ありがとうございます。 ulは、ブロック要素なのにそれ自体のサイズではなく、中の要素の縦のサイズで縦のサイズを決めるのですね。 横はwidthで出来ますが。

その他の回答 (2)

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

>横はwidthで出来ますが。  そうです。ブロック要素なので、height:width:共にautoなのですが、ちょっと扱いが変わっていて、ブロック要素の場合は横幅一杯、縦は折り返しなどもあるため内容に追随・・・幅は無くても一杯、縦はなかったらゼロ。  置換インライン要素とか、非置換とか、私もこの部分はややこしくて実際にやってみないとと(苦笑)。  ⇒10 視覚整形モデル詳細( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/visudet.html )  ⇒10.6 高さとマージンの計算( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/visudet.html#Computing_heights_and_margins )  私は原則としてline-height:を指定しています。テキストが中央に表示されますし、継承されるので・・

noname#226032
質問者

お礼

ありがとうございました。 また、今後ともコメントはお手柔らかにお願いします。

回答No.1

>ulはpaddingがきかないと言うことは無いのになぜきかないのでしょうか? ブラウザ等の環境にもよるので、決めつけるのは原理主義者のやることです。 で、ulではなく、liに反映させる方法は試したんですか?

関連するQ&A

専門家に質問してみよう