【发布时间】:2017-05-03 18:23:12
【问题描述】:
我在让我的 CSS 复选框显示在 Firefox 上时遇到了一些问题。我正在使用 :after: 元素来设置新复选框的样式,它在 webkit 浏览器(Chrome 和 Safari)上运行良好,但在 Firefox 上不可见。我已经有了它,如果样式不存在,则可以看到本机复选框,所以这并不可怕,但我希望获得一致的体验。
当我检查代码时,似乎:after 元素没有在 FF 中呈现。
这是我的 HTML:
<div class="text-center checkbox">
<label>
<input type="checkbox" value="on">
</label>
</div>
CSS:
.checkbox {
label {
position: relative;
cursor: pointer;
padding-left: 1em;
}
&:hover {
input[type=checkbox] {
&:after {
cursor: pointer;
border-color: blue;
}
}
}
input[type=checkbox] {
position: absolute;
&:after {
background: white;
content: "";
display: inline-block;
width: 1.5em;
height: 1.5em;
position: relative;
top: -4px;
border-radius: 3px;
border: 2px solid gray;
transition: border 0.3s ease;
}
&:checked {
&:after {
background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNDkgNDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBvbHlsaW5lIGlkPSJQYXRoIiBzdHJva2U9IiM0MjkxREIiIHN0cm9rZS13aWR0aD0iMTEiIHBvaW50cz0iMy43NTY1MzE0OCAxOC45ODA0MDUyIDIyLjc1Mzc0MjQgMzMuMDg5OTk4NiA0NC41ODgzMTcxIDMuNDk1NDY5MjIiPjwvcG9seWxpbmU+PC9nPjwvc3ZnPg==);
background-repeat: no-repeat;
background-position: center left 2px;
background-size: 75%;
border-color: blue;
}
}
}
}
我在Codepen 上设置了它。在我的 CSS 文件中,我已经注意到我从哪里分叉和修改了这段代码;鉴于我们使用的标记,我不得不对正在设置样式的元素进行一些调整。灵感代码可以跨浏览器工作,这让我更加困惑!
【问题讨论】: