我正在使用一些自定义复选框。选择它们时,会将焦点类添加到它们中。当发生这种情况时,它周围会出现边框。对于大多数浏览器,边框看起来像标签元素周围的正方形。虽然在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;
}
答案 0 :(得分:1)
将输入元素定位到最左侧
label.input-control input {
left: -9999px;
position: absolute;
}
使标签轮廓也向左扩展(至少在Firefox中)。
只需为overflow:hidden
元素添加label
即可解决此问题:
label.input-control {
display: inline-block;
overflow: hidden;
}
答案 1 :(得分:0)
这是一种解决方法。用边框替换轮廓,它在您提到的两个浏览器上都能正常工作。
此问题似乎与CSS "outline" different behavior behavior on Webkit & Gecko
重复解决方法的JSfiddle是
border: 1px dotted;
http://jsfiddle.net/g617z4qk/4/