div { position: relative; width: 100px; height: 100px; background: #f00; }
div::before { position: absolute; content: ''; width: 75px; height: 75px; background: #0f0; }
div::before::before { position: absolute; content: ''; width: 50px; height: 50px; background: #00f; }
我的语法错误还是伪元素中的伪元素不受支持?
请注意,我知道::after
伪元素,但我需要另一个伪元素中的实际元素来实现,例如: ::after
不够的地方是:
div { position: relative; width: 100px; height: 100px; background: #f00; }
div::before { position: absolute; content: ''; right: 0; bottom: 0; width: 75px; height: 75px; background: #0f0; }
div::after { position: absolute; content: ''; left: 0; top: 0; width: 50px; height: 50px; background: #00f; }
因为::after
是相对于元素而不是::before
。
答案 0 :(得分:9)
我的语法错误还是伪元素中的伪元素不受支持?
如果我理解正确,那是不可能的。您不能将Selectors Level 3的多个伪元素链接起来,尽管将来可能会允许它。
每个选择器只能出现一个伪元素,如果存在,它必须出现在代表选择器主体的简单选择器序列之后。 注意:此规范的未来版本可能允许每个选择器使用多个伪元素。
有趣的是,您可以链接::first-letter
&具有占位符伪元素的::before
/ ::after
伪元素,例如
::-webkit-input-placeholder::first-letter {
color: purple;
}