• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:<li>リストタグの直下のdivブロックの高さ)

リストタグの直下のdivブロックの高さに関する質問

このQ&Aのポイント
  • CSSのコーディングで困っている箇所があり、リストタグの直下のdivブロックの高さの問題について教えていただきたいです。
  • 直下にdivで囲ったブロックを入れると、リストの部分の高さが認識されず、divの内容が上にはみ出て重なる問題が発生します。他の配置方法や解決策はあるのでしょうか?
  • 問題の解決策としては、<p>&nbsp;</p>やテーブルを置くと正しく配置されることがわかっていますが、他にもうまい方法があれば教えていただきたいです。

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

  • ベストアンサー
回答No.1

とりあえず<ul>か<ol>か知らんけどちゃんと正しくマークアップ書いてからにしましょうね。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

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

>以下のようなhtmlを書いています。  HTMLと大文字で書きましょう!!(Hyper Text Markup Languageの略です)  ありえない、HTMLです。liは、<ol>ないし<ul>内にしかおくことができません。ブラウザは何とか表示しようと前後に<ol>などを追加して解釈しますが、その解釈は決められていませんから、期待通りにならないことが多いです。 『メモ: CSSスタイルシートを意図した通りに機能させるには、正しい文書解析木が必要です。つまり、正当なHTMLを用いるべきです。.( http://jigsaw.w3.org/css-validator/#validate_by_input )』  まずHTMLを書いたら  ⇒Another HTML-lint 5( http://www.htmllint.net/html-lint/htmllint.html )  のDATA入力(右上)などで、HTMLが正しいことをチェックしてからスタイルシートを書きましょう。 >このhtmlの直下にdivで囲ったブロックを入れると、  htmlの直下には、headとbodyしか入りません。 html  |-- head  |  |-- title  |  |-- meta  |  ・・・略・・  |-- body  |  |-- ul  |  |  |-- li  |  |  |  -- div liにはdivを含むことが出来る。  直下とは、DOM構造上の樹構造の直系の子孫と言う意味です。 >divで囲ったブロックを入れると、  divは意味のないブロックですが、<p>やtableと同様ブロック要素ですから、そのような差が出ることは考えられません。他の部分で間違っている。 <li class="a"><a h  のようにいちいちclassをつけるべきではありません。例えばナビゲーションブロックのulにおけるli要素でしたら div.nav ul li{}  で簡単に選択できるはずです。  いずれにしても、スタイルシートの前に、正統なHTMLが書けるようになったほうが、はるかに早道ですよ。

全文を見る
すると、全ての回答が全文表示されます。
  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.2

<div id="a"> <ul> <li class="a"><a href="05.html">あいうえお</a></li> <li class="a"><a href="06.html">かきくけこ</a></li> <li class="a"><a href="07.html">さしすせそ</a></li> </ul> </div> <div style="clear:both;"><p>>このhtmlの直下にdivで囲ったブロックを入れると、</p></div> まあ、#1さんの言う通りなのですが・・・ 恐らく、リストをfloatにしているので、次の要素のdivの行き場が困った事になっている・・・ または、positionが重なっている。 HTMLもCSSも間違っているという事です。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • IE6/ブロック要素のliで入れ子がある場合に改行のような余計なマージンが入る

    タイトルの通りなのですが、 左側サイドにタブメニューを設置しようとしているのですが、 IE6のみ、余計な改行のようなマージンが入ってしまいます。 色々と調べたのですが、どうしても解決できなかったので、お知恵をお貸しいただければと思います。 HTMLは以下のように書いています。 ==== <div id="menu"> <ul id="navi-block"> <li><a href="#" onmouseover="MM_showHideLayers('p0','','show')" onmouseout="MM_showHideLayers('p0','','hide')">メニュー名</a> <div id="p0" class="set"> <ul> <li><a href="#">メニュー名</a></li> <li><a href="#">メニュー名</a></li> </ul> </div> </li> <li><a href="#" onmouseover="MM_showHideLayers('p1','','show')" onmouseout="MM_showHideLayers('p1','','hide')">メニュー名</a> <div id="p1" class="set"> <ul> <li><a href="#">メニュー名</a></li> <li><a href="#">メニュー名</a></li> </ul> </div> </li> </div> ==== CSSは以下のように書いています。 ==== #menu { width:218px; position:relative; z-index:2;} ul#navi-block {list-style:none;} ul#navi-block li a {display:block;width:175px; height:30px;margin:0;padding:0.75em 25px 0 20px;background: url(../images/marker_square_gray_navi.gif) right center no-repeat;border-top:#CCCCCC 1px solid;} div#p0 {left:220px; top:0;} div#p1 {left:220px; top:0;} .set { width:220px; position: absolute; visibility: hidden; z-index:3;} ====

    • ベストアンサー
    • CSS
  • <div>テキスト</div>

    HTMLを記述する際に文書構造を明確に…と考えています。 見出しにはHタグ、本文にはPタグ、リストにはliなどなど。 ある書籍でbody直下にテキストを配置するのはいけない、と書いてありました。テキストに意味付けがなされていないから、というようなことが理由として書いてありました。 そこで思ったのですが、divはもともと意味をなさないブロック要素ですが、この直下にテキストを配置すると、このテキストは文書構造上意味を持たないものになって、文法上間違っているのでしょうか? 今のところ、 <div><p>テキスト</p></div> のように、pで意味付けをするのが正しいのかな、と考えていますが、W3Cのホームページではdiv直下にテキストを配置しているものがありました。 皆さんのご意見を伺いたいです。 div直下のテキストは正しいのか、間違っているのか、どうでもいいのか?

    • ベストアンサー
    • HTML
  • リストタグを用いた段組みメニューの不具合(IE6)

    数日間大変悩んだのですが解決しなかったため、どなたかご回答頂けると嬉しいです。 リストタグを横に二列並べて段組みにするようなレイアウトを作っているのですが、 IE6で確認した際にdisplay:inlineを使用しているにも関わらずリストが縦に並んでしまいます。 他のブラウザで見る際には問題が無いので、どうしたものかなと途方にくれています。 以下がhtmlとcssです。 【html】 <div class="test"> <div class="test_left"> <h3>テスト1</h3> <ul> <li><a href="#">・あ</a></li> <li><a href="#">・い</a></li> <li><a href="#">・う</a></li> </ul> </div> <div class="test_right"> <h3>テスト2</h3> <ul> <li><a href="#">・あ</a></li> <li><a href="#">・い</a></li> <li><a href="#">・う</a></li> </ul> </div> <div class="search_clear"></div> <div class="test_left"> <h3>テスト1</h3> <ul> <li><a href="#">・あ</a></li> <li><a href="#">・い</a></li> <li><a href="#">・う</a></li> </ul> </div> <div class="test_right"> <h3>テスト2</h3> <ul> <li><a href="#">・あ</a></li> <li><a href="#">・い</a></li> <li><a href="#">・う</a></li> </ul> </div> </div> 【css】 div.test { width: 500px; height: 370px; margin: 15px 0 10px 0; } div.test h3 { width: 220px; font-size: 16px; margin: 10px 10px 0 20px; } div.test ul { width: 220px; margin: 0 10px 15px 10px; list-style:none; } div.test ul li { width: 220px; display:inline; } div.test ul li a { color: #666; } div.test ul li a:hover { color: #999; } .test_clear { clear:both; } .test_left { float: left; width: 240px; } .test_right { float: right; width: 240px; } 仮にこの部分に問題が無いとすると、この要素を囲む他のcssやhtmlに問題あるのかもしれませんが、 何卒宜しくお願い致します。

    • ベストアンサー
    • HTML
  • divを中央に寄せたい

    恐れ入ります。 現在、修正を加えたいhtmlコードの中で、以下のdiv要素をセンターに寄せることが出来ません。 中央に寄せたい部分は、上部のメニューバーです。 以下がhtmlコードです。 <div id="menune"> <div class="clearfix"> <ul> <li> <a href="index.html" class="first active">HOME</a> </li> <li> <a href="review.html">casino bonus guide</a> <ul> <li><a href="#"> jepang1</a> </li> <li><a href="#"> jepang2</a> </li> <li><a href="#"> jepang33</a> </li> </ul> </li> <li> <a href="top10/top10index.html">Online Casino</a> </li> <li> <a href="#">free casino</a> </li> <li> <a href="top.html">gaming guides</a> </li> <li> <a href="contact/contact-index.html" class="last">Contact Us</a> </li> </ul> <div class="clearfix:after"> </div> </div> </div> どこのcssの表記が邪魔をしているのか分からなくて困っております。 cssの知識が乏しくてご迷惑をおかけしますが、宜しくお願いします。 失礼致します。

    • ベストアンサー
    • HTML
  • リストタグ以外でfloatしたものをセンター寄せに

    下記のようにHTMLを組みました。 「.footerNav」を「float:left」して横並びにした上でセンター寄せをしたいと思いました。 しかし何をどうやってもセンター寄せになってくれません。 ちなみに各「div class="footerInner"」の幅設定はしません。 <footer> <nav> <div class="footerInner"> <h4>○○○</h4> <ul class="XXXXX"> <li><a href="#">○○○</a></li> <li><a href="#">○○○</a></li> <li><a href="#">○○○</a></li> </ul> </div> <div class="footerInner"> <h4>○○○</h4> <ul class="XXXXX"> <li><a href="#">○○○</a></li> <li><a href="#">○○○</a></li> <li><a href="#">○○○</a></li> </ul> </div> <div class="footerInner"> <h4>○○○</h4> <ul class="XXXXX"> <li><a href="#">○○○</a></li> <li><a href="#">○○○</a></li> <li><a href="#">○○○</a></li> </ul> </div> </nav> </footer> 調べて見ると、<div class="footerInner">~</div>の単体であれば、 センター寄せができる手段はありました。 <div class="footerInner"> <h4>○○○</h4> <ul class="XXXXX"> <li><a href="#">○○○</a></li> <li><a href="#">○○○</a></li> <li><a href="#">○○○</a></li> </ul> </div> しかし自分のはリストタグではなく、divタグをフロートしたもの。 リストタグではないものを「float:left」してセンタリングは可能なのでしょうか? 何度かこの手のことにはまって、その度にいろいろな手段を試したり検索していたのですが、 検索しても見つからず、結局出来たためしがありません。 それで今回は投稿させていただきました。 ご存知の方いらっしゃいましたらご教授いただければ幸いです。

    • ベストアンサー
    • CSS
  • float横並びにしたブロックの中のul/liを縦並びにさせたい

    float leftで横並びさせている中でul/liを縦並びにさせたい。現在はすべて横並びしてしまう。 (html) <div class="base"> <div class="box1"> <a href="#"><img src="#" alt=""></a> </div> <div class="box2"><img src="images/spacer.gif" width="1" height="1" alt=""></div> <div class="box3"> <ul class="list-y"> <li>ああああ</li> <li>いいいい</li> <li>うううう</li> <li>ええええ</li> <li>おおおお<a href="#">かかか</a></li> </ul> </div> </div> (css) ul{ margin: 0; padding: 0; list-style-type: none; text-decoration: none; display: block; } li { margin: 0; padding: 0; display: inline; } .base { width: 618px; height: 100px; margin: 0; padding: 8px 10px 0 10px; text-align: left; line-height: 1.5em; background-image: url(../images/content_bg.gif); background-repeat: repeat-y; } .base .box1 { width: 130px; height: 97px; margin: 0; padding: 0; float: left; outline: solid 2px black; } .base .box2 { width: 2px; height: 100px; margin: 0 5px 0 10px; padding: 0; float: left; border-right: dotted 2px #ccc; } .base .box3 { margin-left: 157px; padding: 0; font-weight: bold; text-align: left; } .list-y{ clear: both; } CSSに疎いのでよろしくお願いいたします。

    • ベストアンサー
    • CSS
  • inline-blockでliが横並びになりません

    inline-blockを使って<li>を横並びにしようとした所、IE、chrome、fox(最新版)で 確認すれば横並びにはなっていますが、Dreamweaver cs4で見ると縦並びのままで、 使用する予定のブログで確認しても縦並びのままです。 ブログのテンプレCSSも見直しましたが原因になりそうなのが見つからず、 Dreamweaverでも横にならないので何か間違っているのかなと思いますが、 何を間違えているのかがわかりません。。。 なお、liは入り子で使用するつもりなのですが、該当するliだけ横にするのは問題ありでしょうか? また、画像サイズは縦長・横長サイズが混在するので下記のようにしてますが、関係してるのでしょうか? イメージ的には添付画像のようなのを希望してます。 すいませんが、ご教授お願いします。 <style type="text/css"> li.e { display:inline-block; vertical-align:top; text-align: center; overflow:visible; width:150px; } li.e img { max-height:100px; width:150px; } </style> <ul> <li class= "h">あいうえお</li> <li class= "w"> <ul> <li class= "e"><a href="./a.jpg" ><img src="./a.jpg"><br> あああああああああああああああああ</a></li> <li class= "e"><a href="./a.jpg" ><img src="./a.jpg"><br> いいいいいいいいいいいいいいいいいい</a></li> <li class= "e"><a href="./a.jpg" ><img src="./a.jpg"><br> うううううううううううううううううう</a></li> <li class= "e"><a href="./a.jpg" ><img src="./a.jpg"><br> ええええええええええええええええええええ</a></li> </ul> </li> </ul>

    • ベストアンサー
    • CSS
  • スマホサイトのホームページの背景が途切れる

    スマホサイトを作成しているのですが、 なぜかフッター部分が途中で途切れてしまいます。 考えられる原因はなんでしょうか。 【meta】 <meta name="viewport" content="width=device-width,maximum-scale=1,user-scalable=no"> 【html】 <footer> <div class="footerWrapper"> <div class="footer clearfix"> <div class="inner fL"> <a href="http://XXXXXXXXXjp/"><img src="http://XXXXXXXXX/img/footer_logo.png" width="228" height="22" alt="テスト"></a> <ul class="mt15"> <li><a href="http://XXXXXXXXX.jp/shopinfo/">テスト1</a>&nbsp;|&nbsp;</li> <li><a href="http://XXXXXXXXX.jp/menu/">テスト2</a>&nbsp;|&nbsp;</li> <li><a href="http://XXXXXXXXX.jp/school/">テスト3</a>&nbsp;|&nbsp;</li> <li><a href="http://XXXXXXXXX.jp/prof/">テスト4</a>&nbsp;|&nbsp;</li> </ul> </div> <div class="inner fR"> <ul class="mt10"> </ul> </div> </div> <!-- /.footer --> <div class="copy mt35"> <p class="taC white"><small>テスト</small></p> </div> </div> </footer> 【CSS】 .footerWrapper { margin: 35px auto 0 auto; width: 100%; height: 148px; background: url(../img/footer_back.png) left top repeat-x; padding-top: 20px; /*-------------------------------------------------------- スマホ対応 --------------------------------------------------------*/ min-width:1000px; } .footer { width: 70%; margin: 0 auto; clear:both; } .footer .inner.fL { width: 620px; }

  • CSS で li を float させる方法

    リスト項目を横並びにfloatさせたいいんですが、 li {list-style:none url(../image/icon/article.png) inside;} と指定すると、floatできないようです。 どうすればlist-styleを指定したliをfloatさせることできますか? コートは以下のようにしています。 よろしくお願いします。 【HTML】 <div class="YYY"> <ul> <li class="movie"><a href="">MOVIE</a></li> <li class="photo"><a href="">PHOTO</a></li> </ul> </div> 【CSS】 .YYY {margin:10px 0;} .YYY ul {margin:0px;padding:0px;} .YYY li.photo {float:left;list-style:none url(photo.png) inside;} .YYY li.movie {float:left;list-style:none url(article.png) inside;}

    • ベストアンサー
    • HTML
  • リストタグを横並びにする方

    横並びのナビゲーションを作成するためにスタイルシートの解説本で調べて 【html】 <div id="navi"> <ul> <li><a href="toiawase.html">問い合わせ</a></li> <li><a href="accsess.html">アクセス</a></li> <li><a href="top.html">TOP</a></li> </ul> </div> 【css】 ul#navi li { float: right; } ul#navi li a { display: block; text-decoration:none; } と記述しましたがうまくできず、頭のulを取ったら出来ました。 タグの位置がセレクタの前と後では、どう違うのでしょうか? また、ulを入れずに進めても問題ないでしょうか?

    • ベストアンサー
    • CSS