2011-07-13 5 views
0

私はCSSとPsuedo-classの要素を使ってスタイリングした標準入力テキストボックスを持っています。私が使用していCSSがかなり単純化され:(cssを使ったテキスト入力コントロールは "Focus"スタイルを失うことはありません

.riTextBox:hover, 
.riTextBox:focus 
{ 
    border: solid 1px #F1C15F; 
} 

.riTextBox 
{ 
    border: solid 1px #7394BE; 
    border-radius: 3.5px; 
} 

すべては、テキストボックスがそれにテキストを持っているし、マウスで選択されている場合を除き、偉大な働いている、とあなたはテキストボックスの境界を残してテキストを選択しているとして、マウスボタンを押したままにしておきます)、テキストボックスの外側にマウスを上げます。フォーカスが失われていないかのように、テキストボックスの枠線が強調表示されていることがわかります。

テキストボックスのonselectイベントがonblurと競合しているようですが、わかりません。あなたが提供することができます任意の助け

http://jsfiddle.net/pBkhT/7/

ありがとう:このイライラ問題を再現するには、ここを参照してください!

+1

"フォーカスが失われていないかのように、テキストボックスの枠線はまだ強調表示されています"ということは、フォーカスが失われないためです。マウスアップが(Chromium 12/Ubuntu 11.04とメモリ、IE 7と8/Win XPでは確かに)要素の外側で発生すると、フォーカスを別のものに移すのではなく、要素内のクリックを単にキャンセルします。 –

+0

Davidさんの返事をありがとう。はい。それで合っています。私の言葉に間違った言葉遣い。私が達成したいのは、これが起こったときに、テキストボックスが強調表示のスタイルを失うことです。 – JSHorn

答えて

0

この回答は少し遅れていますが、問題のために機能します。ホバーイベントと組み合わせたフォーカスイベントを削除するだけです。元のホバーの枠線にはフォーカスが残っていますが(ユーザーがボックスをクリックしたとき)、ユーザーがマウスを離すと、マウスボタンがまだ押されていてもホバースタイリングが消えます。

.riTextBox 
{ 
    border: solid 1px #7394BE; 
    border-radius: 3.5px; 
} 

.riTextBox:hover 
{ 
    border: solid 1px #F1C15F; 
} 
関連する問題