在自定义元素的 :host 声明中使用 CSS 计数器重置

2023-12-02

[运行代码片段]

我希望我的 DIV 编号显示从0 ,
所以我想使用以下命令从 -1 开始计数器:counter-reset : square -1;

然而,在使用时此设置将被忽略:host

counter-reset当所有 DIV 都包含在额外的父 DIV 中时(使用counter-reset在该父 DIV 上)
但是我更喜欢not使用这个解决方法因为它在我的最终应用程序中需要更多代码。

是否可以使用counter-reset in :host ???

window.customElements.define('game-toes', class extends HTMLElement {
  constructor() {
    super();
    this.attachShadow({mode: 'open'})
     .appendChild(document.querySelector('#Styles').content.cloneNode(true));
  }
});
<TEMPLATE id="Styles">
  <STYLE>
      :host {
        display: grid;
        grid-template: repeat(3, 1fr) / repeat(3, 1fr);
        grid-gap: .5em;
        counter-reset: squarenr -1; /* does not reset to -1 */
      }
      DIV {
        font-size:3em;
        display:flex;
        justify-content:center;
        background:lightgrey;
        counter-increment: squarenr;
      }
      #_::before {
        background:lightgreen;
        content: counter(squarenr);
      }
      #X::after,
      #O::after {
        content: attr(id);
      }
  </STYLE>
  <DIV id=_></DIV><DIV id=_></DIV><DIV id=X></DIV>
  <DIV id=_></DIV><DIV id=X></DIV><DIV id=_></DIV>
  <DIV id=O></DIV><DIV id=O></DIV><DIV id=X></DIV>
</TEMPLATE>
<game-toes></game-toes>


qomponents

:host是一个伪类,它选择影子宿主元素(即:托管 Shadow DOM 的 HTML 元素),而不是影子根。

结果,一个counter-reset会影响主 DOM 树中的计数器,而不是 Shadow DOM 中的计数器(参见下面的示例)。

如果你想在 Shadow DOM 根中设置 CSS 计数器,你可以使用:first-of-type选择器:

 div:first-of-type {
    counter-reset: squarenr -1
 }

window.customElements.define('game-toes', class extends HTMLElement {
  constructor() {
    super();
    this.attachShadow({mode: 'closed'})
     .appendChild(document.querySelector('#Styles').content.cloneNode(true));
  }
});
div::after {
  counter-increment: squarenr ;
  content: counter( squarenr ) ;
}
<TEMPLATE id="Styles">
  <STYLE>
      :host {
        display: grid;
        grid-template: repeat(3, 1fr) / repeat(3, 1fr);
        grid-gap: .5em;
        counter-reset: squarenr -1; 
      }
      :host > div:first-of-type {
        counter-reset: squarenr -1; 
        color: red;
      }
      DIV {
        font-size:2em;
        display:flex;
        justify-content:center;
        background:lightgrey;
        counter-increment: squarenr  ;
      }
      #_::before {
        background:lightgreen;
        content: counter(squarenr);
      }
      #X::after,
      #O::after {
        content: attr(id);
      }
  </STYLE>
  <DIV id=_></DIV><DIV id=_></DIV><DIV id=X></DIV>
  <DIV id=_></DIV><DIV id=X></DIV><DIV id=_></DIV>
  <DIV id=O></DIV><DIV id=O></DIV><DIV id=X></DIV>
</TEMPLATE>
<div>squarenr=</div><game-toes></game-toes><div>squarenr=</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在自定义元素的 :host 声明中使用 CSS 计数器重置 的相关文章

  • 如何使用 Bourbon Neat Framework 实现移动优先

    我一直在使用 bourbon clean 来进行桌面优先布局 效果很好 不过 我想做一个移动优先版本 从移动开始 然后逐步向上 默认网格为 12 列 对于移动设备 我通常使用 4 列网格 我尝试将网格更改为 4 列 然后扩展到 12 列 但
  • CSS Font-Face url 不起作用?

    我在使用 font face 选择器时遇到了一些问题 我有以下问题 font face font family MuseoSans 700 src url http mysite co uk clients reload Images st
  • 带有右侧固定侧边栏的 Bootstrap 响应式网格

    我想创建一个带有类似引导程序的模板 它尊重网格的响应系统 在图中 导航栏和右侧 包含两个按钮 是粘性的 始终显示在视图上 我的问题是右侧 因为在引导网格系统中 右侧块将被视为单行 而主要内容包含多行 我怎样才能做到这一点 围绕整个 Boot
  • 如何用纯JavaScript控制变换距离

    我做的http codepen io adamchenwei pen dOvJNX http codepen io adamchenwei pen dOvJNX 我尝试对 dom 应用某种移动方式 使其移动固定距离并停止 而不是动画并移动穿
  • 背景颜色的不透明度,但不是文本的不透明度[重复]

    这个问题在这里已经有答案了 如何使背景的跨浏览器 包括 Internet Explorer 6 透明div而文本仍然不透明 我需要在不使用任何库 例如 jQuery 等 的情况下完成此操作 但如果您知道有一个库可以实现此目的 我很想知道 这
  • 我的整个 Rails 应用程序仅从一个文件获取 css 为什么

    我为两个控制器添加了不同的 css 文件 但我的整个应用程序仅从product css 我为两个控制器添加了不同的 css 文件 但我的整个应用程序仅从product css我为两个控制器添加了不同的 css 文件 但我的整个应用程序仅从p
  • IE10中的图像插值

    这是我的用例 我有一个采用响应式设计的网页 该页面垂直分成两半 我想在右侧显示图像 呈现为 PNG 或 JPG 的 PDF 页面 调整窗口大小后 图像的大小应立即更改 我以为我已经解决了这个问题 我将服务器上的图像渲染得足够大 以适应最大可
  • 如何使用CSS将文本放在“框”的右上角或右下角

    我怎样才能得到here and and here位于右侧 与 lorem ipsums 位于同一行 请参阅以下内容 Lorem Ipsum etc here blah blah blah blah lorem ipsums and here
  • 中心引导表宽度为 100%?

    table class table table striped table hover table responsive table
  • 带缩略图的轮播和 bootstrap v4

    我看到了带有缩略图的轮播演示bootstrap 3 here http jsfiddle net talmand JS6JV 我正在尝试为 bootstrap v4 实现相同的功能 但无法弄清楚如何修复一些 UI 细节 例如左 右阴影覆盖整
  • 绝对定位的表头 (th) - 哪个浏览器是错误的?

    这个带有一个绝对定位列的简单表格在 Firefox 和 IE 中的呈现方式与在 Chrome 和其他基于 Webkit 的浏览器 中的呈现方式不同 http jsfiddle net WZ6x8 http jsfiddle net WZ6x
  • 无法从代码隐藏更改 CSSClass

    这一定是世界上最简单的事情 但它就是行不通 我有一个外部 div 我想对其应用一个类以使其显示样式 none 以便隐藏其中的所有内容 它实际上是一个 asp panel 元素 所以我假设我可以在后面的代码中设置 control CssCla
  • Img srcset 和尺寸属性

    我正在尝试制作一个简单的网站img标签 将使用新的srcset属性 主要思想是根据屏幕分辨率更改图像 src 工作示例 http pixelteam pl surprise some files index html 问题在于sizes 正
  • 具有一个 css 类的堆叠图标

    在新的 FontAwesome 4 0 0 中 堆叠项目有 css 样式 span class fa stack i class fa fa square o fa stack 2x i i class fa fa twitter fa s
  • 基本 CSS 问题 - 父 DIV 与未知子 DIV、居中父 DIV

    当我将 DIV 居中时 我会给它一个宽度并放置margin auto然而 我对这种情况有两个问题 该父 DIV 内将有 2 或 3 个带有 float left 的 DIV 子 DIVS 的宽度不会改变 但数量可能会改变 2 或 3 因此
  • 扩展引导程序预输入的宽度以匹配输入字段

    我知道这个问题之前至少被问过三次 但我看到的答案并不是我想要的 我希望增加 twitter bootstrap 通过其 typeahead 功能生成的自动完成字段的宽度 我一直在读到它延伸到覆盖该字段中的所有文本 也就是说 文本越长 自动完
  • Twitter Bootstrap - 多图像(缩略图)轮播 - 一次移动一个缩略图

    我正在尝试 Twitter bootstrap 3 我对 HTML CSS 和 Javascript 还很陌生 我有一个我创建的轮播 它的代码如下所示 div class container div class carousel slide
  • Rails Active Admin css 与 Twitter Bootstrap css 冲突

    我对 Rails 资产管道有点陌生 所以我可能做错了什么 我正在尝试为我的后端使用 Active Admin 为我的前端应用程序使用 twitter bootstrap css 我将 bootstrap css 添加到 应用程序 资产 样式
  • 背景大小:封面在视网膜显示屏上看起来像素化

    可以看到我正在开发的网站here http ourcityourstory com dev 如果你查看 iPad 3 或 iPhone 4 上的 关于 或 联系 部分 背景看起来全都是疯狂的像素化 我有background size set
  • 文本溢出:省略号显示不同的字符

    我这里遇到了一些 CSS 问题 看这张图片 https www flickr com photos 125543025 N07 saved 1 在此图像中 我为文本 INTENSE TRAINING 添加了 CSS 样式 sample st

随机推荐

  • 替换 MS SQL Server 中的特定 Unicode 字符

    我正在使用 MS SQL Server Express 2012 我在删除 unicode 字符时遇到问题U 02CC 十进制 716 在网格结果中 原文是 e r 我像这样尝试过 它不起作用 SELECT ColumnTextWithUn
  • 最简单的 MySQL 到 MySQLi 过渡

    我目前正在使用我在课堂上教授的已贬值的MySQL 我发现这不是正确的方法 有两个更好的选择 MySQLi 和更好的 PDO 虽然我发现切换到 PDO 对我来说有点困难 因为我对 OOP 一无所知 但我认为至少切换到 MySQLi 是必须的
  • 修复“包含重复的‘编译’项目。” Visual Studio 中的错误

    这是一个非常烦人的 VS 错误 我使用的是 VS 2019 16 8 1 我花了很多时间来修复它 包含重复的 编译 项目 NET SDK 包括 默认情况下从项目目录 编译 项目 你可以 从项目文件中删除这些项目 或设置 如果需要 可将 En
  • MySQL变量存储数据库名称

    我有一个很长的脚本 需要在几个不同的数据库上运行 所有数据库都具有相同的表和字段名称 我想做的是这样的 1 SET TARGET DATABASE beta 2 SET SOURCE DATABASE sandbox 3 4 CREATE
  • 通过 Chrome 上的 KBX 扩展程序安装时 Kynetx 应用程序无法运行

    我的应用程序正在加载外部 javascript 文件jQuery getScript 当我使用书签或扩展程序启动应用程序时 一切正常 当应用程序通过 KBX 安装时 虽然在内部Chrome与KBX扩展javascript 文件中包含的函数无
  • 如何在asp.net中实现文件下载

    使用 asp net 2 0 从网页实现下载操作的最佳方法是什么 操作的日志文件在名为 Application Root Logs 的目录中创建 我有完整路径并想提供一个按钮 单击该按钮会将日志文件从 IIS 服务器下载到用户本地电脑 这有
  • 购物车表如何与另一个表关联?

    我有表 table name id cart token data created at Updated at 想要使用令牌列 table name cart token cart token 与商店购物车表关联 只要购物车表没有 Cart
  • mysql 自然排序

    我有像这样的桌子server id name ip 当我尝试按名称对结果进行排序时 我得到 srv1 srv10 srv11 srv2 srv6 但我需要像这样的结果srv1 srv2 srv6 srv10 srv11 我知道的一个想法是
  • ORA-01855: 上午/上午或下午/下午必需的

    我收到错误 ORA 01855 AM A M or PM P M required 当我尝试执行以下查询时 INSERT INTO TBL ID START DATE values 123 TO DATE 3 13 2012 9 22 00
  • 半径/最近结果 - Google 地图 API

    首先 我使用 Google Maps API v3 我有一张大地图 显示从数据库中提取的所有结果 现在我想实现一个功能 显示距当前位置 X 公里内最近结果的半径 由 HTML5 地理定位提供 由于地图包含所有结果 我希望能够添加X公里 然后
  • 在 linq 中使用 ANY 条件处理 WHERE 内的空值

    我的问题是 db 对象可以有空描述 ofc linq 将抛出空异常 我用它来搜索描述和标题 这是代码 string searchQry searchString Split searchQry searchQry Select sq gt
  • 相机拍摄的照片上传异常(Firebase 存储)

    我正在尝试将 Android 应用程序中相机拍摄的图像上传到 Firebase 存储 问题是我拍照后在确认activity 我按下确认按钮 它显示 不幸的是 应用程序已停止 这是当我按下检查按钮时的图像 应用程序崩溃了 这是我的代码 应用程
  • 使用 jQuery 选择一个选项?

  • 将 ViewData\ModelState 导出到子操作

    正如题主所说 这是一个坏主意吗 如果是这样 为什么 目前 如果您从 Html Acion 内部渲染某些输入字段 则不会向用户显示验证错误 因为当涉及 Html Action 时 在其上下文中 ModelState 会被清除 那么最好的模式是
  • 将值和标签设置为 JComboBox

    我有一个 JComboBox 其中的项目是查询的结果 该组合显示了从查询中获取的所有类别名称 对吧 好的 它有效 现在我需要给每个项目一个值 这将是产品的 ID 这是我到目前为止所得到的 final JComboBox proveedorC
  • asp.net特殊标签之间的区别

    我现在正在开发应用程序的前端部分 我想到了一个问题 asp net特殊标签有什么区别 如果存在其他特殊标签 请描述其功能
  • Inno Setup Exec 不等待 InstallShield 卸载完成

    尝试使用卸载字符串卸载软件 并使用Exec in InitializeSetup 在安装之前 它不会等待卸载完成 而是继续在 Inno Setup 中进行下一步安装 我正在使用以下代码和我尝试在 Installshield 产品中卸载的软件
  • 如何以编程方式使用图像添加栏按钮

    我正在以编程方式创建一个栏按钮 但它无法固定到屏幕上 帮助我解决这个问题 截屏 UIImage image UIImage imageNamed request png UIBarButtonItem button2 button2 set
  • DateTime.Now.Ticks 在循环内重复

    我正在尝试为表的主键生成唯一 ID 并且我正在使用DateTime Now Ticks为了它 这是目前我们无法使用的要求Identity 但有时 在循环内 它会在连续迭代中生成相同的 ID 我的简化代码如下所示 While Incoming
  • 在自定义元素的 :host 声明中使用 CSS 计数器重置

    运行代码片段 我希望我的 DIV 编号显示从0 所以我想使用以下命令从 1 开始计数器 counter reset square 1 然而 在使用时此设置将被忽略 host counter reset当所有 DIV 都包含在额外的父 DIV