经常用鼠标在链接或按钮上点击时会出现虚线框,很多朋友常常想去掉这个不雅的虚线框,但是我个人还是觉得去掉虚线框还是要谨慎为好,为什么呢,因为当你去掉虚线框后表面上确实美观了很多,用鼠标点击链接或按钮时顿觉清爽,但是这同时还带来了可访问性和易用性的下降,为什么这么说呢,因为有些童鞋习惯上用键盘快速的定位并访问相关的链接或按钮,当你去掉虚线框后,就意味着这些对象可能无法获得焦点(focus),或者浏览者可能无法感知到焦点的存在,当然也就不能被定位了。我们不能单纯的去做网站,做网页要考虑的问题很多,特别是做到无障碍浏览往往比较困难,如果真的要去掉虚线框而不失去可访问性的话,解决的方案可以考虑加上accesskey属性,当然旁边可以做些注解或者提示,让访问者能够使用快捷键方式访问这些不能被焦点定位的对象。
下面简单介绍下去掉虚线框的几种方式。
1.CSS样式表的outline属性(IE9、FF等浏览器推荐)
对于最新的IE9浏览器以及FireFox里可以使用outline:none,去掉虚线框,当然FF下还可以写成-moz-outline:none。
1
2
3
4
|
a:focus {
outline:none;
-moz-outline:none;
}
|
2.IE的hidefocus=true属性(IE8及以下版本推荐)
对于版本低于IE9的IE浏览器,我们可以使用hidefocus方法,就比如:
1
|
<a href="index.php" hidefocus="true"></a>
|
3.onfocus事件的this.blur();
这个方法效果比较好,但是感觉语义化不好,原理是在获得焦点时去掉焦点。
1
|
<a href="index.php" onfocus="this.blur();"></a>
|
好吧,介绍了这三种办法,下面我们可以分情况整合一下,比如如果是IE9或者FF等浏览器就采用CSS的outline方法。如果是其它情况就尝试使用hidefocus或者this.blur()方法。对于JavaScript的方法可以采用遍历的方式。
1
2
3
4
5
6
7
8
9
10
11
12
|
var anchors = document.getElementsByTagName('a');
for (var i=0; i < anchors.length; i++) {
anchors[i].hideFocus = true;
}
// 或者采用this.blur()的方式,比如像下面这样写
var anchors = document.getElementsByTagName('a');
for (var i=0; i < anchors.length; i++) {
anchors[i].onfocus = function() {
this.blur();
}
}
|
上面的办法有个缺点,就是遍历了所有的A链接标签,可能有些链接我们依然希望它能够有虚线框,如何只让指定的链接去除虚线框呢?对于IE9及FF、Chrome、Safari等浏览器,我们依然可以通过outline:none的形式去除,当然我们可以定义一个指定的CSS样式比如.hidefocus,就像下面那样:
1
2
3
4
|
.hidefocus:focus {
outline:none;
-moz-outline:none;
}
|
然后我们就通过<a class="hidefocus" href="index.php">链接文本</a>这种形式指定去掉该链接的虚线框。对于IE9以下版本的IE浏览器该怎么办呢?其实我们可以通过遍历class为hidefocus的链接然后再hideFocus或者this.blur()去除。
遍历class的办法有getElementsByClassName,不过可惜的是IE9以下不支持这个方法,当然有人写过全兼容版本的getElementsByClassName,大家可以看看我这里找到的一个getElementsByClassName 版本。
然后在引入getElementsByClassName方法后HTML代码可以这样插入一段脚本了。
1
2
3
4
5
6
7
8
9
10
11
12
|
<!--[if lt IE 9]>
<script type="text/javascript">
addDOMLoadEvent(
function() {
var anchors = getElementsByClassName('hidefocus');
for (var i=0; i<anchors.length; i++) {
anchors[i].hideFocus = true;
}
}
);
</script>
<![endif]-->
|
这里的addDOMLoadEvent可以参考《使用DOMContentLoaded取代部分window.onload》,关于if lt IE 9条件注释可以参考《CSS设置样式时区分不同版本IE的办法》。这样这段脚本就专门针对IE9及以下浏览器的class为hidefocus设置.hideFocus = true的属性,然后配合CSS的outline:none,基本就完美了。
分享到:
相关推荐
对于特定的HTML元素,如按钮或链接,你可以直接指定该元素的CSS类来去除虚线边框: ```css .no-border { border-style: none; } ``` 然后在HTML中将此类应用到相应元素上: ```html 点击我 ``` 3. **只...
例如,在使用CSS来设计美观的按钮或图标时,这个默认的虚线框就显得非常突兀,破坏了整体的视觉效果。为了解决这个问题,CSS提供了方法来移除这个焦点时的虚线框。 首先,对于大多数浏览器,比如Firefox,我们可以...
总的来说,通过CSS的`outline:0`和特定浏览器的解决方案,如`::-moz-focus-inner`,我们可以实现只使用CSS去除按钮和链接点击时的虚线边框。这种方法在大多数现代浏览器中都能很好地工作,但在某些特定的IE版本或...
这样,当鼠标悬停在链接上时,就不会显示虚线边框。 3. **过渡效果** 为了提供更好的用户体验,我们可能希望在链接被点击时有一个平滑的过渡。可以添加`transition`属性来实现: ```css a { border: none; ...
在前端制作的过程中会发现,一些文字/图片链接,或者一些input控件,在点击时会在周围出现虚线边框,一般会在火狐和IE浏览器下出现虚线框,谷歌下不会有。 这些虚线边框是作为对视觉设计的一种辅助,在不使用鼠标...
在给定的标题和描述中,提及的问题是“鼠标指向网页图片时图片周围显示虚线框”,这正是通过CSS的`:hover`伪类来改变图片边框样式的一个典型应用。 首先,让我们深入理解这段代码的工作原理。在HTML结构中,有一个`...
这样做虽然能去除链接的虚线边框,但同时也会影响其他需要焦点指示的元素,如按钮,降低用户体验。 更合理的解决办法是在网页的CSS样式表中进行针对性的调整。通常,我们可以利用CSS选择器来定位超链接的`:focus`伪...
实例212 虚线边框表格 330 实例213 表格作为分割线 332 实例214 表格向下展开 332 第8章 图形图像与多媒体 335 8.1 图片大小 336 实例215 打开自定义大小的图片 336 实例216 图片放大缩小 337 实例217 通过鼠标滚轮...
在网页中用按钮来控制前页,后页和主页的显示.html 在规定时间内跳转.html 在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动.html 如何设定打开页面的大小.html 屏蔽功能键Shift,Alt,Ctr.html 屏蔽...
15. 定义虚线水平线需要设置边框样式为虚线。 16. 修饰项中去掉文本链接下划线使用`text-decoration: none;`。 17. 设置文本行间距应使用CSS的`line-height`属性。 18. 层(Layer)特性不包括单元格间距。 19. 在...
3. **去除图片链接虚线**:在图片链接中添加 `onFocus="this.blur()"` 可以消除鼠标点击后的虚线边框:`()"><img src="logo.jpg" border=0></a>`。 4. **电子邮件表单提交**:创建一个简单的电子邮件提交表单,如 `...
2.打开一张图片,然后使用工具栏的“套索工具”或者“矩形选取工具”选中要去除水印的地方,这时发现图片上出现有相应的虚线选框,直接点击工具栏上绿色的按钮即可执行去除水印的操作。一般一次处理的效果就会比较...
scrubber 去除点击超级链接时的虚线显示 chromeless_win_wind 制作弹出无边浏览小窗口,现在网上最为流行的 scrollablearea 使用层制作IE中可控制上下滚动的看板 right_click_menu_builder 右键菜单扩展功能 ...
去除点击超级链接时的虚线显示 chromeless_win_wind 制作弹出无边浏览小窗口,现在网上最为流行的 scrollablearea 使用层制作IE中可控制上下滚动的看板 right_click_menu_builder 右键菜单扩展功能 flashtext 制作仿...
ie55_scroll 自定义浏览器滚动条的特效CSS Marquee 插入滚动文字效果 scrubber 去除点击超级链接时的虚线显示 chromeless_win_wind 制作弹出无边浏览小窗口,现在网上最为流行的 ...
为了实现窗口大小调整,我们需要自定义边框,例如通过在组件周围绘制虚线框来模拟边框,然后监听鼠标事件来处理窗口大小的变化。这通常涉及到`paintEvent()`和`resizeEvent()`的重写。 此外,为了提供窗口最小化和...
另外,绘制虚线的方法是使用矩形工具或钢笔工具绘制路径,然后在路径上添加文本,比如输入句号,就可以得到虚线效果。 在网页设计中,文字排版和导航设计是重要的环节。在Photoshop CS6中,可以将一张图片放入一个...
6. 在工作表区域执行复制或剪切命令后会出现虚线边框,将其去掉的方法是按Esc键。 知识点:Excel工作表的编辑,虚线边框的去除和Esc键的使用。 7. 关于文档的分栏,下列说法中正确的是当选中“栏宽相等”复选框时...
为了兼顾视觉效果和无障碍访问,开发者需要寻找更合适的解决方案来去除链接的虚线边框。一种方法是使用CSS来实现,例如: ```css a:focus { outline: none; } ``` 这种方法适用于大部分现代浏览器,但需要注意的...