2016-09-26 25 views
6

Tôi đang cố áp dụng kiểu dáng cho thành phần ngbTooltip trong ứng dụng Angular 2 của mình. Tôi áp dụng các chỉ thị như:Cách tạo kiểu ng-bootstrap trong Angular 2

<div [ngbTooltip]="tooltipText"> 
    Element text 
</div> 

Nhưng kể từ góc 2 áp dụng phong cách Phạm vi, tôi không thể trực tiếp tạo kiểu cho lớp .tooltip trong mẫu thành phần của tôi.

Tôi làm cách nào để cung cấp chú giải công cụ cho thành phần cụ thể này kiểu tùy chỉnh?

EDIT:

Tôi có biểu định kiểu scss được đính kèm với thành phần của tôi. phong cách của tôi (đơn giản hóa) là:

.license-circle { 
    width: 10px; 
    ... other styles 
} 

/deep/ .tooltip { 
    &.in { 
     opacity: 1; 
    } 
} 

Nhưng sau đó phong cách render của tôi trông giống như:

<style> 
.license-circle[_ngcontent-uvi-11] { 
    width: 10px; } 

.tooltip.in { 
    opacity: 1; } 
</style> 

Mà làm cho tôi tin rằng phong cách tooltip đang được un-đóng gói (thay vì chỉ xuyên phần này của

Lưu ý: Tôi đã thử :host >>> .tooltip và không hoạt động, vì vậy tôi đã sử dụng /deep/.

Cảm ơn!

+0

http://stackoverflow.com/questions/34542143/load-external-css-style-into-angular-2-component/ 34963135 # 34963135 có thể giúp (đổ bóng) –

+0

Nó hoạt động, cảm ơn! Nhưng tôi lo lắng những phong cách xuyên này sẽ là toàn cầu. –

+0

Bạn có ý nghĩa gì với "toàn cầu"? Nếu bạn bắt đầu bộ chọn với ': host ...' thì chúng chỉ được áp dụng cho thành phần này và nó là con. –

Trả lời

7

Như đề cập trong các bình luận, các bộ chọn nên bắt đầu bằng :host

:host .license-circle { 
    width: 10px; 
    ... other styles 
} 

:host /deep/ .tooltip { 
    &.in { 
     opacity: 1; 
    } 
} 
+0

Cảm ơn rất nhiều! Tôi nghĩ ': host >>>' == '/ deep /' và không nhận ra tôi đã mất tích ': host' :) –

+0

Tôi hiểu rồi. Có '>>>' và '/ deep /' có thể hoán đổi cho nhau. Nó đã được đề cập ở đâu đó rằng một trong số họ hoạt động tốt hơn trong SASS nhưng tôi không nhớ đó: -/ –

+1

Đối với hồ sơ, tôi đang sử dụng sass và '/ deep /' :) –

Các vấn đề liên quan