【问题标题】:Angular --prod issue with border-top-left-radius and border-bottom-left-radius角--prod 问题与border-top-left-radius 和border-bottom-left-radius
【发布时间】:2019-03-26 18:04:02
【问题描述】:

我对按钮上的border-top-left-radiusborder-bottom-left-radius 有疑问,该按钮似乎在开发构建中有效,但在生产环境中无效。当我运行 ng serve 时,我得到了预期的结果:

如果我只是用ng serve --prod 运行同一个项目,我会得到:

...开发者工具中有一些错误:

显然,构建系统做得不好。由于未正确部署样式,因此出现了一些问题。这很容易在 Angular 6 和 7 中重现。

  1. 使用ng new test-app 创建一个空白应用程序
  2. 在 app.component.html 中添加一个按钮

  3. 将 CSS 添加到 app.component.css

    .rounded-circle { 边框半径:50px!重要; 边框左上角半径:0!重要; 边界左下角半径:0!重要; }

  4. 我也使用了 Bootstrap,但没有必要重现。

我有什么明显的遗漏吗?

【问题讨论】:

    标签: css angular


    【解决方案1】:

    它被在 prod 模式下生成的类覆盖。

    像我在图像中所做的那样在开发控制台中取消选中它会产生正确的样式,但要真正实现,请尝试用以下代码替换您的 CSS 类:

    .rounded-circle { border-radius: 0px 50px 50px 0px !important }
    

    【讨论】:

    • 像魅力一样工作!谢谢。但这两种口味不是等价的吗?如果是这样,为什么一个有效而另一个无效?
    • 据我所知,这是一个相当常见的 angular-cli prod 构建错误,它会更改 angular-cli.json 中的样式文件顺序。 Here's the issue that's still open。但至于为什么我的工作而另一个没有对我来说仍然是一个谜,就像大多数 CSS 一样。我的猜测是,我更具体地使用了所有值来制定border-radius 属性,如果您想覆盖同样使用!important 的相同属性,则使用这些值很重要。
    【解决方案2】:

    尝试使用此命令ng serve --prod --build-optimizer=false。它可能会解决您的问题。

    【讨论】:

      猜你喜欢
      • 2018-03-04
      • 2011-03-08
      • 1970-01-01
      • 2016-03-14
      • 1970-01-01
      • 2011-04-27
      • 2014-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多