jQuery検証エンジンを使用していくつかのフォームフィールドを検証しています。IE7とIE8を除いて、すべてが正常に機能しています。
スタイルシートには:focusクラスがあり、フォームフィールドがフォーカスされているときに青いボックスシャドウを提供します。
input:focus { outline: none; -webkit-box-shadow: 0px 0px 2px 1px #06c !important; -moz-box-shadow: 0px 0px 1px 1px #06c; box-shadow: 0px 0px 1px 1px #06c; }
jQueryを使用して、フォームフィールドが無効な場合(jQuery検証エンジンで定義されている)にクラスをフォームフィールドに追加して、これらのフィールドに赤いボックスシャドウを付けることができます。
input.error { outline: none; -webkit-box-shadow: 0px 0px 2px 1px #c00 !important; -moz-box-shadow: 0px 0px 1px 1px #c00; box-shadow: 0px 0px 1px 1px #c00; }
これはうまく機能します...IE9、Firefox、およびChromeで。IE8または7では機能しません(IE6のサポートを停止したときにパーティーがありました)。PIE.htcをインストールし、ボックスシャドウではなく、これらの要素の境界線を示すスタイルオプションを追加してみましたが、役に立たなかったようで、エラーバブルで他の表示の奇妙さを引き起こしたので、PIE.htcを削除しました。次に、IE条件付きタグで囲まれ、それらの入力の境界線を指定する別のスタイル定義を作成しようとしましたが、それでも機能しませんでした。これが私の条件付きCSSです:
<!--[if lte IE 8]>
<style type="text/css">
input:focus { border: 1px solid #06c; }
input.error { border: 1px solid #c00; }
</style>
<![endif]-->
...ヘルプ?