• 链接、单选按钮虚线框与focus:this.blur()与outline


    10-13
    http://taligarsiel.com/Projects/howbrowserswork1.htm#The_main_flow

    去除单选按钮/链接获取焦点时虚线框

    一种解决方法:onfocus = "this.blur()"

    在点击后立即使其失去焦点。很好达到去除虚线框的效果,各浏览器均有效。但此时tab键失效,在点击该链接or单选按钮后失去焦点,tab无法向下选择。

    从实现方法上来说也违背了正常的逻辑。同时关于this.blur()的利弊可参见下此博文:关于使用onfocus=”this.blur()”的利与弊

    另一种解决方法:a:focus{定义outline属性}

    outline属性:【outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。轮廓线不会占据空间,也不一定是矩形。】

    outline用于控制这里所说的虚线框的样式。(IE6、7不支持该属性。:focus伪类,IE6、7亦不支持。IE6、7:元素的hidefocus属性,不影响tab,只是隐藏虚线框。)

    可以简单隐藏,a:focus{outline:none;}。

    然而,因尽量承认虚线框突出当前焦点的合理性

    可以给focus定义替代样式。但定义:focus样式,效果在各浏览器有差异。例如,ie6、7不支持,so一直是小虚线框,ie8/9没什么问题,只是单选按钮会显示背景色,如果设定了。firefox下一切正常,单选按钮无背景色。chrome,不响应对单选按钮、a:focus定义,有文本框有效。但tab键时会有默认样式突出显示当前焦点元素。

     

    http://css-tricks.com/removing-the-dotted-outline/
    Because that outline was providing an important accessibility feature, you should really (really) consider adding back in a style for your links focus and active states.

    http://www.outlinenone.com/#test1

    If you must remove it, provide alternative styling

    与:hover,:active同时定义:focus.

    Personally, I just like to make them the same as the hover state. It's about the same thing, as far as actual function. Whatever your hover state is, even if it's shifting a background image or changing size or whatever, it can be joined with the active and focus states. Like so:

    a:hover, a:active, a:focus {  // styling for any way a link is about to be used }

    测试:






    click me, you can also see my outline.


    结论:承认虚线框的合理性。必要时自己掂量着办...

  • 相关阅读:
    建造者模式
    模板方法模式
    抽象工厂模式
    工厂方法模式
    Josephus环问题
    单例模式
    求两个数的最大公约数
    Nginx的安装与部署
    左京大夫显辅
    java 调用第三方系统时的连接代码-记录
  • 原文地址:https://www.cnblogs.com/cydin/p/3384634.html
Copyright © 2020-2023  润新知