gpt4 book ai didi

css-selectors - 我如何编写影子 dom *在*大多数 child 之后选择特定元素?

转载 作者:行者123 更新时间:2023-12-04 06:11:48 25 4
gpt4 key购买 nike

我正在编写自定义 <figure> -like 元素,我想为其添加 <figcaption>在主要内容下。 <figcaption>需要包含来自自定义元素的子节点的一些内容(具有潜在格式的文本),为此我使用 <content select="span.caption"></content> .但是,根据 Shadow DOM spec , <span>已经分发到较早的<content></content>布局自定义元素主体的元素。

我试过使用 <content select=":not(span.caption)"></content>以避免分发标题,但这似乎不是 compound selector什么都不匹配。

让元素按我想要的顺序呈现的推荐方法是什么?

这是有问题的代码,它也在 http://jsbin.com/vizoqusu/3/edit :

<!DOCTYPE html>
<html>
<head>
<script src="//cdnjs.cloudflare.com/ajax/libs/polymer/0.1.4/platform.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/polymer/0.1.4/polymer.js"></script>
<meta charset="utf-8">
</head>
<body>
<polymer-element name="my-figure" noscript>
<template>
<figure>
<content></content>
<figcaption>Figure 7: <content select="span.caption"></content></figcaption>
</figure>
</template>
</polymer-element>

<my-figure>
Hello World!
<span class="caption">The caption</span>
</my-figure>
</body>
</html>

最佳答案

今天这在 ShadowDOM polyfill 下确实有效,但有两个警告:

  1. :not only takes simple selectors as arguments,所以你需要做一些像*:not(.caption)
  2. 这样的事情
  3. 如果您完全使用选择器,纯文本节点将被忽略,因此您必须将其他内容包裹在某种元素中。

这是一个例子:

http://jsbin.com/vizoqusu/5/edit

  <polymer-element name="my-figure" noscript>
<template>
<figure>
<content select="*:not(.caption)"></content>
<figcaption>Figure 7: <content select="span.caption"></content></figcaption>
</figure>
</template>
</polymer-element>

<my-figure>
<span>Hello World!</span>
<span class="caption">The caption</span>
</my-figure>

至于 native 系统,我用你的用例来论证将 :not() 纳入规范,你可以在这里看到它:

https://www.w3.org/Bugs/Public/show_bug.cgi?id=24867

关于css-selectors - 我如何编写影子 dom *在*大多数 child 之后选择特定元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22087653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com