如何使 :active 伪类对子元素无效?

2015-05-07 18:51:36 +08:00
 Twinkle

现在有这样的结构:

<div class="wrapper">
  <div class="other"></div>
  <div class="link">
    <a href="#">链接1</a>
    <a href="#">链接2</a>
    <a href="#">链接3</a>
  </div>
</div>
.wrapper:active {
  transform: scale(0.9)
}

父元素 .wrapper 点击后能够被正常缩放,但是 .link 下的几个链接也被缩放后移位,会导致无法点中,如何解决这种情况?或者说就是点击链接时不进行缩放?

4138 次点击
所在节点    CSS
25 条回复
Twinkle
2015-05-07 19:11:02 +08:00
顶下。
jjplay
2015-05-07 19:55:12 +08:00
因为A标签是叠加在wrapper之上的,如果用:hover就会执行
jun4rui
2015-05-07 20:02:23 +08:00
我一般把两层分开,链接单独放另外一个div去就好了
Twinkle
2015-05-07 20:06:15 +08:00
@jjplay 谢谢~ “如果用:hover就会执行” 这句是什么意思呢,没看懂
Twinkle
2015-05-07 20:09:08 +08:00
@jun4rui 不太想改变现在的结构,如果实在没办法只好这样啦,谢谢
MaiCong
2015-05-07 20:12:56 +08:00
请搜索 css pointer-events
Twinkle
2015-05-07 20:27:11 +08:00
@MaiCong 似乎不行啊,设置为none的话没法点击了,auto的话还是会响应active的缩放...
MaiCong
2015-05-07 20:32:02 +08:00
@Twinkle 可以换个思路:
.wrapper:active .link {
transform: scale(1);
}
Twinkle
2015-05-07 20:37:14 +08:00
@MaiCong 试过,这样整个wrapper还是会缩放的。。
sneezry
2015-05-07 20:40:15 +08:00
楼主要不然把需求细化下说说,看看能不能用其他交互方式,scale缩放后元素位置变了,点不到也是在意料之中的呀
MaiCong
2015-05-07 20:44:31 +08:00
@Twinkle 浏览器有个设置项叫最小字体 chrome默认貌似是12px 这就是字体最小能缩放到12px 然后宽度超过就换行了……
Twinkle
2015-05-07 21:20:16 +08:00
@sneezry 要求就是不让 .link 缩放
Twinkle
2015-05-07 21:22:34 +08:00
@MaiCong 有点.. 极端啊>.<
sodatea
2015-05-07 21:41:10 +08:00
```css
.wrapper:active {
transform: scale(0.9);
}
.wrapper:active .link {
transform: scale(1.11);
}
```
sneezry
2015-05-07 21:57:24 +08:00
@Twinkle
@sodatea 的方法是正确的,要想不缩放子元素,那么缩小是多少就再放大回来。

要求就是不缩放link误解我的意思了。用scale肯定会模糊,那效果应该非常酸爽~可不可以通过改变背景来模拟缩放效果?父系元素想达到怎样的交互效果导致楼主想到了用scale去实现?这个才是问题的重点,不如把最初的问题拿出来讨论,而非是楼主既定条件下的命题作文啊~
Twinkle
2015-05-07 22:13:31 +08:00
@sodatea 么么哒~ 貌似还会有些问题,.other元素的scale导致.link还是往上缩,虽然自己本身是不缩放了....
Twinkle
2015-05-07 22:15:49 +08:00
@sneezry 嗯,是我的锅。想让元素有个点击时被选中的视觉效果,就想到了scale...
baconrad
2015-05-07 22:19:50 +08:00
Twinkle
2015-05-07 22:46:16 +08:00
@baconrad 谢谢!不过测试发现,只有 :after 是被缩放的,所有子元素本身都不会变了。。
sneezry
2015-05-07 22:55:28 +08:00
@Twinkle 我懂了,按钮按压的效果,用shadow

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/189280

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX