当前位置: 首页 > 面试题库 >

角度2:如何为组件的宿主元素设置样式?

蓬祺
2023-03-14
问题内容

我在Angular 2中有一个名为my-comp的组件:

<my-comp></my-comp>

如何在Angular 2中设置此组件的宿主元素的样式?

在Polymer中,您将使用“:host”选择器。我在Angular 2中尝试过。但是它不起作用。

:host {
  display: block;
  width: 100%;
  height: 100%;
}

我也尝试使用组件作为选择器:

my-comp {
  display: block;
  width: 100%;
  height: 100%;
}

两种方法似乎都不起作用。

谢谢。


问题答案:

有一个错误,但在此同时已修复。:host { }现在工作正常。

还支持

  • :host(selector) { ... }用于selector匹配主机元素上的属性,类…
  • :host-context(selector) { ... }用于selector匹配父组件上的元素,类…

  • selector /deep/ selector (别名selector >>> selector不适用于SASS)以使样式跨元素边界匹配

    • 更新: SASS正在弃用/deep/
      添加了Angular(TS和Dart)::ng-deep作为替代品,该替代品也与SASS兼容。

    • UPDATE2: ::slotted ::slotted现在所有新浏览器都支持 UPDATE2: 并且可以与`ViewEncapsulation.ShadowDom

/deep/>>>不影响 通过在Chrome中被弱化了相同的选择组合程序。
Angular模拟(重写)它们,因此不依赖于支持它们的浏览器。

这也是为什么/deep/>>>不起作用的原因,ViewEncapsulation.Native它启用了本地阴影DOM并依赖于浏览器支持。



 类似资料:
  • 我正在尝试在其他模块中使用我在AppModule内部创建的组件。但我得到了以下错误: msgstr"未捕获(promise中):错误:模板解析错误: “联系人框”不是已知元素: 如果“触点盒”是一个角度组件,则确认它是该模块的一部分 如果“联系人框”是Web组件,则将“自定义元素”模式添加到“@NgModule”。“此组件的架构”以抑制此消息 我将我的页面保存在页面目录中,其中每个页面保存在不同的

  • 考虑到jquery的方式,但我想用angular的方式来实现这一点,我做了一个解决方案,我们使用元素的id在任何函数中设置焦点,所以,由于我在angular方面非常新手,我想了解一些意见,如果这种方式是正确的,有什么问题,无论什么,任何可以帮助我在angular中更好地实现这一点的方法。 基本上,我创建一个指令,监视用户用指令定义的作用域值,或者默认的focusElement,当该值与元素的id相

  • 问题内容: 在查看了如何使用角度设置焦点元素的示例后,我看到它们中的大多数使用一些变量来监视然后设置焦点,并且它们中的大多数对于要设置焦点的每个字段使用一个不同的变量。在具有许多字段的形式中,这意味着存在许多不同的变量。 考虑到jquery的方式,但是想以角度的方式做到这一点,我提出了一个解决方案,我们使用元素的id将焦点设置在任何函数上,因此,由于我在角度上非常陌生,因此我希望得到一些意见那个方

  • 我从HTTP调用中获取了大量的HTML代码。我将HTML块放入一个变量中,并用[innerHTML]将其插入到我的页面中,但我不能为插入的HTML块设置样式。有没有人建议我怎样才能做到这一点? 我想要样式化的HTML是变量“calendar”中包含的块。

  • 如何设置第一个类为xxx的样式? 问题:比如我要设置第一个拥有red的元素的样式,css如何选中

  • 目录 1. 嵌入式SAPI 2. 构建并编译一个宿主应用 3. 通过嵌入包装重新创建cli 4. 老技术新用 5. 小结 现在你已经了解了PHPAPI的世界, 并可以使用zval以及语言内部扩展机制执行很多 工作了, 是时候转移目标用它做它最擅长的事情了: 解释脚本代码.