1

次のテストページがあります。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Test</title>
    <style type="text/css">
        .test {
            width: 200px;
            height: 200px;
            position: absolute;
            left: 0;
            top: 0;
        }
    </style>
</head>
<body>
    <span style="position:relative; left: 100px">
        <div>
            <object class="test" data="flash.swf">
                <param name="wmode" value="transparent"/>
            </object>
            <div class="test" style="background-color: red; opacity: 0.5"></div>
        </div>
    </span>
</body>
</html>

クラスが「test」であるオブジェクトとdiv要素の両方が同じ位置にあると予想されます。ただし、FF でも Safari でも発生しません。何故ですか?div と span の配置は、それが起こるための必要条件です。

4

3 に答える 3

3

HTMLが無効です。スパンにdivを含めることはできません。

ブラウザは、エラー回復の実行方法に常に一貫しているとは限りません。

有効なHTMLを記述し、バリデーターを使用してテストします。

于 2012-08-22T13:38:36.170 に答える
1

spanインライン要素であり、他のブロック要素を含めることはできません。に追加display:blockspanてブロックすると、機能します。

実例

于 2012-08-22T13:40:07.733 に答える
0

最初はオブジェクトの設定が必要display: blockかもしれませんが、これが問題です...

于 2012-08-22T13:35:21.013 に答える