Angular2中的组件CSS行为

时间:2017-09-26 07:20:29

标签: angular templates structure

我正在开这篇文章因为我对CSS Angular2 Components有疑问。

基本上,我买了一个模板,我将它传递给Angular2中的组件。在原始模板中,当向下滚动页面时标题被卡住,这种行为是通过名为Sticky-kit.js的库完成的,该库添加了一个" is_stuck"在检测到滚动时,将类添加到html标记,在本例中为标记标记。在模板中,html标头标签位于带有" main-wrapper"的div内。只有宽度为100%的类。在原始模板中一切正常。

当我将标题传递给组件并运行应用程序时,库sticky-kit.js工作正常,因为添加了适当的" is_stuck"但是尽管上课,但是标题并没有被卡住。图书馆寻找一个班级" .topbar"在html中,当它找到相应的元素时,它会将" is_stuck"类。

我想弄清楚为什么会这样。

我做了一些测试,其中一个将标题代码放在组件外面(" main-wrapper" div的儿子)作为原始模板结构,它工作正常,但是,当我回来组件内部的代码不再起作用。在原始模板中,标题的父级是:

<div class="main-wrapper"></div> 

但是在角度结构中,标题的父级是组件本身。

这是我正在实施的结构:

<div id="main-wrapper">
  <app-header></app-header>
  <app-menu></app-menu>
  <div class="page-wrapper">...</div>
</div>

我可以抓住标题如下:

<div id="main-wrapper">
  <header>code here</header> <----------
  <app-menu></app-menu>
  <div class="page-wrapper">...</div>
</div>

我认为这种行为的发生是因为组件封装,我不想把标题代码放在标题组件之外。

有人会帮忙吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

好的,我找到了自己问题的答案。我花了好几个小时试图解决问题。

我唯一需要做的就是在标头的父节点中使用组件的主机元数据,并在标头组件中使用:host应用css规则。

令人印象深刻的是,一个小问题需要几个小时才能解决。

感谢所有阅读我问题的人。