- ベストアンサー
IE7で横並びの要素が改行されてしまう問題の解決方法
- IE7で<li>要素の横並びが正しく表示されない問題があります。
- IE8や他のブラウザでは<li>要素が横並びに表示され、コンテンツが正しく表示されます。
- IE7でも<li>要素の横並びが正しく表示されるようにするためには、以下のような対策が考えられます。 1. <span>要素での改行を回避する 2. CSSを使用してレイアウトを調整する 3. JavaScriptを使用してブラウザのバージョン別に処理を分岐する
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
改行禁止で対応。 ul.list li a{ white-space: nowrap; }
その他の回答 (2)
- ORUKA1951
- ベストアンサー率45% (5062/11036)
min-widthが、実際の文字列幅より小さかったら意味ないですよ。
お礼
white-space: nowrap; で解決しました。 ご親切にご回答ありがとうございました。
- ORUKA1951
- ベストアンサー率45% (5062/11036)
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; } -->
補足
ご回答ありがとうございました。 display: block; min-width:5em; を追加してみましたが、特に変化はありませんでした。半角もなくしてみましたが、やはり同じで( xxx )の部分で改行されます。 他に考えられる理由がお分かりでしたらご教授お願い致します。
お礼
おかげさまで解決致しました。 ありがとうございました。