Angular2 最终版本不再支持 :host ::shadow
Angular2 final release no longer supports :host ::shadow
我今天早上升级到 Angular2 最终版本并注意到我在以前的候选版本中使用的 CSS 样式不再有效。我需要通过父组件的子组件来控制 HTML 元素的外观。
这是我的 HTML:
<div id="intro">
<stm-video [video]="PageData.WelcomeVideo"></stm-video>
</div>
这是我的 CSS:
:host ::shadow
{
stm-video
{
.video-container
{
height: 80vh;
width: inherit;
}
}
}
.video-container 是里面的一个 HTML 元素。我想在父页面加载时设置视频容器的高度。这曾经在 Angular2 RC 4 和 5 中工作。今天在安装 Angular2 最终版本后停止工作。
有没有更合适的处理方式?
我想你在这里找的是/deep/
。它通过 child 个组件向下应用样式。在你的 parent 风格中你会拥有。
/deep/ .video-container
{
height: 80vh;
width: inherit;
}
:host
仍受支持。
::shadow
不受支持。据我所知从来没有。
::content
被忽略。
/deep/
和 >>>
是等效的,并且仍然受支持。
:host >>> {
stm-video {
...
应该做你想做的。
另见
谢谢 Gunter 和 Clint。根据您的建议,这是我解决这个问题的方法(使用 LESS 生成 CSS):
@deep: ~">>>";
:host
{
stm-video
{
@{deep}
{
.video-container
{
height: 80vh;
width: inherit;
}
}
}
}
@{deep} 直接位于 :host 下会影响所有子节点,但将它放在子元素内只会影响该子节点内的样式 (stm-video)。
我今天早上升级到 Angular2 最终版本并注意到我在以前的候选版本中使用的 CSS 样式不再有效。我需要通过父组件的子组件来控制 HTML 元素的外观。
这是我的 HTML:
<div id="intro">
<stm-video [video]="PageData.WelcomeVideo"></stm-video>
</div>
这是我的 CSS:
:host ::shadow
{
stm-video
{
.video-container
{
height: 80vh;
width: inherit;
}
}
}
.video-container 是里面的一个 HTML 元素。我想在父页面加载时设置视频容器的高度。这曾经在 Angular2 RC 4 和 5 中工作。今天在安装 Angular2 最终版本后停止工作。
有没有更合适的处理方式?
我想你在这里找的是/deep/
。它通过 child 个组件向下应用样式。在你的 parent 风格中你会拥有。
/deep/ .video-container
{
height: 80vh;
width: inherit;
}
:host
仍受支持。
::shadow
不受支持。据我所知从来没有。
::content
被忽略。
/deep/
和 >>>
是等效的,并且仍然受支持。
:host >>> {
stm-video {
...
应该做你想做的。
另见
谢谢 Gunter 和 Clint。根据您的建议,这是我解决这个问题的方法(使用 LESS 生成 CSS):
@deep: ~">>>";
:host
{
stm-video
{
@{deep}
{
.video-container
{
height: 80vh;
width: inherit;
}
}
}
}
@{deep} 直接位于 :host 下会影响所有子节点,但将它放在子元素内只会影响该子节点内的样式 (stm-video)。