【发布时间】:2013-05-02 00:33:22
【问题描述】:
我正在尝试在不使用 JavaScript 或 JQuery 的情况下设计表单。它包括一系列复选框。这个想法是如果未选中复选框,则在复选框之后显示某个 gif。否则,在它之后不显示任何内容。这是我的代码:
input[type=checkbox]::after
{
content: url(images/unchecked_after.gif);
position:relative;
left:15px;
z-index:100;
}
input[type=checkbox]:checked::after
{
content:"";
}
它适用于 Chrome,但似乎不适用于 Firefox 或 IE。怎么了?
【问题讨论】:
-
input是一个内容模型为空的元素——由于::after伪元素被渲染为它们所应用元素的子节点,因此存在冲突。有些浏览器无论如何都允许这样做——有些则不允许。改用相邻的兄弟组合器来格式化您放在输入元素之后的元素。 w3.org/TR/2011/REC-css3-selectors-20110929/… -
谢谢,这就解释了。但我仍然无法让它工作。例如,如果我在复选框后放置“p”标签,则以下 CSS 选择器不起作用: input[type=checkbox]:checked + p:after
标签: css cross-browser pseudo-element css-content