css 引入后被覆盖是什么原因_样式优先级与 css 引入关系
技术百科
P粉602998670
发布时间:2026-01-27
浏览: 次 CSS引入顺序影响样式生效是因为后加载的同权重规则会覆盖先加载的,但选择器权重优先于顺序;权重相同时才按HTML中link/style从上到下的顺序层叠。
为什么 CSS 引入顺序会影响样式生效?
引入顺序直接决定 !important 以外的普通规则的层叠顺序。浏览器按 HTM

或 出现的**从上到下顺序**读取样式表,后加载的样式会覆盖前面同优先级、同选择器权重的声明。
- 外部样式表(
)按标签在 HTML 中的书写顺序加载 - 内联样式(
属性)优先级高于所有外部/内部样式,但不改变引入顺序逻辑 - 动态插入的
或通过 JS 创建的也参与层叠,以插入时刻为序
选择器权重比引入顺序更关键
即使后引入的 CSS 文件里写的是 .btn { color: red; },如果先引入的文件里有 div .btn:hover { color: blue; },后者仍会生效——因为它的选择器权重更高(包含元素 + 类 + 伪类)。
- 权重计算:内联样式 > ID 选择器 > 类/属性/伪类 > 元素/伪元素
- 相同权重时,才看引入顺序(或声明顺序)
- 用浏览器开发者工具的 Styles 面板,可直观看到哪条规则被划掉、被哪条覆盖
常见被覆盖的典型场景
不是引入顺序不对,而是没意识到某些规则天然“更强”:
-
body * { font-size: 14px; }这种通配+祖先组合,权重低但作用范围极大,容易被后续局部规则意外覆盖 - 框架 CSS(如 Bootstrap)通常在头部引入,但若你自己的 CSS 在它之后,且选择器不够具体,就会被框架默认样式压住
- Vue/React 组件 scoped 样式生成的属性选择器(如
[data-v-abc123] { color: red; })权重等同于类选择器,但可能因构建后插入时机靠后而“赢过”全局样式 - 使用
@import的 CSS 文件,其内部规则权重不变,但@import本身必须出现在样式表最前,否则会被忽略;且它阻塞渲染,不推荐在后混用
如何快速定位谁覆盖了你的样式?
打开 Chrome DevTools → Elements 面板 → 选中目标元素 → 右侧 Styles 面板里找被划掉的属性。鼠标悬停在该行,会显示「This rule was overridden by …」提示,并标出来源文件和行号。
- 点击右侧文件名链接,能跳转到对应 CSS 源码位置
- 临时禁用某条规则(点左侧复选框),观察样式是否恢复,可验证覆盖源
- 检查是否启用了浏览器插件(如 Dark Reader、Stylus),它们注入的样式也在层叠中参与竞争
.my-card {
background: #f0f0f0;
}
/* 如果下面这条在另一个文件里且后加载,它不会覆盖上面那条 */
.my-card {
background: #fff;
}
/* 但下面这条会——因为权重更高(多了一个类) */
.card-container .my-card {
background: #e0e0e0;
}真正容易被忽略的,是构建工具(如 Webpack、Vite)对 CSS 的处理顺序:CSS in JS、CSS Modules、postcss 插件、提取 CSS 的时机,都可能让“你以为的引入顺序”和实际注入 DOM 的顺序不一致。调试时得看最终 HTML 里的 和 排列,而不是源码 import 顺序。
# ai
# 浏览器
# css
# 工具
# js
# html
# chrome
# 排列
# bootstrap
# react
# vite
# vue
# webpack
# chrome devtools
# 伪元素
# 属性选择器
# postcss
# stylus
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- Win11怎么更改鼠标指针方案_Windows11
- 使用类变量定义字符串常量时的类型安全最佳实践
- Win11怎么关闭搜索历史_Win11清除设备上的
- php嵌入式日志记录怎么实现_php将硬件数据写入
- Win10如何更改网络连接_Windows10以太
- Win11怎么恢复误删照片_Win11数据恢复工具
- Python包结构设计_大型项目组织解析【指导】
- php8.4如何实现队列任务_php8.4redi
- Win11触摸板没反应怎么办_开启Win11笔记本
- Mac版Final Cut Pro入门_Mac视频
- Win11怎么看电池循环次数_Win11笔记本电池
- MAC如何设置网卡MAC地址克隆_MAC终端修改物
- Golang如何实现基本的用户注册_Golang用
- c++ reinterpret_cast怎么用 c
- c++中的Tag Dispatching是什么_c
- Windows10系统更新错误0x80070002
- c++20的std::format怎么用 比pri
- Windows服务无法启动错误1067是什么_进程
- Win11右键反应慢怎么办 Win11优化右键菜单
- Win11怎么关闭系统声音_Win11系统提示音静
- Win11用户账户控制怎么关_Win11关闭UAC
- Win11如何设置文件权限 Win11 NTFS文
- php怎么连接数据库_MySQL数据库连接的基础代
- Mac如何创建和管理多个桌面空间_Mac高效多任务
- Windows10如何查看蓝屏日志_Win10使用
- Win11更新后变慢怎么办_Win11系统更新后卡
- Win10怎样卸载自带Edge_Win10卸载Ed
- Win10电脑怎么设置IP地址_Windows10
- Windows10系统怎么查看显卡型号_Win10
- 如何在 Django 中安全修改用户密码而不使会话
- c++23 std::expected怎么用 c+
- Windows蓝屏错误0x0000002C怎么解决
- MAC怎么一键隐藏桌面所有图标_MAC极简模式切换
- c++如何使用std::bind绑定函数参数_c+
- Python生成器表达式内存优化_惰性计算说明【指
- Python网络异常模拟_测试说明【指导】
- Win11怎么设置任务栏图标大小_Windows1
- Win11怎么关闭SmartScreen_禁用Wi
- Win11怎样激活系统密钥_Win11系统密钥激活
- 为什么本地php环境运行php脚本卡顿_php执行
- 如何在 Go 中正确反序列化 XML 多节点数组(
- Python大型项目拆分策略_模块化解析【教程】
- Win11怎么关闭专注助手 Win11关闭免打扰模
- Windows家庭版如何开启组策略(gpedit.
- php订单日志怎么记录发货_php记录订单发货操作
- Win11怎么恢复旧版开始菜单_通过软件还原Win
- 如何使用Golang写入二进制文件_Golang
- MAC怎么使用表情符号面板_MAC Emoji快捷
- Win11怎么设置虚拟桌面 Win11新建多桌面切
- Win10怎样卸载DockerDesktop_Wi

QQ客服