是否可以创建自定义的CSS伪类?

7
我正在考虑一种JavaScript的替代方案,以防用户手动禁用它。例如,我可以通过创建自己的:click伪类来模拟点击事件,并更改背景颜色,而不是提示用户启用JavaScript。
这种情况是否可能?是否可以创建自己的CSS伪类?

可能是Can I have an onclick effect in CSS?的重复问题。 - Joe Thomas
4个回答

6
如果您的问题是,我能否创建一个自定义伪类,例如;
div:my-custom-pseudo { }

然后就少不了一些JavaScript库。

使用mooTools和slick的教程

个人而言,我没用过这个,所以我不知道浏览器支持情况,这几乎是我在自定义伪类方面唯一找到的资源。

编辑:

所以基本上,你不能做你想做的事情,因为你总是需要JavaScript来实现你想要的。


谢谢你的回答,@Mark。我会去查看一下。 - Angel Politis
有没有一些使用“vanilla JS”而不是“moTools”或“jQuery”的解决方案? - Adrian Preuss

4

创建伪类是不可能的,即使你在某些浏览器上模拟了它,也很可能在其他浏览器上无法工作。

因此,所有的 :first-child:last-child 的后备方案都是使用类名来实现而不是试图让伪类起作用。


感谢您的回答,@David。 - Angel Politis

1
你可以使用:active伪类。如果我理解你的意思正确的话。

2
:active 伪类要求元素被按住。这不会模拟点击事件。我的问题是是否可能创建一个伪类,而不是使用现有的伪类。 - Angel Politis
1
好的,现在我明白了。您只能使用JavaScript库来创建伪类,但在您的情况下它被禁用了。 - Sergey Khalitov
好的,@SergeyKhalitov。 - Angel Politis

1

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