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 却有, 所以会无效...

 

posted @ 2022-03-20 16:20  兴杰  阅读(253)  评论(0编辑  收藏  举报