IEを使用する場合、選択した入力要素の上に絶対位置のdivを配置することはできません。これは、select要素がActiveXオブジェクトと見なされ、ページ内のすべてのHTML要素の上にあるためです。
ポップアップdivを開くときにselectを非表示にしているユーザーを見たことがあります。これにより、ユーザーエクスペリエンスがかなり悪くなり、コントロールが消えてしまいます。
FogBugzには、ポップアップが表示されたときにすべての選択をテキストボックスに変換する、非常にスマートなソリューション(v6より前)が実際にありました。これによりバグが解決され、ユーザーの目を騙しましたが、動作は完全ではありませんでした。
もう1つの解決策は、FogBugz 6にあります。ここでは、select要素を使用せず、どこでも再コーディングします。
私が現在使用している最後の解決策は、IEレンダリングエンジンを台無しにして<div>
、ActiveX要素として絶対位置にあるものもレンダリングするように強制し、選択した要素の上に存在できるようにすることです。これは、<iframe>
内部に非表示を配置し、次のよう<div>
にスタイリングすることで実現されます。
#MyDiv iframe
{
position: absolute;
z-index: -1;
filter: mask();
border: 0;
margin: 0;
padding: 0;
top: 0;
left: 0;
width: 9999px;
height: 9999px;
overflow: hidden;
}
誰かがこれよりもさらに良い解決策を持っていますか?
編集:この質問の目的は、実際の質問であると同時に有益です。この<iframe>
トリックは良い解決策だと思いますが、アクセシビリティを低下させるこの醜い役に立たないタグを削除するなどの改善を探しています。