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

使用CSS实现图形时出现'at-rule or selector expectedcss'错误求助

为什么CSS代码中的$符号会触发报错?

嘿,我来帮你理清这个问题的根源!你遇到的这个at-rule or selector expected错误,本质是你把Sass预处理器的语法直接放到原生CSS里运行了,浏览器的CSS解析器完全认不出这些语法~

具体原因拆解

  • $borderHover是Sass(或SCSS)的变量语法,原生CSS并不支持用$来定义或引用变量。原生CSS的变量是用--前缀定义的,比如--border-hover: 2px,引用时要写var(--border-hover)。
  • 你复制的这段代码是基于Sass编写的——Codepen平台默认会自动帮你编译Sass到原生CSS,所以在Codepen里能正常运行,但如果你直接把这段代码粘贴到普通的.css文件里,浏览器根本不知道$是什么东西,它本来期望这里是一个CSS规则或者选择器,结果看到了陌生的$,自然就抛出报错了。
  • 顺带提一句,代码里的&嵌套选择器虽然现在原生CSS也支持,但兼容性不如预处理器版本稳定,不过这次的报错核心还是$变量的问题。

解决办法

  1. 继续使用Sass语法:把你的样式文件后缀改成.scss,然后用编译工具(比如Dart Sass、Node-sass)把Sass代码编译成原生CSS后再引入到项目中。
  2. 改用原生CSS写法:把代码中的Sass特性替换成原生CSS支持的语法,比如把$borderHover换成原生CSS变量,同时调整嵌套结构(或者直接展开嵌套选择器)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 07:57:29