Vin*_*nod 3 css angular-ui-bootstrap bootstrap-4 angular angular5
我的代码中有一个来自第三方库的 angular-5 下拉组件,这个组件有自己的 CSS,由于它的默认行为,我无法更改它的 CSS(这里我试图减少下拉的宽度),我试过了也使用编写另一个 css 类和内联样式,但它不会改变宽度。
HTML 代码,我已经控制了我的代码:(第 3 方下拉组件)
<test-dropdown id="dropdown" label="Options Array"
[selectedOption]="dropdownOptions[0]">
<test-option *ngFor="let option of dropdownOptions"
[option]="option" [disabled]="option.disabled">{{option.label}}
</test-option>
</test-dropdown>
Run Code Online (Sandbox Code Playgroud)
上面的下拉组件,在浏览器中运行应用程序后看起来像,
<test-dropdown _ngcontent-c4="" id="dropdown" label="default" ng-reflect-label="default">
<div class="test-dropdown" ng-reflect-ng-class="[object Object]">
<label>DropDown</label>
<div>
<button class="select">Select...</button>
<div class="dropdown">
<!--bindings={
"ng-reflect-ng-for-of": "[object Object],[object Object"
}-->
<test-option _ngcontent-c4="" class="dropdown-btn-vp option ng-star-inserted" style="min-width: 120px"
ng-reflect-option="[object Object]">
<button class="option">
Option One
</button>
</test-option>
<test-option _ngcontent-c4="" class="dropdown-btn-vp option ng-star-inserted" style="min-width: 120px"
ng-reflect-option="[object Object]">
<button class="option">
Option Two
</button>
</test-option>
<!--bindings={}-->
</div>
</div>
</div>
</test-dropdown>
Run Code Online (Sandbox Code Playgroud)
简而言之,我想在类上应用 css 样式,test-dropdown->button.select和test-dropdown->div.dropdown
我使用::ng-deep pseudo-class selector,请参阅此文档https://blog.angular-university.io/angular-host-context进行角度视图封装。
下面的代码片段适用于我使用 ng-deep 覆盖 css 属性。例如,在我的例子中<test-dropdown>是一个角度组件,它采用它的默认 css 类.dropdown,现在我想修改min-width属性,所以我使用 ng-deep 伪类选择器做了它,其他角度组件也一样。
test-dropdown::ng-deep .dropdown {
min-width: 20%;
}
test-button::ng-deep .test-button {
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
text-align: center;
cursor: pointer;
min-width: 20%;
}
test-date-picker::ng-deep .date {
min-width: 100%;
line-height: 1.42857143;
}
test-date-picker::ng-deep .date-picker {
min-width: 100%;
line-height: 1.42857143;
}
Run Code Online (Sandbox Code Playgroud)