Firefox标签元素边框与位置相对切断

时间:2015-03-17 23:48:28

标签: html css firefox

我正在使用一些自定义复选框。选择它们时,会将焦点类添加到它们中。当发生这种情况时,它周围会出现边框。对于大多数浏览器,边框看起来像标签元素周围的正方形。虽然在Firefox中左边界被切断了。如果您删除相对位置,则更正此问题。虽然我不想为定位目的这样做。我在这里创建了一个愚蠢的例子:

http://jsfiddle.net/g617z4qk/3/

注意当你在firefox中查看它看起来与chrome有什么不同。我如何让firefox表现得像chrome?

这是html代码:

<div class="textContainter">
  <label class="input-control checkbox focus">"
     <input id="classAll" class="classAll input-control" type="checkbox" name="status" value="Item 1" tabindex="-1" checked="checked" />
     <span class="input-control-img"></span>
     <span class="input-control-text">test Item 1</span>
   </label>
</div>

这是CSS

label.input-control {
    display: inline-block;
}
.textContainter .focus {
    outline: 1px dotted !important;
 }
.input-control, .input-control .input-control-body {
   position:relative;
 }

 label.input-control input {
    left: -9999px;
    position: absolute;
 }

 label.input-control.checkbox .input-control-img {
    background-image: url("http://blogs.digitss.com/wp-      content/uploads/2010/04/fancy-radio-checkbox.png");
 }
 label.input-control .input-control-img {
   background-position: 0 0;
   background-repeat: no-repeat;
   width: 20px;
 }
 label.input-control span {
  cursor: pointer;
  float: left;
  height: 20px;
 }

2 个答案:

答案 0 :(得分:1)

将输入元素定位到最左侧

label.input-control input {
    left: -9999px;
    position: absolute;
 }

使标签轮廓也向左扩展(至少在Firefox中)。

只需为overflow:hidden元素添加label即可解决此问题:

label.input-control {
    display: inline-block;
    overflow: hidden;
}

http://jsfiddle.net/g617z4qk/5/

答案 1 :(得分:0)

这是一种解决方法。用边框替换轮廓,它在您提到的两个浏览器上都能正常工作。

此问题似乎与CSS "outline" different behavior behavior on Webkit & Gecko

重复

解决方法的JSfiddle是 border: 1px dotted; http://jsfiddle.net/g617z4qk/4/