9

Opera のアウトライン バグについて詳しい人はいますか?

これをチェックしてください:

http://jsfiddle.net/BYgMr/

<div id="outline">TEST</div>
<div id="another-div">Another div</div>
#outline {
    border: solid 1px #000;
    outline: solid 1px red;
    background-color: #fff;
    width: 200px;
    height: 200px;
}

#another-div {
    position: absolute;
    top: 100px;
    left: 100px;
    border: solid 1px #000;
    outline: solid 1px blue;
    background-color: #eee;
    width: 200px;
    height: 200px;
    z-index: 5000; /* even this is not helping */
}

私は最新の Opera を使用しています。Opera のバージョンが異なる 2 台のマシンで確認しましたが、すべて次のようにレンダリングされます。

あれは何でしょう?FF/Safari/Chrome では、アウトラインは灰色の領域の下になりますが、Opera ではまだ上にあります (div の親がかなり下にある場合でも!)。

Google 検索では、「Opera 9.5+ CSS バグ: 絶対位置でのアウトラインのレンダリング」リンクのみが表示されますが、開きたくありません。

一時的な修正はありますか?それとも、私は盲目で、どこかで恐ろしい間違いを犯したのでしょうか?

4

5 に答える 5

5

これは、バグというよりも、Operaに欠けている仕様です。バグは仕様に従って機能しないものを構成し、Operaはステップ10に従ってW3標準に準拠しています-http ://www.w3.org/TR/CSS21/zindex.html

最後に描画されたブロック、つまり「アウトライン」の上にスタイルを設定する方法がないため、Operaには仕様がありません。

ボーダーやボックスシャドウを使用できる場合はアウトラインを使用しないのがおそらく私たちの最大の関心事ですが、私の場合は、何千人もの人々が独自にサイトにロードするツールチップを持っているため、それを行うことはできません。そして、私にはみんなのテンプレートのスタイルを変更する贅沢はありませんし、私もしたくありません。

Opera(DSK-339836)にバグレポートを提出しました。うまくいけば、彼らは私たちに最後に描かれたもの(すなわちアウトライン)の上に何かを描く方法を与えるでしょう

于 2011-06-21T18:39:02.150 に答える
3

これはバグではありません!

http://www.w3.org/TR/CSS21/ui.html#dynamic-outlines

アウトラインプロパティで作成されたアウトラインは、ボックスの「上」に描画されます。つまり、アウトラインは常に上にあり、ボックスや他のボックスの位置やサイズには影響しません。したがって、アウトラインを表示または抑制しても、リフローやオーバーフローは発生しません。

アウトラインは「単なる別の境界線」プロパティではありません。特定の要素の周りのデバッグ、または視覚的なUIヒントの作成にさらに必要です。

于 2011-10-31T18:48:15.980 に答える
1

それ自体は「バグ」ではなく、仕様の実装方法の違いです。アウトラインは、ボックスのエッジを強調表示します。それでおしまい。境界として使用することは想定されていません。よく見ると、赤いアウトラインだけが他のボックスと重なっていることがわかりますが、暗い境界線は重なっていません。

境界線とアウトラインと重複する divを使用している理由はありますか? それは奇妙な使用例のようです。両方を使用する必要がある場合は、box-shadow をちょっとしたハックとして使用して、最近のブラウザーで必要な効果を得ることができます: box-shadow: 0px 0px 0px 1px red;.

于 2011-03-29T17:26:44.887 に答える
-1

はい、バグです!

CSS 2.1 のアウトラインは、次の点でボーダーと異なります: アウトラインはスペースを取りません。アウトラインは長方形ではない場合があります。

そのため、アウトラインを他のボックスの上に配置する必要があるとはどこにも記載されていません。国境はそれをしません!アウトラインが独自のボックスの上に描画されるのは問題ありませんが、それだけです。より高い z-index を持つ上記の別のボックスは表示されません。

アウトラインのあるdivの上にフローティングポップアップウィンドウをうまく表示することさえできません。これは単に間違っています。このようなブラウザは他にありません。

于 2012-02-02T08:29:54.387 に答える