解决焦点按钮轮廓出现在左浮动同级按钮后面的问题

Fag*_*ack 5 html css firefox cross-browser web-frontend

给定这个 HTML:

<div>
    <button>Test1</button>
    <button>Test2</button>
</div>
Run Code Online (Sandbox Code Playgroud)

还有这个样式表:

button {
    border: 1px solid #EEE;
    float: left;
}

button:focus {
    outline: thin dotted;
}
Run Code Online (Sandbox Code Playgroud)

SSCCE: http: //jsfiddle.net/DKpGA/

在下面的 jsfiddle 中,如果您关注第一个元素,则轮廓将保留在下一个元素后面(单击并“拖动”第一个按钮以仅显示带边框的轮廓)。

它发生在 Firefox (edge) 和 IE10 中。

我尝试使用 z-index 来控制两个元素的 z 位置,但没有成功。我可能错过了一些东西。
Opera 可以优雅地处理它,但 Firefox 和 IE10 拒绝这样做......

  1. 对于 FF 和 IE10,如何使轮廓出现在相关元素的前面而不是下一个元素的后面?
  2. 规范中是否提到了有关此行为的内容,或者这是供应商特定的?

显示 FF 中不良行为的屏幕截图: 不良行为

cas*_*raf 1

z-index仅适用于position非默认值static。所以通过将其设置为relative,您将达到您的效果。

这是一个 JSFiddle http://jsfiddle.net/DKpGA/2/

请注意,position:relative不指定topbottomleftright属性通常不会移动您的元素并破坏布局,但是absolute会将其从自然流中删除并将其置于其他元素的范围之外,因此请小心。