Blazor中wwwroot/css下CSS与Shared文件夹Razor组件关联CSS的区别及适用场景
Blazor两类CSS文件的区别与适用场景
核心差异
1. wwwroot/css 目录下的CSS文件
属于全局静态样式文件,需要在应用入口文件(Blazor WebAssembly为index.html、Blazor Server为_Host.cshtml/App.razor)中手动引入,样式生效范围覆盖整个应用的所有页面和组件,无作用域隔离,同名选择器会按照引入顺序后定义的覆盖先定义的。
对应文件截图:
2. 和.razor文件同名的关联CSS文件
属于组件隔离样式文件,是Blazor原生提供的CSS隔离特性产物,不需要手动引入,编译时Blazor会自动给该文件内的所有选择器加上唯一的组件专属属性标识,样式仅作用于对应同名Razor组件的内部元素,不会污染全局样式,也不会和其他组件的同名选择器产生冲突。
对应文件截图:
各自适用场景
wwwroot/css 全局CSS适用场景:
- 全站基础样式重置,比如
normalize.css、自定义的默认标签样式重置 - 全局统一的设计规范定义,比如全站通用字体、字号、主题色、通用间距规则
- 全局公共工具类,比如自定义的
.text-left、.hidden-xs、全局按钮基础样式等所有组件都可复用的通用类 - 全局布局样式,比如网站顶部导航、侧边栏、底部页脚的公共布局规则
组件关联隔离CSS适用场景:
- 单个组件独有的、不需要给其他组件复用的个性化样式
- 避免样式冲突的场景,比如多个组件使用了相同的类名(如
.container、.item),用隔离样式不会出现互相覆盖的问题 - 可移植组件开发场景,组件和对应样式绑定,迁移时直接复制
.razor和同名.css文件即可使用,不需要额外调整全局样式
内容的提问来源于stack exchange,提问作者Standley Peter
相关产品推荐
相关产品推荐

