我是初学者,这里使用的术语可能没有正确应用。
我的应用程序包含三个组件。来自Project Clarity的一个外部组件clr-datagrid
<body>
<app-root>
<app-searchform>
<ss-multiselect-dropdown>
external library for making Dropdown Multiselect with bootstrap CSS
</ss-multiselect-dropdown>
</app-searchform>
<app-searchresult>
<clr-datagrid> external component for displaying result list </clr-datagrid>
</app-searchresult>
</app-root>
</body>
在搜索结果组件中,
@Component({
selector: 'app-searchresult',
templateUrl: './searchresult.component.html',
styleUrls: ['./searchresult.component.css',
'../../../node_modules/clarity-icons/clarity-icons.min.css',
'../../../node_modules/clarity-ui/clarity-ui.min.css'
],
encapsulation: ViewEncapsulation.Emulated
})
问题是,
当我使用 ViewEncapsulation。Emulated、clearance- icons.min.css '、clearance-ui.min.css 不适用于嵌套组件/自定义元素。
当我使用 ViewEncapsulation。Native , 它只在 Chrome 和 Opera 浏览器中正常工作。但不在 IE/Firefox/Safari 中。
当我使用 ViewEncapsulation。None,工作正常,但 CSS 溢出并影响 searhform cmp 样式。
我从在线阅读中了解到,问题出在 Shadow DOM 上,只有 Chrome 支持 Shadow DOM,其他不支持。我尝试使用webcomponents polyfill
<script src="../../../node_modules/webcomponents.js/webcomponents-hi-sd-ce.js"></script>
在 index.html 中(可能不是正确的方法)。
任何人都可以帮助我如何将清晰的 css 和图标仅应用于组件,并且不会影响应用程序的其他部分?