CSS概述最佳实践

Chr*_*ian 6 css usability accessibility outline

关于执行以下操作的做法存在一些争议:

a, input, textarea, button {
    outline: none;
}
Run Code Online (Sandbox Code Playgroud)

可访问性问题是一个常见问题.

我不打算完全删除此功能(如上面的代码所示); 但是,这个功能通过在不受欢迎的区域添加非预期的边框(嗯,轮廓?)而极大地混淆了我的原始设计.

主要问题是这些轮廓实际上遵循元素周围的矩形区域,而不是其轮廓(即它忽略边界半径等).

例:

div {
    margin: 64px;
}

input {
    font-size: 20px;
    border-radius: 16px;
    border: 2px solid #CCC;
    padding: 2px 12px;
}

button {
    font-size: 20px;
    border-radius: 32px;
    text-transform: uppercase;
    color: #FFF;
    border: 2px solid #CCC;
    background: #CCC;
    padding: 6px 3px;
    cursor: pointer;
}
Run Code Online (Sandbox Code Playgroud)
<div>
    <input type="text" placemark="Search query..."/>
    <button>Go</button>
</div>
Run Code Online (Sandbox Code Playgroud)

我所知道的唯一解决方案是运行上面的代码并使用我自己的系统.

采用这种方法时最佳做法是什么?

Mad*_*iha 8

确实.轮廓位于边框外侧的矩形区域周围.它没有考虑圆角.

禁用大纲没有任何问题,只需确保为使用键盘的人添加一些其他辅助功能,例如,更改焦点背景的颜色:

div {
    margin: 64px;
}

input {
    font-size: 20px;
    border-radius: 16px;
    border: 2px solid #CCC;
    padding: 2px 12px;
    outline: 0;
}

button {
    font-size: 20px;
    border-radius: 32px;
    text-transform: uppercase;
    color: #FFF;
    border: 2px solid #CCC;
    background: #CCC;
    padding: 6px 3px;
    cursor: pointer;
}
input:focus {
    border-color: #999;
}
Run Code Online (Sandbox Code Playgroud)
<div>
    <input type="text" placemark="Search query..."/>
    <button>Go</button>
</div>
Run Code Online (Sandbox Code Playgroud)

  • +1 - 但有一点需要注意; 确保您的更换足够清晰.对于一些人来说,更换边框稍暗的浅灰色边框将非常困难.虽然您可以看到颜色变化,但一旦控件具有焦点(在此示例中),它就不会"看起来像焦点".因此,您需要考虑整体页面设计,以便在整个页面/网站上提供一致的焦点突出显示方式,并且当前关注的项目在视觉上是明显的,并且与非焦点项目相比足够突出. (3认同)