0

IE7では、タグ内の複数の改行(<br />またはを使用)により、IE7は区切りを1つの区切りに折りたたむことができます。これを示すために、次のHTMLコードを使用できます。<br><pre>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
        <style type="text/css">
            *
            {
                margin: 0px;
                padding: 0px;
            }
            .a, .b
            {
                float: left;
            }
            .b br
            {
                display: block;
            }
        </style>
    </head>
    <body>
        <pre class="a">Line 1a<br /><br />Line 2a</pre>
        <pre class="b">Line 1b<br /><br />Line 2b</pre>
    </body>
</html>

結果は次のようになります:(IE7の場合)

Line 1a Line 1b
Line 2a
        Line 2b

そして、結果は次のようになります:(他のブラウザの場合:FFなど)

Line 1a Line 1b
        Line 2b
Line 2a

ご覧のとおり、タグ自体を使用display: block;して修正できます。<br />ただし、問題は、他のブラウザーでは機能しなくなることです。したがって、IE7は実際には主要なブラウザーではなく、将来的には使用されないため、IE7の修正にすぎず、役に立たないということです。

これは単なるコメントであり、タグの代わりにタグ<pre>でCSSコードを使用する方が適切です。同様の動作をシミュレートするために、CSSハックや特定の方法を使用せずに、クロスブラウザ方式でこれを修正する方法について質問します。ブラウザを対象としたCSSコード。<div>white-space: pre-wrap;word-wrap: break-word;

4

1 に答える 1

1

IEの条件付きコメントを使うべきだと思います。

はい、それは特定のブラウザを対象としたCSSコードですが、正しいHTMLコメントを書き込んでいます。IEが準拠しているブラウザではなく、コメントを読むことにした場合、それは彼の問題です。さらに、それがあなたの問題を解決するなら、あなたはもっと何が欲しいですか?

その後、あなたは使用することができます

<!--[if lte IE 7]>
<style type="text/css">
.b br{
    display:block;
}
</style>
<![endif]-->

ここでそれを参照してください:http://jsfiddle.net/APj3Y/1/

于 2012-09-02T19:06:06.550 に答える