: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. “Exchange Legacy Distinguished Name”和“Active Directory Distingushed Name”之间有什么区别?
- 6. Active Record和Repository模式有什么区别?
- 7. LDAP和Active Directory验证有什么区别?
- 8. 有什么区别`和$(Bash中有什么区别?
- 9. ==和===有什么区别?
- 10. ==和===有什么区别?
- 11. 有什么区别? :和||
- 12. ==和===有什么区别?
- 13. '=='和'==='有什么区别?
- 14. `&`和`ref`有什么区别?
- 15. 有什么区别:。!和:r!?
- 16. | 0和~~有什么区别?
- 17. Appender和〜有什么区别?
- 18. xtype和别名有什么区别?
- 19. 有什么区别
- 20. 有什么区别
- 21. 有什么区别?
- 22. 有什么区别?
- 23. 有什么区别?
- 24. 有什么区别
- 25. 有什么区别?
- 26. 有什么区别?
- 27. 有什么区别
- 28. 有什么区别
- 29. Ubuntu和Chrome上的jQuery focus()区别
- 30. jQuery:.select()和.focus()方法的区别
还要注意,尽管它需要处于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