:focus
和:active
僞類有什麼區別?focus和:active有什麼區別?
回答
:focus
和:active
是兩種不同的狀態。
: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
:焦點是當一個元素能夠接受輸入 - 光標在一個輸入框或已被選中的鏈接上。
:active是元素被用戶激活時 - 用戶按下鼠標按鈕然後釋放它的時間。
嗨!是否有「目前點擊」的狀態?假設在導航菜單中有三個鏈接,當鏈接處於「開啓」狀態時,如何讓它保持某種顏色?向用戶顯示他目前的位置。 as:active只有在點擊鏈接(在這種情況下)的情況下才起作用,但是在鼠標按鈕釋放後變回。 – 2013-08-11 13:55:39
: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
雖然相關,但並不回答問題 – 2017-04-19 14:07:09
聚焦只能通過鍵盤輸入來給出的,但是一個元件可以通過兩個被激活,鼠標或鍵盤。
如果用戶使用:專注於鏈接,則樣式規則只適用於按下鍵盤上的按鈕。
':focus'不能像那樣工作。我正在輸入的textarea目前有焦點,因爲我點擊了一個按鈕。它也可以通過點擊並重新進入失去並恢復焦點。在短短的一秒鐘內,我將通過點擊右側的Add Comment按鈕來關注它。所有這些都沒有導致焦點的鍵盤輸入。 – 2014-07-24 21:24:02
如果你不能關注鏈接,那只是因爲鏈接不能集中,除非你把它放在一個錨點上,或者你添加一個tabindex屬性。但是你可以關注DOM元素,比如div或input。 – Alex 2015-02-02 14:43:12
活動是當用戶激活該點時(如鼠標點擊,如果我們使用從字段到字段的選項卡沒有活動樣式的標誌,也許點擊需要更多時間,只需點擊該點),焦點在激活點後發生。試試這個:
<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中獲得相同的效果。
現實情況是,這些國家不適用於所有用戶。如果不使用全部三個選擇器,則會爲許多無法使用鼠標的鍵盤用戶創建可訪問性問題。我邀請你參加#nomouse挑戰賽(nomouse dot org)。
:懸停和:焦點不是一回事。 :懸停是特定的狀態,並且:焦點是特定的狀態。將它們等同起來有點令人困惑和誤導。 – 2015-08-27 20:31:08
我不懷疑你的專業知識。我試圖指出:懸停和:主動不是一回事。而且,對於網絡和可訪問性較高的人員來說,如果將其放在以下位置,這會讓人感到困惑:懸停大約等於:主動用於鍵盤使用。我很欣賞這個答案,但也許更深入一點會有所幫助? – 2015-08-31 13:36:28
當然他們不是一回事!我沒有說他們大致相同。 (請再次閱讀我的帖子。)我正在談論使用鼠標和使用鍵盤完成相同任務的區別。我在說你必須使用它們來爲兩組用戶提供相同的體驗。否則,只有使用鍵盤的用戶身體上無法使用鼠標,將難以看到他們在頁面上的標籤位置。這會導致這些人在瀏覽頁面時遇到可訪問性問題。 – AMG 2015-09-01 18:34:41
有四種情況。
- 默認情況下,活動和焦點都關閉。
- 當你標籤週期通過可聚焦元件,他們將進入
:focus
(沒有活動)。 - 當你點擊在非可對焦元素,它進入
:active
(沒有焦點)。 - 當你點擊在可調焦元件它進入
:active:focus
(同時激活和聚焦)。
例子:
<div>
I cannot be focused.
</div>
<div tabindex="0">
I am focusable.
</div>
div:focus {
background: green;
}
div:active {
color: orange;
}
div:focus:active {
font-weight: bold;
}
頁面加載時都是在情況1.當您按下選項卡中,將集中在第二個div,看看它表現出的情況下2。當您點擊第一個div時,您會看到案例3.當您單擊第二個div時,您會看到案例4.
元素是否可以聚焦是another question。大多數不是默認的。但是,默認情況下,可以安全地假設<a>
,<input>
,<textarea>
是可以關注的。
感謝您指出元素如何具有':active'而不是':focus'。這是我對其他答案沒有解決的問題感到困惑的一件事。 – 2017-10-26 23:48:05
- 1. 在Gtk2中,「active」和「focus」有什麼區別?
- 2. {active:「yes」}和{「active」:「yes」}有什麼區別?
- 3. active python和python有什麼區別?
- 4. TextBox類netCF中Click和Focus()有什麼區別?
- 5. Active Record和Repository模式有什麼區別?
- 6. before_sup和before_update Active Record回調之間有什麼區別?
- 7. LDAP和Active Directory驗證有什麼區別?
- 8. 「Exchange Legacy Distinguished Name」和「Active Directory Distingushed Name」之間有什麼區別?
- 9. 有什麼區別`和$(Bash中有什麼區別?
- 10. jQuery中focusin/focusout與focus/blur有什麼區別?
- 11. 有什麼區別? :和||
- 12. &&和||有什麼區別?
- 13. 「/」和「/ *」有什麼區別?
- 14. 有什麼區別:。!和:r!?
- 15. ==和===有什麼區別?
- 16. Appender和〜有什麼區別?
- 17. $ @和$ *有什麼區別?
- 18. is和=有什麼區別?
- 19. #.00和#。##有什麼區別?
- 20. `==`和`is`有什麼區別?
- 21. '=='和'==='有什麼區別?
- 22. /和/#/有什麼區別?
- 23. | 0和~~有什麼區別?
- 24. `&`和`ref`有什麼區別?
- 25. ==和===有什麼區別?
- 26. ==和===有什麼區別?
- 27. `{}`和`[]`有什麼區別?
- 28. JavaScript和=== ===有什麼區別?
- 29. difftime和' - '有什麼區別?
- 30. =和==有什麼區別?
還要注意,儘管它需要處於try catch中,因爲IE8可能會拋出異常,但您可以通過使用名爲'document.activeElement'的混淆名稱來獲取焦點元素。 而且請注意,較舊版本的瀏覽器可能會將:active和:focus以不同的方式對待。 'function activeElement(){ \t try { \t \t return document.activeElement;/*可以在IE8獲得exeption */ \t}趕上(E){ \t} }' – robocat 2012-07-26 01:51:18
我已經創建了示例的的jsfiddle這裏:http://jsfiddle.net/NCwvj/ 測試中chrome(v24)我注意到,單擊按鈕只會調用':active'狀態 – Xecure 2013-02-19 06:41:06
Nit:如果沒有:active:focus狀態,則焦點和活動順序會影響HTML按鈕的狀態 - Putting:活動狀態之後:焦點,當我點擊標籤並點擊空間時,我會得到主動變化。如果:焦點是最後一個,我永遠不會看到活動狀態。 – 2013-11-16 18:01:35