今天突然发现一个很奇怪的问题,一些专注于CSS和XHTML、Web 2.0和Web标准的网站都在探讨如何去掉当鼠标点击时超级链接周围的虚线框(outline)如,outline:none
或者 outline:0
。可能有时候默认出现虚线框(outline)会影响美观,但是它的存在必然有它的道理:那就是提高网站的易用性,特别是给使用键盘导航的人带来极大的便利。我们在讨论语义化,易用性的同时却总在做与其背道而驰的事情。
一、虚线框(outline)给键盘导航带来便利
我在阅读文章的时候有个习惯:极少使用鼠标,基本上全部靠键盘。而使用最多的就是Tab键、PageUp、PageDown、Entern还有四个方向键。Tab键用来导航超级链接,可以在不同超级链接之间切换,选中某链接之后直接按Enter进入(现在你就可以使用Tab键在本页上看看效果)。当Tab键聚焦(focus)某链接时这个链接的周围就会出现一个虚线框(outline),代表这个链接已经处于焦点状态,确定即可访问。当然很多人可能会说,使用鼠标多么方便啊,干吗用键盘?在这里我想说几个理由。
- 据说有一条道别是否真正的电脑高手的标准就是,是否可以不使用鼠标就可以完成所有操作。(出处已经 不可查,但是可以Google到。)
- 有时候我看文章时,右手端着咖啡左手敲动键盘不影响我阅读
- 特殊人群的特殊需要
- 你的网站不是只给你一个人看的,你不能左右别人怎么使用你的网站。
使用Tab键聚焦到一链接时的新式(不同浏览器中可能不尽相同,但是每个浏览器都有此功能,可见其必要性)
![IE中outline的表现](http://dudo.org/attachments/month_0905/72009523103722.png)
二、更加糟糕的用户体验
用outline:none 或者 outline:0去掉外虚线框,虽然从链接上看不到变化了,但是至少还可以从状态栏里看出链接信息。但是更加糟糕的用户体验是使用JavsScript的onfocus事件,当用户聚焦某链接时,它立即取消该焦点,也就是说你永远也无法聚焦到这个超级链接上,所以如果你不使用鼠标你绝对不可能访问这个页面上的任何一个链接。更有高手开发出了使用JQuery等来去除outline。如果你Google一下“去掉链接虚线”,你会得到几万个结果,看来很多人需要、很多人在研究。但是他的确违背了Web的易用性原则,完全没有考虑到用户体验。
三、可替代的选择
如果你确实觉得觉得出现虚线框会影响美观的话,你完全可以有更好的选择。那就是使用CSS中的:focus
伪类。例如使用
a:focus { background-color:#f00; }
/*或者*/
a:hover, a:focus {text-decoration:underline;}
设置焦点被触发时,链接背景为红色等。当然可以根据需要设计出更加复杂的样式,更可以把focus和hover设置成同样的样式。但是有一点,你不能屏蔽掉focus触发机制。
所以永远也不要去移除超级链接周围的虚线框,至少不能屏蔽掉focus的触发。
分享到:
相关推荐
在网页设计中,当用户点击一个链接时,为了提供视觉反馈,浏览器通常会在该链接周围显示一个虚线框。这种默认行为可能会在用户体验上显得不够专业,尤其是...因此,在决定去除虚线框时,应权衡好易用性和美观性的平衡。
标题“去掉点击链接时周围的虚线框outline属性”以及描述中提到的问题,就是针对这一需求的解决方案。 首先,我们来看方法一,这种方法主要针对于Internet Explorer浏览器。IE浏览器提供了一个私有属性`hideFocus`...
至于IE浏览器,比较遗憾的是,目前还没有找到通过CSS去掉链接虚线框的完美解决方法。所以,只能使用IE特有的`hidefocus`属性来实现这一需求。 总结来说,去除非必要的焦点轮廓线,主要集中在移除`outline`属性,并...
软件易用性测试 软件易用性测试是软件开发过程中不可或缺的一部分,它对软件产品的可用性、可靠性和用户体验产生了深远的影响。易用性测试的目的是为了确保软件产品能够满足用户的需求和期望,使用户能够轻松地使用...
软件易用性测试用例范例。包括用户操作习惯、页面布局、按钮位置等。
总结来说,要从视觉上移除链接被点击时的虚线框,可以使用CSS的outline属性将轮廓设置为none,这样可以兼容现代浏览器。对于旧版IE浏览器,虽然可以通过特定的hack方法实现,但考虑到兼容性和性能,建议寻找更现代的...
整理过的易用性测试用例。主要从五个方面进行整理,详尽全面
web开发中的易用性和用户体验
网站开发项目的易用性分析是确保网站成功的关键因素,它涉及到如何吸引并留住用户,以及提供愉快的浏览体验。以下是一些重要的易用性原则: 首先,网站的清晰定位至关重要。用户应该能在几秒钟内明白网站的目的。这...
Java易用性教程是针对Java编程语言中提升用户体验和代码可读性的专题学习资料。在Java编程中,易用性不仅关乎程序的功能性,还涵盖了代码的清晰度、可维护性以及开发者之间的协作效率。本教程旨在帮助Java程序员掌握...
软件易用性设计
另一方面,易用性则是指软件能够为用户提供友好、直观的操作体验,让用户能够轻松地完成所需的任务。这两者之间的平衡是非常微妙的,通常来说,提高安全性往往会牺牲一定的易用性,反之亦然。 举例来说,一个无需...
### 网站易用性建设,提高网站用户体验 #### 一、网站易用性概述 **1.1 网站易用性的定义** 网站易用性是指网站设计能够使用户快速、准确且轻松地完成其所需任务的能力。它是评估用户在浏览网站时能否便捷地获取...
### 软件易用性知识点详解 #### 一、软件易用性的概念与重要性 软件易用性是指软件产品的设计使得用户能够快速、准确地执行所需的任务,并且在这个过程中感到舒适和满意的能力。易用性对于提高用户满意度、减少用户...
在网页设计中,CSS(Cascading Style Sheets...通过上述方法,我们可以创建出符合设计要求且具有交互性的超级链接样式,让网页更加生动和易用。实践中,不断试验和优化,找到最适合项目需求的CSS链接样式方案至关重要。
在网页设计中,单选框(Radio Button)和复选框(Checkbox)是常见的用户界面元素,用于收集用户的选择信息。这些元素的样式通常由浏览器默认提供,但往往较为单一,不能满足设计师对于美观和品牌一致性的需求。本...
OpenSkyline是一个OpenStack控制台项目,对标OpenStack社区Horizon项目,在易用性、页面性能等方面进行深度优化,提供简单、易用、高效的OpenStack控制台。 基于REST API进行业务功能设计,功能模块化设计符合高内聚...