解决d3.js在angular中添加class样式不生效问题

35 篇文章 7 订阅
14 篇文章 0 订阅
  • 1、背景

在ng-alain中使用d3.js绘制曲线图,想改变坐标轴的样式。

通过.attr('class', 'd3-line-axis')的形式添加样式来覆盖d3.js默认的样式,但是一直不生效。

  • 2、原因

.ts文件中3种添加样式的方式

1)template种直接<style></style>

2)通过styles: []

3)通过styleUrls: []导入

这3种方式都试过了,编译的时候会带上[_ngcontent-c17],导致通过.attr添加的样式不匹配

编译前:

.d3-line-axis path, .d3-line-axis line{
  stroke: blue;
}
.d3-line-axis text{
  font-family: sans-serif;
  font-size: 12px;
  fill: red;
}

编译后: 

.d3-line-axis[_ngcontent-c10]   path[_ngcontent-c10], .d3-line-axis[_ngcontent-c10]   line[_ngcontent-c10]{
        stroke: blue;
      }
      .d3-line-axis[_ngcontent-c10]   text[_ngcontent-c10]{
        font-family: sans-serif;
        font-size: 12px;
        fill: red;
      }

 

  • 3、解决思路

1)在index.html中直接把样式加上

 <style type="text/css">
    .d3-line-axis path, .d3-line-axis line{
      stroke: blue;
    }
    .d3-line-axis text{
      font-family: sans-serif;
      font-size: 12px;
      fill: red;
    }
 </style>

2)新建个css文件,在angular.json中添加

"styles": [
              "node_modules/simple-line-icons/css/simple-line-icons.css",
              "src/styles.less",
              "src/app/shared/json-schema/widgets/charts/d3.chart.css"
            ],

 

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值