1

IE8で奇妙な問題が発生しています。ページの DOCTYPE は QuirksMode であり、変更できません (できればいいのですが、現時点では方法がありません)。幅は、IE と他のブラウザー間のボックス モデムの解釈の違いを修正するためにハッキングされます。シンプルな水平ナビゲーション バーです。全体に境界線があり、外側の境界線を「覆う」ために、選択したアイテムを少し大きくする必要があります。FF では魅力的に機能しますが、IE では、#container は高さプロパティを無視し、子に合わせて拡張し、最大 34 ピクセルになり、境界線は覆われません。

簡略化された HTML は次のとおりです。

<style>
    #container {
        padding:0px;
        margin:0px;
        height:30px;
        border-bottom:#000 2px solid;
        background-color:#ccc;width:780px
    }
    #list {
        padding:0px;
        margin:0px;
        height:100%;
        float:left;
        background-color:#CCFFFF
        list-style-type:none;
    }
    #list li {
        float:left;
    }
    .selected_item {
        height:30px;
        *height:32px;
        border-bottom:#FFF 2px solid;
        background-color:#FFCCFF
    }
    .nonselected_item {
        height:28px;
    }
</style>
    <div id="container">

            <ul id="list">
                <li class="selected_item">First item</li>
                <li class="nonselected_item">Second item</li>
            </ul>

    </div>

何か案は?前もって感謝します。アンドレア。

4

4 に答える 4

1

#listにposition:absoluteを追加してみてください

于 2010-07-23T20:57:30.817 に答える
1

ご回答ありがとうございます。

MSW さん、回答ありがとうございます。このアプリケーションは、同じコードで実行される 40 の生産的な Web サイトとともに、1 日約 5,000 人のユーザーによって使用されています。doctype を変更するには、約 2,000 ページをアップロードしてテストする必要があります。そして... 構造が頻繁に変更されないため、この種の CSS の問題はあまりありません。これは年に 1 つか 2 つあるかもしれないので、Doctype を変更する努力は今のところ正当化されていません。40 の Web サイトすべてに影響し、他の方法では実現できない変更を実装する必要がある日に変更します。

于 2010-07-26T11:24:18.080 に答える
0

Quirks DOCTYPE を使用すると、IE に IE6 のふりをするように要求します (多かれ少なかれ)。それが本当に不変の DOCTYPE である場合は、IE6 の癖適切なマークアップに合わせてコーディングする必要があります。

エンジニアリングはトレードオフです。ええ、そのミッション クリティカルなページの 1 つの単語を変更できない可能性があること、および 2001 年からのブラウザー標準に合わせてコーディングするには多大な労力がかかることは理解していますが、それが制約である場合は、そうです。

于 2010-07-23T20:39:49.653 に答える
0

最初の行、タイプが定義されていません。<style type='text/css'> を試してください

7 行目では、width background-color:#ccc;width:780px の後にセミコロンがありませんでした

max-height:32px; を追加してみてください。#list liへ

于 2010-07-24T01:25:58.197 に答える