疑似クラス:focus
と:active
の違いは何ですか?focusと:activeの違いは何ですか?
答えて
:focus
と:active
は、2つの異なる状態です。
:focus
は、要素が入力デバイス(キーボード)から入力を受け取るように現在選択されている要素であるときの状態を表します。 :active
は、要素が現在ユーザーによってアクティブ化されているときの状態を表します。
例をあげてみましょう。たとえば、<button>
があるとします。 <button>
にはどのような状態もありません。ただ存在するだけです。 タブを使用して<button>
に「フォーカス」を付けると、現在は:focus
の状態になります。その後、をクリックするか、スペースを押すと、ボタンは(:active
)の状態になります。
要素をクリックするとフォーカスが与えられ、:focus
と:active
が同じであるという錯覚も養います。 彼らは同じではありません。ボタンをクリックすると:focus:active
状態になります。
例:
<style type="text/css">
button { font-weight: normal; color: black; }
button:focus { color: red; }
button:active { font-weight: bold; }
</style>
<button>
When clicked, my text turns red AND bold!<br />
But not when focused, where my text just turns red
</button>
編集:jsfiddle
:フォーカスは、要素が入力を受け入れることができるときです - 入力ボックス内のカーソルまたはタブされたリンク。
:アクティブなのは、ユーザーが要素をアクティブにしているときです。ユーザーがマウスボタンを押してから離すまでの時間です。
こんにちは! 「現在クリック済み」の状態はありますか? navメニューに3つのリンクがあるとしましょう。現在リンク上にあるときにどのように特定の色を維持するにはどうしますか?彼が現在どこにいるかをユーザーに示す。 as:activeは、リンク(この場合)がクリックされている間のみ動作し、マウスボタンのリリース時には元の状態に戻ります。 –
:active Adds a style to an element that is activated
:focus Adds a style to an element that has keyboard input focus
:hover Adds a style to an element when you mouse over it
:lang Adds a style to an element with a specific lang attribute
:link Adds a style to an unvisited link
:visited Adds a style to a visited link
これは関連していますが、 –
フォーカスのみキーボード入力によって与えられることができるが、要素が両方の、マウスやキーボードによって活性化することができます。
リンク上でフォーカスを使用する場合、スタイルルールはキーボードのボタンを押すだけで適用されます。
':focus'はそのようには動作しません。私がボタンをクリックしたので、現在入力しているテキストエリアにフォーカスがあります。また、それをクリックすることでフォーカスを失って復元することができます。ほんの1秒後に、右のAdd Commentボタンにフォーカスを当ててクリックします。これにより、キーボード入力がなくてもフォーカスが得られます。 –
リンクにフォーカスを当てることができないのは、リンクをアンカーに置くか、tabindex属性を追加しない限り、リンクがフォーカスできないからです。しかしdivや入力のようなDOM要素に焦点を当てることができます。 – Alex
アクティブなのは、ポイントをアクティブにするときです(マウスクリックのように、フィールド間のタブを使用するとアクティブなスタイルからのサインはありません)。ポイントがアクティブ化された後でフォーカスが行われます。これを試してみてください:「フォーカス」を使用して
<style type="text/css">
input { font-weight: normal; color: black; }
input:focus { color: green; outline: 1px solid green; }
input:active { color: red; outline: 1px solid red; }
</style>
<input type="text"/>
<input type="text"/>
は、キーボードのユーザーに、彼らはマウスで置くと、マウスのユーザーが得る同じ効果が得られます。 Internet Explorerで同じ効果を得るには、「アクティブ」が必要です。
実際には、これらの状態はすべてのユーザーにとって必要なように機能しません。 3つのセレクタをすべて使用すると、物理的にマウスを使用できないキーボードのみの多くのユーザーにとって、アクセシビリティの問題が生じます。私はあなたに#nomouseチャレンジ(nomouse dot org)を取るように勧めます。
:ホバーと:focusは同じものではありません。 :ホバーは特定の状態であり、フォーカスは特定の状態です。それらを同一視するのはちょっと混乱して誤解を招きます。 –
私はあなたの専門知識を疑うことはありません。私はそれを指摘しようとしています:ホバーと:アクティブは同じものではありません。また、hoverはキーボードの使用法とほぼ同じです:Webとアクセシビリティの新しい方が混乱します。私は答えに感謝しますが、もう少し深みが助けになるでしょうか? –
もちろん、彼らは同じものではありません!私は彼らがほぼ同じであるとは言いませんでした。 (私の記事をもう一度読んでください)私は、マウスを使ってキーボードを使って同じ作業をすることの違いについて話しています。私は両方のユーザーに同じ経験を与えるためにそれらのすべてを使用しなければならないと言っています。そうでなければ、物理的にマウスを使用することができないキーボードのみのユーザは、ページ上でタブのある場所を見るのが難しくなります。これにより、これらの人々がページをナビゲートする際のアクセシビリティの問題が生じます。 – AMG
4つのケースがあります。
- デフォルトでは、アクティブとフォーカスは両方ともオフです。
- タブからにフォーカスを当てる要素を循環させると、
:focus
(アクティブなし)と入力されます。 - のフォーカス不可要素のをクリックすると、フォーカスがない状態で
:active
と入力されます。 - フォーカス可能な要素にあるをクリックすると、
:active:focus
と入力されます(アクティブとフォーカスが同時に発生します)。
例:
div:focus { background: green; } div:active { color: orange; } div:focus:active { font-weight: bold; }
あなたは第二のdivを集中し、それがケース2を示す表示されます]タブを押すとページがロードの両方がケース1である
<div>
I cannot be focused.
</div>
<div tabindex="0">
I am focusable.
</div>
。最初のdivをクリックすると、ケース3が表示されます。2番目のdivをクリックすると、ケース4が表示されます。
要素がフォーカス可能かどうかはanother questionです。ほとんどはデフォルトではありません。しかし、<a>
,<input>
、<textarea>
がデフォルトでフォーカス可能であると仮定することは安全です。
要素がどのように ':active'を持っていて、':focus'はできないのかを指摘してくれてありがとう。それは、私が他の答えが取り組まなかったことについて混乱していたことの一つです。 –
- 1. before_saveと:before_update Active Recordコールバックの違いは何ですか?
- 2. PyCharm Focus on Active Task
- 3. Click-to-focusとjavascriptによるフォーカスの違いは何ですか?
- 4. 「Exchangeレガシー識別名」と「Active Directory識別名」の違いは何ですか?
- 5. navの目的は何ですか?focus
- 6. focusin/focusoutとfocus/blurの違い(例:
- 7. AzureのActive Directoryにおけるプライシング層の主な違いは何ですか?
- 8. CSS擬似クラス:focusと:activeはIE8の〜コンビネータでは動作しません
- 9. $と$$の違いは何ですか?
- 10. `##`と `hashCode`の違いは何ですか?
- 11. typedefとの違いは何ですか?
- 12. NodeJS:「./ ..」と「..」の違いは何ですか?
- 13. {}())と{})の違いは何ですか?
- 14. `&`と `ref`の違いは何ですか?
- 15. `==`と `is`の違いは何ですか?
- 16. difftimeと ' - 'の違いは何ですか?
- 17. #{} $ {}と%{}の違いは何ですか?
- 18. ⊕と+の違いは何ですか?
- 19. アペンダーと〜の違いは何ですか?
- 20. "./"と "../"の違いは何ですか?
- 21. "$^N"と "$ +"の違いは何ですか?
- 22. %Qと%{}の違いは何ですか?
- 23. バックスティックと$()の違いは何ですか?
- 24. A`と ``の違いは何ですか[:] `
- 25. Build Active Architecture Only - > Noとlipoを使ってファットバイナリを作成することの違いは何ですか?
- 26. パッケージのインポートobjと何かの違いをインポートパッケージとPythonの何かの違いは何ですか?
- 27. METADATAとMETADATA.jl:違いは何ですか?
- 28. twistdとnohup&:違いは何ですか?
- 29. libspeとlibspe2?違いは何ですか?
- 30. Backbone.jsとPusherapp - 違いは何ですか?
という質問には答えられません。IE8で例外がスローされる可能性があるため、複雑な名前の 'document.activeElement'プロパティを使用してフォーカスを取得できます。 古いバージョンのブラウザでは、「アクティブ」と「フォーカスが異なる」と扱われる可能性があることに注意してください。 'function activeElement(){ \t try { \t \t return document.activeElement; http://jsfiddle.net/NCwvj/ テストで:/ * IE8でexeptionを得ることができます*/ \t}キャッチ(電子){ \t}} ' – robocat
は、私がここにあなたの例のJSFiddleを作成しましたchrome(v24)ボタンをクリックすると ':active'が呼び出されることに気づきました。 – Xecure
Nit:フォーカスとアクティブの順序は、HTMLボタンの状態に影響しません:アクティブ:フォーカス状態 - パッティング:アクティブ状態後:フォーカス、私はタブを押してスペースをヒットしたときにアクティブな変更を取得します。フォーカスが最後の場合、私はアクティブ状態を見ることはありません。 –