我们有一个使用 Angular 11(cli V11.2.14)和 Asp.net 核心开发的 Web 应用程序,运行良好,现在需要在 chrome 旧版本(浏览器版本 60)中得到支持。我遇到了主要与具有颜色和不透明度的元素相关的 CSS 问题,例如。下面的 box-shadow 不起作用。
box-shadow: 0px 4px 16px 4px rgba(255, 0, 0, 0.52);
在角度 css 缩小过程中发现(angular.json 中的默认设置 optimization=true),rgba 被转换为 8 位十六进制代码。这适用于最新版本的 chrome(72 及更高版本)。但是像 chrome 60 这样的旧版本不支持 8 位十六进制代码,因此我没有看到 css 生效。目前我只能通过不使用 angular.json 中的以下设置来缩小样式来解决此问题。
"optimization": {
"scripts": true,
"styles": {
"minify": false,
"inlineCritical": true
},
"fonts": true
},
我正在尝试查看是否有一种方法可以防止将 rgba 转换为 8 位十六进制代码,而不必禁用 css 缩小。尝试在 styles.scss 中使用变量,如下所示,但缩小过程仍将 rgba 转换为 8 位十六进制。
$my-shadow-red: #{'0px 4px 16px 4px rgba(255, 0, 0, 0.52)'};
box-shadow: $my-shadow-red;
遇到在这里发布的类似问题https://github.com/angular/angular-cli/issues/20869说 css nano 团队必须解决这个问题。不确定当前在 angular cli 中是否有任何解决方法。