这StackOverflow的答案介绍如何使用样式CSS3复选框无需<label>
:
input[type=checkbox]:before {
content:""; display:inline-block; width:12px; height:12px; background:red;
}
小提琴
这个工程在Chrome 22,但不能在Firefox 15或IE 9。
鉴于后者的两个浏览器的支持不足, 是Chrome的行为,有效根据CSS3规范?
这StackOverflow的答案介绍如何使用样式CSS3复选框无需<label>
:
input[type=checkbox]:before {
content:""; display:inline-block; width:12px; height:12px; background:red;
}
小提琴
这个工程在Chrome 22,但不能在Firefox 15或IE 9。
鉴于后者的两个浏览器的支持不足, 是Chrome的行为,有效根据CSS3规范?
这是未知的土地; 规格不明确的东西。 在CSS 2.1规范说 :“注意。 本规范不完全定义的相互作用:前和:与替换元素(如IMG在HTML)之后。 这将在更详细的在未来的规范来定义。”而且,debatably,输入可以被看作是一个在CSS 2.1感替换元素 。
有人可能会认为这些伪元素不能被用于那些不能有任何内容元素(即与EMPTY申报内容),如IMG或输入。 然而,措辞提到了IMG,和附录d有选择的规则br:before
。
和CSS3选择,已达到推荐状态CSS3的少数地区之一, 不明确的东西。 它说 :“在之前::和:: after伪元素可用于前或元素的含量后描述生成的内容。 他们是在CSS 2.1 [CSS21]解释“。
我认为,Chrome的行为是无效的。 如果你看一看这里 ,它说::before
和::after
伪元素添加新的content
之前或目标元素之后content
。 输入元素没有content
; 他们只是有一个value
。 你不能,例如,做<input>Pasta</input>
。
如果这一切是真的,那么它似乎是Chrome的行为是无效的,而IE和Firefox是正确的。