CSS容器伪元素?

6
在CSS中,有类似“before”和“after”的伪元素,可以在元素前面或后面创建虚拟元素。
是否有“container”伪元素?
问题示例1:
我需要在元素周围创建15个边框(我知道可以使用盒阴影来完成这个特定的示例)。
问题示例2:
我需要在彼此之上创建15个透明背景颜色。
很多不必要的标记
我知道可以通过添加包含div来实现,但这会创建很多不必要的标记。

2
那里有问题吗? - j08691
1
::before::after是伪元素,而不是伪类;你所说的“容器”伪类是什么意思(我猜你指的是伪元素,就像其他两个一样)? - David Thomas
container 伪类会如何工作呢? - Alex Wayne
请查看此答案 https://dev59.com/Am455IYBdhLWcg3wCfmC#4574946 - Simon Arnold
::before::after会在元素的内容之前和之后创建虚拟元素,而不是元素本身 - https://dev59.com/-G435IYBdhLWcg3wiggk#5362843 - BoltClock
1个回答

9

旧的CSS3 Generated and Replaced Content Module提出了一个::outside伪元素的建议,它似乎接近于您所描述的内容,但目前还没有实现,而且该模块本身也被计划重写……某天。

换句话说,目前只使用CSS没有办法实现这一点,而且短时间内可能也不会有任何方法。

当然,可以使用JavaScript来模拟包装元素,以操作DOM,但这几乎是除了硬编码额外标记之外唯一能实现这一点的方法。关于传说中的::outside伪元素的一些微不足道的jQuery方法在此处描述:

启用对CSS3 ::outside伪元素的支持


没有一个浏览器在9年后想要实现完整的支持。这个模块的作者是ACID测试的作者。 - Rustam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接