CSS转换(transform)和:target伪类不能一起使用的原因是,:target伪类是用于选择当前活动的目标元素,而CSS转换是用于对元素进行变换(旋转、缩放、平移等)的属性。
当使用:target伪类时,浏览器会将目标元素的样式应用于当前活动的目标元素。但是,CSS转换是基于元素的几何属性进行操作的,例如宽度、高度、位置等。而:target伪类只是改变了元素的样式,而没有改变元素的几何属性。
因此,当我们尝试同时使用CSS转换和:target伪类时,CSS转换会改变元素的几何属性,而:target伪类只会改变元素的样式,这可能导致元素的位置和大小不正确,从而破坏了转换效果。
解决这个问题的方法是,将转换应用于目标元素本身,而不是使用:target伪类。可以通过为目标元素添加一个类,并在CSS中使用该类来应用转换效果。例如:
HTML代码:
<div id="targetElement" class="transformed">目标元素</div>
CSS代码:
.transformed {
transform: rotate(45deg);
}
这样,无论目标元素是否处于活动状态,转换效果都会被应用。
领取专属 10元无门槛券
手把手带您无忧上云