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

CSS按钮hover背景色失效求助:仅单个按钮样式生效

问题原因与解决方案

哦,这个问题我太熟了!你遇到的是CSS选择器命名规则的坑——你的第二个按钮id是7w,直接以数字开头,导致CSS里的#7w:hover根本不被浏览器识别,所以hover背景色样式完全没生效。

为什么会这样?

CSS的选择器命名规则明确规定:id、类名的第一个字符必须是字母(a-z/A-Z)、下划线_,或者以连字符-开头且后续跟字母/数字,不能直接用数字作为开头字符。浏览器遇到不符合规则的选择器时,会直接忽略它,自然不会应用对应的样式。

两种解决办法

办法1:修改id为合法名称(推荐)

直接把HTML里的id="7w"改成符合规则的名称,比如id="w7"或者id="seven-wonders",然后对应修改CSS选择器:

  • 修改后的HTML:
<button class="projb" id="w7" onclick="ww()"> 7 Wonders </button>
<button class="projb" id="sa" onclick="sa()"> Save animals </button>
  • 对应修改后的CSS:
#w7:hover { background-color: black; }
#sa:hover { background-color: burlywood; }

办法2:使用CSS属性选择器(不修改id的情况下)

如果不想改动HTML的id,可以用属性选择器来匹配这个id,属性选择器不受开头数字的限制:

[id="7w"]:hover { background-color: black; }
#sa:hover { background-color: burlywood; }

额外说明

你现有的.projb:hover里的transform样式不受影响,因为类选择器是合法的,而且id选择器的优先级比类高,所以新增的hover背景色会正常叠加生效,不会被类样式覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 22:42:47