小编典典

:before伪元素是否在输入[type = checkbox]上被允许?

css

这个答案描述了如何使用CSS3设置复选框样式,而无需使用<label>

input[type=checkbox]:before {
    content:""; display:inline-block; width:12px; height:12px; background:red;
}

这在Chrome 22中有效,但在Firefox 15或IE 9中无效。

鉴于后两种浏览器均缺乏支持, 根据CSS3规范Chrome的行为是否有效?


阅读 410

收藏
2020-05-16

共1个答案

小编典典

这是未知的土地;规格并不能解决问题。在CSS
2.1规范说

“注意。该规范并未完全定义:before和:after与替换元素(例如HTML中的IMG)的交互。这将在以后的规范中更详细地定义。”
而且,值得一提的是,INPUT可以看作是CSS
2.1意义上
替换元素

可能会认为这些伪元素不能用于不能包含任何内容(即具有EMPTY声明的内容)的元素,例如IMG或INPUT。但是,该措辞提到了IMG,附录D的选择器有一条规则br:before

和CSS3选择,已达到推荐状态CSS3的少数地区之一,确实 没有
明确的事情了。它说

::before::after伪元素可用于描述元素内容之前或之后生成的内容。它们在CSS 2.1 [CSS21]中进行了解释。”

2020-05-16