text-indent 隐藏文字时出现的 outline问题

作者:Blank 来源:怿飞's Blog 时间:2007-12-02 17:31:00 

今天在修改 淘宝 宝贝详情页面的时候,发现页面在 Firefox 下遇到这样一个问题:

链接用图片做背景,text-indent:-9999px; 隐藏文字,此效果在 IE 中是正常的,但在 Firefox 里,鼠标点击该链接时,虚线框却会包住被缩进的文字,结果显示为虚线框 N 长。(BTW: 因为平时是用overflow:hidden; 属性的,所以一直也没有注意到这个问题的存在,但当你需要使用 JS 来实现某种交互时,强烈建议不要使用 overflow:hidden; 属性,因为会给你带来很多意想不到的麻烦。)

虚线框,其实就是 CSS 中的 outline 属性,这也说明 IE 和 Firefox 对于 outline 和 border 的解析范围并不一致:IE 认为虚线框就是border的边缘,而 Firefox 则认为虚线框应该是文字范围。
W3C 中是如何定义 outline 的呢?

At times, style sheet authors may want to create outlines around visual objects such as buttons,  active form fields, image maps, etc., to make them stand out.  CSS2 outlines differ from borders in the following ways:
1. Outlines do not take up space.
2. Outlines may be non-rectangular. 

  最后按照上次 《如何去除点击链接时出现的虚线框 》 文中的方法,把虚线框去掉了a:focus { outline:0 } ,毕竟这个问题只存在 Firefox 中。
至于可用性问题的解决,比较赞同下面的方法(摘自 old9 blog ):

在css-d上也看到了相关讨论,建议是隐藏可以,不过从可用性角度考略,最好对focus状态做一些变化,以免用户在使用tab键切换焦点时找不着北。我的方法就是把focus和hover设成一样,嗯,也省事了。
标签:text-indent,outline,隐藏
0
投稿

猜你喜欢

  • asp如何实现无组件上传二进制文件?

    2010-06-03 10:09:00
  • Mootools 1.2教程(3)——数组使用简介

    2008-11-17 20:16:00
  • SWFObject1.5: 基于Javascript的Flash媒体版本检测与嵌入模块

    2009-08-06 18:02:00
  • MySQL列类型的选择与MySQL的查询效率

    2009-01-14 12:53:00
  • ASP.NET在IIS一些问题经验总结

    2007-08-07 15:42:00
  • Js实现仿msn的右下角popup提示窗口

    2007-12-27 20:30:00
  • 用图片做网站输入验证的构想

    2009-02-02 10:18:00
  • asp自动补全html标签自动闭合(正则表达式)

    2013-06-01 20:01:59
  • 批量更新存储过程所有者

    2010-07-15 21:14:00
  • SQL查询效率注意事项小结

    2012-01-05 19:31:25
  • css行高:line-height属性详解

    2008-06-24 11:42:00
  • 最新屏蔽百度快照的方法

    2009-07-06 14:37:00
  • js验证表单(form)中多选框(checkbox)值

    2008-03-18 13:39:00
  • 清除SQL被注入恶意病毒代码的语句

    2010-03-03 09:59:00
  • 40个网页设计常用小代码

    2008-01-01 19:27:00
  • mysql 导入导出数据

    2011-02-23 12:27:00
  • 网页设计中HTML常范的五个错误

    2008-04-22 18:14:00
  • Access中的模糊查询

    2007-11-18 14:57:00
  • 细节设计之美:扩大可操作区域

    2009-08-01 11:32:00
  • 网站中美好的细节

    2011-07-13 18:43:07
  • asp之家 网络编程 m.aspxhome.com