Asp.net Core – CSS Isolation
前言
ASP.NET Core 6.0 Razor Pages 新功能, 我是用 webpack 做打包的, 所以这个对我没有什么帮助. 但是了解一下是可以的.
希望 .NET 会继续发展的更好, 多一点 build-in 的功能.
参考:
CSS Isolation in ASP.NET Core 6.0
Setup
用法很简单, 为每一个 page 独立一个 Page.cshtml.css
然后在 .cshtml 里引用
<link rel="stylesheet" href="~/TestWeb.styles.css" />
名字是 Project Name.
原理
这时就会发现不同页面会拿到各自的 CSS Style 了, 互相不会冲突.
打开 .css file 就会看到它的秘密了
ASP.NET Core 在 build 的时候会把所有的 .cshtml.css 放入到同一个 file 里面.
然后会加上怪怪的字符串 (unique key), 比如 b-j5krx4qc9z
同时在 HTML 页面的 element tag 也会加上对应的字符串, 这样 page 和 CSS 就关联起来了. 每个页面的 CSS 都有专属的字符串 (unique key)
body CSS 无效
不清楚是不是 bug, 但是 body 是没用 unique attribute 的, 但是 CSS style 却有, 所以会无效...