Изменение внутреннего CSS-кода ngx-диаграмм

Когда я развернул пример расширенной круговой диаграммы ngx-диаграмм, цифры моей легенды отрезать. Копаясь в CSS, похоже, это из-за того, что margin-top установлен на -6px:

Плохая расширенная легенда круговой диаграммы

Поэкспериментировав в браузере, я обнаружил, что 10px заставляет все выглядеть так, как мне хотелось бы. Итак, в CSS компонента я добавил:

.advanced-pie-legend.legend-items-container.legend-items.legend-item .item-value {
    margin-top: 10px !important;
}

Однако это никак не влияет на CSS элементов легенды. Я пробовал вариации на !important, ::ng-deep и другие, но ничего из того, что я делаю, похоже, не влияет на этот CSS.

Как я могу изменить CSS для legend-item, чтобы у него было правильное поле?

Ниже приведен мой полный компонент для воспроизведения снимка экрана:


pietest.component.ts

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-pietest',
  templateUrl: './pietest.component.html',
  styleUrls: ['./pietest.component.css']
})
export class PietestComponent {

  view: any[] = [1000, 500];

  single: any[] = [
    {
      "name": "Germany",
      "value": 8940000
    },
    {
      "name": "USA",
      "value": 5000000
    },
    {
      "name": "France",
      "value": 7200000
    },
      {
      "name": "UK",
      "value": 6200000
    }
  ];

  // options
  gradient: boolean = true;
  showLegend: boolean = true;
  showLabels: boolean = true;
  isDoughnut: boolean = false;

  colorScheme = {
    domain: ['#5AA454', '#A10A28', '#C7B42C', '#AAAAAA']
  };

  constructor() { }
}

pietest.component.html

<ngx-charts-advanced-pie-chart
  [view]="view"
  [scheme]="colorScheme"
  [results]="single"
  [gradient]="gradient"
  >
</ngx-charts-advanced-pie-chart>

pietest.component.css

.advanced-pie-legend.legend-items-container.legend-items.legend-item .item-value {
    margin-top: 10px !important;
}

person scohe001    schedule 20.03.2020    source источник


Ответы (2)


Эта проблема не возникает в @ swimlane / ngx-charts: ^ 9.0.0. Однако, если вы хотите изменить стиль в своей версии, чтобы решить эту проблему, используйте приведенный ниже код в файле pietest.component.scss.

/deep/ .advanced-pie-legend /deep/ .legend-items-container /deep/ .legend-items /deep/ 
.legend-item /deep/ .item-value {
    margin-top: 10px !important;
}

Напоминаем, что приведенный выше код будет применяться ко всему вашему приложению, которое соответствует правилу, поскольку он больше не инкапсулируется в вашем компоненте, когда вы используете /deep/, и он аналогичен помещению приведенного ниже кода в ваш style.scss.

.advanced-pie-legend .legend-items-container .legend-items.legend-item .item-value {
    margin-top: 10px !important;
}
person Kheng    schedule 20.03.2020
comment
Ага, это сработало. Откуда вы знаете, что этого не происходит в ^9.0.0? Это известная ошибка? И если да, не могли бы вы указать мне на проблему на GitHub? - person scohe001; 20.03.2020
comment
Потому что я использую ^ 9.0.0, и я вставил ваш пример кода в свое приложение, и он отлично работал. Не уверен, что кто-нибудь сообщил об этой проблеме. - person Kheng; 21.03.2020
comment
В любом случае, можно ли это сделать с помощью таблицы стилей типа .css? Я не могу использовать scss только для компонента, который я использовал, пока все остальные находятся в css, или в конечном итоге все изменил бы на scss, что я немного не хочу делать в данный момент ... - person Ak777; 03.07.2020
comment
вы можете добавить второй код моего ответа в свой styles.css вместо style.scss. Или вы можете добавить инкапсуляцию: ViewEncapsulation.None в свой компонент, как указано Али Safari. - person Kheng; 03.07.2020

Этот код должен исключить инкапсуляцию компонентов CSS, чтобы вы могли перезаписать свой стиль.

добавить encapsulation: ViewEncapsulation.None в раздел @Component в pietest.component.ts файле.

person Ali Safari    schedule 20.03.2020