:host-context() - MDN DOcs条中,有这样的规定:

:host-context()css伪类函数 Select 影子DOM的影子主机,其中包含使用它的CSS(这样您就可以从其影子DOM内部 Select 一个定制元素)--但前提是作为函数参数给出的 Select 器与影子主机的祖先(S)在DOM层次 struct 中的位置匹配. 换句话说,这允许自定义元素或该自定义元素的影子DOM中的任何内容根据其在外部DOM中的位置或应用于祖先元素的类/属性来应用不同的样式.

然而,问题是,在live example个条件下,:host-context(article, aside) { color: gray; }语句并不适用.类似地,如果我try 添加其他以空格分隔的复合 Select 器(如:host-context(h1 a){ background: orange}),我会得到相同的问题,即它没有被apply.

以下是文档页面中给出的示例

/* Selects a shadow root host, only if it is
   a descendant of the selector argument given */
:host-context(h1) {
  font-weight: bold;
}

:host-context(main article) {
  font-weight: bold;
}

/* Changes paragraph text color from black to white when
   a .dark-theme class is applied to the document body */
p {
  color: #000;
}

:host-context(body.dark-theme) p {
  color: #fff;
}

有谁知道为什么会发生这种情况,或者我如何让空格分隔的 Select 器(如后代 Select 器)在:host-context()伪类函数中作为参数工作?

我希望:host-context()伪类函数使用一个参数,该参数是一个空格分隔的复合 Select 符,如h1 a,因为这是文档页面中所描述的.

谢谢.

推荐答案

这是MDN示例中的无效代码.<compound-selector><simple-selector>是唯一被接受的类型.

我做了更改,pull request美元被批准了


描述

已从文档中删除无效示例.

文档中的语法

:host-context(<compound-selector>) {
  /* ... */
}

无效示例

:host-context(article, aside) { color: gray; }

这是无效的,因为提供给:host-context()伪类函数的参数不是<compound-selector>.相反,它是一个" Select 器列表",它是无效的,并且在活动示例中不起作用.

:host-context(main article) {
  font-weight: bold;
}

这是无效的,因为提供给:host-context()伪类函数的参数不是<compound-selector>.相反,它是无效的<complex-selector>,在活动示例中不起作用.

这一点在第Structure of a Selector - CSS Selectors - MDN Docs Page条中有解释

动机

在查看live example号时,无效的css造成混乱

Html相关问答推荐

将输入字段下方的两个按钮设置为两侧对齐

HTML+CSS+JS动态选中文本高亮 colored颜色 变化

如何最大限度地减少Cookie同意代码对性能的影响?

在Chrome中使用手写笔时,滚动条方向反转

天使17:令人惊叹的动画

Div中的图像问题-(TailWind CSS中的网格)

尽管div高度为100%,div中的内容仍会溢出

子元素的单一背景

我正在try 向列表中的图像添加悬停,以放大图像并将div的不透明度设置为1而不是0

多次使用组件时计数Angular 14中嵌套数组的指令

如何从通过 find-each 方法(在 Rails 应用程序中)生成的列表创建下拉菜单?

为什么即使我点击其他地方,我的 contenteditable="true" 也会被激活?

实验的响应式屏幕尺寸

如何截断一些文本并用双引号引起来?

如何在div中设计伪元素?

如何在 bootstrap 程序导航栏中居中搜索图标

CSS 斜角与 3 行对齐

正确使用视频作为背景

在部分而不是正文中定义页面宽度

使元素扩展宽度减go margin-right