【发布时间】:2017-06-21 06:07:11
【问题描述】:
我开始使用 Angular 2,并且正在使用 Themeforest 的管理模板进行样式设置。我希望我的组件采用 index.html 上定义的样式,它应该是全局的。问题是组件 html 文件中的元素没有找到这些样式,我认为这是因为父子关系以某种方式被破坏了。这是一个例子:
在 index.html 文件中,我有以下内容:
...
<!-- This is my Component -->
<sidebar-menu></sidebar-menu>
<!-- This is coded directly on the index.html -->
<li class="m-t-30">
<a href="#" class="detailed">
<span class="title">Page 1</span>
<span class="details">234 notifications</span>
</a>
<span class="icon-thumbnail "><i class="pg-mail"></i></span>
</li>
...
我的<sidebar-menu> 组件在它的 .html 文件中有这个:
<li class="m-t-30">
<a href="#" class="detailed">
<span class="title">Page 1</span>
<span class="details">234 notifications</span>
</a>
<span class="icon-thumbnail "><i class="pg-mail"></i></span>
</li>
这与 index.html 文件中的内容完全相同。所以,我应该看到这两个项目以相同的方式显示。但这就是我所看到的:
很明显,样式被破坏了,尽管组件的 html 和元素的 html 是相同的。使用检查器,我可以看到组件的 html 没有使用与第二个元素相同的样式:
我尝试在我的组件上定义encapsulation: ViewEncapsulation.None,但它没有做任何事情。关于如何解决这个问题的任何想法?谢谢!
【问题讨论】:
-
一个艰难的选择是为这些属性手动放置
!important。 -
你能分享呈现你期望的样式的css代码吗?看起来侧边栏组件上的某些父关系已更改
-
css 是模板自带的,所以编辑不是一个选项,因为它有很多代码而且超级容易破解。