• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:<li>の横並びで、<span>のところで改行)

IE7で横並びの要素が改行されてしまう問題の解決方法

このQ&Aのポイント
  • IE7で<li>要素の横並びが正しく表示されない問題があります。
  • IE8や他のブラウザでは<li>要素が横並びに表示され、コンテンツが正しく表示されます。
  • IE7でも<li>要素の横並びが正しく表示されるようにするためには、以下のような対策が考えられます。 1. <span>要素での改行を回避する 2. CSSを使用してレイアウトを調整する 3. JavaScriptを使用してブラウザのバージョン別に処理を分岐する

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

  • ベストアンサー
  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.3

改行禁止で対応。 ul.list li a{ white-space: nowrap; }

gerberared
質問者

お礼

おかげさまで解決致しました。 ありがとうございました。

その他の回答 (2)

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

min-widthが、実際の文字列幅より小さかったら意味ないですよ。

gerberared
質問者

お礼

white-space: nowrap; で解決しました。 ご親切にご回答ありがとうございました。

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

floatさせるなら、それはblockでしょうね。 このソースではspanではなく半角スペースが改行させていると考えるべきです。 HTMLの仕様で半角スペースは単語境界として認識される。 【引用】____________ここから PRE要素を除くすべてのHTMLの要素にとっては、空白類は「語」を分離するものである。 (ここで言う「語」は、「空白類でない文字の列」を意味する。) テキストを整形する際、ユーザエージェントはどれが「語」であるかを認識し、特定言語(用字系)及び出力メディアでの制約に従って整えていく必要がある。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Paragraphs, Lines, and Phrases (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/text.html#h-9.1 )]より  IE7以前は、ブロックの寸法の算出方法が標準と異なっていたため、狭いブロックと判断し、その内では上記空白文字で折り返される。  IE5ではmin-widthは認識できないが、IE6以降ならmin-widthで制御しましょう。 <!-- ul.list{ list-style:none; width:100%; margin: 0 0 .8em 0; padding: 0; } ul.list li { float:left; display: block; margin-right:0.7em; min-width:5em; } -->

gerberared
質問者

補足

ご回答ありがとうございました。 display: block; min-width:5em; を追加してみましたが、特に変化はありませんでした。半角もなくしてみましたが、やはり同じで( xxx )の部分で改行されます。 他に考えられる理由がお分かりでしたらご教授お願い致します。

関連するQ&A