You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSS中.card:hover加空格后为何触发子元素缩放效果?

CSS选择器空格导致hover效果差异的原因

先看你写的两段核心选择器:

  • 原代码选择器:.card:hover
  • 修改后选择器:.card :hover

两者的本质区别在于空格的作用:

  1. .card:hover:没有空格时,:hover伪类直接绑定在.card元素本身。意思是当你把鼠标悬停在整个卡片(拥有card类的元素)上时,就会触发transform: scale(1.04),所以整个卡片会缩放。
  2. .card :hover:加了空格后,空格代表CSS的后代选择器。这个选择器的意思是:选中所有属于.card元素的后代元素,当这些后代元素被鼠标悬停时,给它们应用缩放样式。所以你看到的是卡片内的单个元素(比如文字、图片、按钮这些子元素)被放大,而不是整个卡片。

举个实际场景的例子:
如果你的卡片结构是这样的:

<div class="card">
  <h3>卡片标题</h3>
  <p>卡片内容</p>
  <button>按钮</button>
</div>

用.card :hover时,当你把鼠标移到<h3>上,只有标题会放大;移到按钮上,只有按钮会放大,完全和原代码的整体缩放效果不同。

内容的提问来源于stack exchange,提问作者Yogesh Aithani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 00:15:32