4

私は、ネストされた p、div、および li を持つ ol を持つページに取り組んでいます。Internet Explorer 6 と 7 は両方とも、ol タグの数字を、予想どおり最も外側の li の上部ではなく、最後 (li タグの一番下) の p 要素の後にレンダリングします。私は PowerPC Mac で作業していて、テストを行うことができません。これを Firefox と同じようにレンダリングする簡単な CSS ハックはありますか?

ライブページはこちらからご覧いただけます。サイドバーの配置に取り組んでいます。今は無視してください。

マークアップは次のとおりです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link rel="stylesheet" type="text/css" href="css/global.css" />
        <link rel="stylesheet" type="text/css" href="css/whats_included.css" />
        <script type="text/javascript" src="script/compliant_target_blank.js"></script>
        <!--[if lte IE 5]>
            <script type="text/javascript" src="script/ie_5_unsupported_warning.js"></script>
        <![endif]-->
        <!--[if gt IE 5]>
            <link rel="stylesheet" type="text/css" href="css/ie_hacks/global.css" />
        <![endif]-->
        <title>
            The Daily Plan-It, LLC - Home of the Tax MiniMiser
        </title>
    </head>
    <body>
        <?php include("includes/nav_bar.php") ?>

        <div id="content">
            <img src="images/title.png" alt="Tax MiniMiser Financial Tracking System" />
            <div id="bordered_wrapper">
                <h1>Here's What You Get With The Tax MiniMiser!</h1>
                <h2>24 Envelopes, 7-hole punched to fit one-at-a-time in your binder</h2>
                <ol>
                    <li class="main_item">
                        Business Income &amp; Expense Record
                        <div class="preview_image">
                            <a href="previews/large/bier/front.html" rel="external">
                                <img src="images/small_previews/large/bier_preview.jpg" alt="" /><br/>
                                Click to Preview!
                            </a>
                        </div>
                        <div class="details">
                            <ul>
                                <li>12 receipt envelopes with all the income &amp; expense columns you need to transform your planner or binder into a daily tax journal!</li>
                                <li>Store daily receipts in the convenient pocket envelopes.</li>
                            </ul>
                        </div>
                        <p>To get a free copy of the &quot;20 Column Heading Guidelines&quot;, <a href="files/downloads/20_column_heading_guidelines.pdf">click here</a> or call our Fax-on-Demand line at 888-829-8237.</p>
                    </li>
                    <li class="main_item">
                        Vehicle Mileage &amp; Expense Record
                        <div class="preview_image">
                            <a href="previews/large/vme/front.html" rel="external">
                                <img src="images/small_previews/large/mileage_preview.jpg" alt=""/><br/>
                                Click to Preview!
                            </a>
                        </div>
                        <div class="details">
                            <ul>
                                <li>12 receipt envelopes to track your daily mileage and vehicle expenses. Keep one envelope in each vehicle used for your business(es).</li>
                                <li>Store daily receipts in the convenient pocket envelopes.</li>
                            </ul>
                        </div>
                        <p>To get a free copy of the &quot;Instructions for Vehicle Mileage &amp; Expense Record&quot;, <a href="files/downloads/vehicle_record_instructions.pdf">click here</a> or call our Fax-on-Demand line at 888-829-8237.</p>
                    </li>
                    <li class="main_item">
                        Annual Business Summary of Income and Expense
                        <div class="preview_image">
                            <a href="previews/large/cover/inside.html" rel="external">
                                <img src="images/small_previews/large/cover_inside_preview.jpg" alt="" /><br/>
                                Click to Preview!
                            </a>
                        </div>
                        <div class="details">
                            <ul>
                                <li>Enter the subtotals from all the envelopes throughout the year. Then you and your tax pro can figure out profitability and taxes to maximize your deductions and legally minimize your taxes.</li>
                            </ul>
                        </div>
                    </li>
                </ol>
                <p class="end">To see previews of the small (6&quot; x 8&frac12;&quot;) Tax MiniMisers, visit their respective pages <a href="products.php">here.</a></p>
            </div>
        </div>

        <?php include("includes/footer.php") ?>
    </body>
</html>

そしてCSS:

#content {
    background-color: white;
}

#bordered_wrapper {
    margin-left: 26px;
    background: top left no-repeat url(../images/borders/yellow-box-top.gif);
}

#bordered_wrapper h1, #bordered_wrapper h2 {
    margin-left: 20px;
}

#bordered_wrapper h1 {
    padding-top: 15px;
    margin-bottom: 0;
}

#bordered_wrapper h2 {
    margin-top: 0;
    font-size: 1.3em;
}

ol {
    font-size: 1.1em;
}

ul {
    list-style-type: disc;
}

li.main_item {
    width: 700px;
    clear: right;
}

li p {
    clear: both;
    margin-bottom: 20px;
}

.preview_image {
    width: 200px;
    float: right;
    text-align: center;
    margin-bottom: 10px;
}

.preview_image a {
    text-decoration: none;
}

.preview_image img {
    border-style: none;
}

.end {
    clear: right;
    padding-bottom: 25px;
    padding-left: 20px;
    background: bottom left no-repeat url(../images/borders/yellow-box-bottom.gif);
}
4

4 に答える 4

12

おめでとうございます、あなたはIEのhasLayoutプロパティの犠牲者です。

ショートバージョン:今回は簡単です。これらのルールを変更します。

...

ol {
    font-size: 1.1em;
}

...

li.main_item {
    width: 700px;
    clear: right;
}

...

これに:

...

ol {
    font-size: 1.1em;
    width: 700px;
}

...

li.main_item {
    clear: right;
}

...

そして、それはすべて良いです。

より長いバージョン:特定のCSSルールを特定の要素に適用すると、IE 5.5+はそれらの要素に、その要素のレンダリング方法を変更する「hasLayout」と呼ばれるプロパティを与えます。hasLayoutは明確な目的のない読み取り専用プロパティであったため、Webデザイナーがこの問題に気付くまでにはかなりの時間がかかりました。古いサイト(Quirksmode.orgでも!)には、パディングやマージンをいじったり、Javascriptを使用してこれらの問題を修正したりすることを提案するページがまだあります。あなたがそれを助けることができるなら、これらのことをしないでください。代わりに、どの要素に誤ってhasLayoutが与えられているかを確認し、問題のあるCSSを変更して、要素がhasLayoutを取得しないようにします。それがあなたのページを完全に破壊する場合は、条件付きコメントを使用してくださいIEのためだけに修正します。まだ持っていない要素に「hasLayout」を追加するCSSルールは次のとおりです。

  • 位置:絶対
  • フロート:左|右
  • 表示:インラインブロック
  • height:'auto'以外の値
  • ズーム:「通常」以外の値(MS独自)
  • 書き込みモード:tb-rl(MS独自仕様)

IE7の時点で、オーバーフローがhasLayoutのトリガーになりました。

  • オーバーフロー:hidden | scroll | auto

最長バージョン:次の記事を読んでください。

  1. これが、「hasLayout」をトリガーすることによってMicrosoftがあなたに望んでいるすべての素晴らしいことです。
  2. これは、Webデザイナーが何が起こっているのかを知ったときにhasLayoutについて考えたクリーンな言語バージョンです。同じコンテンツの一部ですが、CSSハックなどが含まれています。
于 2008-09-25T02:05:48.450 に答える
0

ここでも同じで、WinXP Pro SP3 の IE6 でテストしたところ、正しく表示されました。問題を再現するスニペット、またはライブ Web ページを提供する必要があります。おそらく、環境や既存の CSS などが重要です。

于 2008-09-21T08:36:33.690 に答える
0

実は私もこのバグに遭遇しました。私のページでは、JavaScriptを使用して番号付けを変更した後にのみ発生しました。利用可能な唯一のやや現実的な解決策は、次のものを使用することです。

vertical-align: top;

正直なところ、IE7 が動作している理由はわかりませんが、簡単に修正する方法があります。

于 2010-02-06T15:42:08.137 に答える
0

サンプルの html を firefox 3/webkit nightly/internet explorer 7 でテストしたところ、すべてがまったく同じようにレンダリングされ、上部の数字が本来あるべき場所に表示されました。

問題はおそらくあなたの CSS にあります。壊れている実際のページを見せてもらえますか?

于 2008-09-21T05:36:18.007 に答える