【发布时间】:2016-05-24 12:47:24
【问题描述】:
Firefox 不显示 :after 和 :before 但它们确实显示在 Chrome 中。
这发生在使用 :after 的页面上的多个元素上。
我之前和之后都尝试过使用。我也尝试过 :: 和 : 变体。
如果我在 codepen 中使用相同的 CSS,它可以工作: http://codepen.io/anon/pen/XXOZWL
<input type="checkbox" class="mobile_auth" />
.mobile_auth {
visibility: hidden;
}
.mobile_auth:after {
background-image: url('https://lh4.googleusercontent.com/-gD_ItALdha8/AAAAAAAAAAI/AAAAAAAAAB4/eEbUyChzCJc/photo.jpg?sz=110');
content: '';
height: 33px;
width: 33px;
display: block;
cursor: pointer;
visibility: visible;
margin: auto;
position: relative;
top: -3px;
left: 3px;
}
.mobile_auth::after {
background-image: url('https://lh4.googleusercontent.com/-gD_ItALdha8/AAAAAAAAAAI/AAAAAAAAAB4/eEbUyChzCJc/photo.jpg?sz=110');
content: '';
height: 33px;
width: 33px;
display: block;
cursor: pointer;
visibility: visible;
margin: auto;
position: relative;
top: -3px;
left: 3px;
}
.mobile_auth:checked:after {
background-position: right;
}
您可以在以下位置看到该页面:***.com login with User: demo Pass: demo 并单击“config”。最新的 Firefox 中缺少很多按钮。
这很奇怪,因为它根本不显示。它不像元素在那里,我看不到它。它甚至没有显示它存在于控制台中。
【问题讨论】:
-
要解决您的问题,请将您的复选框包装在标签中,并将您的伪类样式放在上面。
-
唯一的问题是我无法使用 CSS 复选框技巧并针对父级:在检查子级之后。
-
是的。在这种情况下,使标签跟随代码中的复选框并使用
:checked + label:after选择器。 -
这里不需要 JS。给你的复选框一个
id="checkbox_id"并使用<label for="checkbox_id">将标签附加到它。