如何使用适当的特异性来设计没有 !important 的 :root 样式

2023-12-13

里面一个自定义元素因为border-color在父页面上设置,我无法设置border-color不求助于工作!important

  :host([player="O"]) {
      color: var(--color2);
      border-color: var(--color2) !important;
  }

选择器工作正常,颜色已设置,
所以这是一个特异性问题

问: 没有的话可以吗!important ?

工作片段:

window.customElements.define('game-toes', class extends HTMLElement {
  constructor() {
    super();
    let shadowRoot = this.attachShadow({
      mode: 'open'
    });
    shadowRoot.innerHTML = 'Toes';
    shadowRoot.appendChild(document.querySelector('#Styles').content.cloneNode(true));
  }
});
:root {
  --boardsize: 40vh;
  --color1: green;
  --color2: red;
}

game-toes {
  width: var(--boardsize);
  height: var(--boardsize);
  border: 10px solid grey;
  background: lightgrey;
  display: inline-block;
}
<TEMPLATE id="Styles">
  <STYLE>
      :host {
          display: inline-block;
          font-size:2em;
      }

      :host([player="X"]) {
         color: var(--color1);
         border-color: var(--color1);
      }

      :host([player="O"]) {
        color: var(--color2);
        border-color: var(--color2) !important;
      }
  </STYLE>
</TEMPLATE>
<game-toes player="X"></game-toes>
<game-toes player="O"></game-toes>

qomponents

您正在使用 CSS 变量,因此您仍然可以像这样依赖它们:

window.customElements.define('game-toes', class extends HTMLElement {
  constructor() {
    super();
    let shadowRoot = this.attachShadow({
      mode: 'open'
    });
    shadowRoot.innerHTML = 'Toes';
    shadowRoot.appendChild(document.querySelector('#Styles').content.cloneNode(true));
  }
});
:root {
  --boardsize: 40vh;
  --color1: green;
  --color2: red;
}

game-toes {
  width: var(--boardsize);
  height: var(--boardsize);
  border: 10px solid var(--playercolor,grey);
  color:var(--playercolor,#000);
  background: lightgrey;
  display: inline-block;
}
<TEMPLATE id="Styles">
  <STYLE>
      :host {
          display: inline-block;
          font-size:2em;
      }

      :host([player="X"]) {
          --playercolor: var(--color1);
      }

      :host([player="O"]) {
          --playercolor: var(--color2);
      }
  </STYLE>
</TEMPLATE>
<game-toes player="X"></game-toes>
<game-toes player="O"></game-toes>
<game-toes ></game-toes>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用适当的特异性来设计没有 !important 的 :root 样式 的相关文章

  • 两种颜色边框

    客户想要两种颜色的边框以获得浮雕外观 我可以在一个元素上执行此操作吗 我希望避免堆叠两个具有单独边框的 DOM 元素 是的 使用outline财产 它充当您边界之外的第二个边界 但请注意 它可能会以一种奇怪的方式与边距 填充和阴影进行交互
  • 使用滤镜将css3灰色图像转为蓝色?

    我正在尝试将灰色图像变为更蓝色的色调 真的不知道如何为此设置滤镜或是否可能 该图像只有一种颜色 cacaca 其余部分透明 我正在尝试使用相同的图像进行一些叠加 以便它仅突出显示那些彩色部分而不是透明区域 一直在尝试其中的一些 但没有取得多
  • CSS3 box-shadow 用于类似重叠的 div

    我正在尝试用css3来实现这种效果 HTML 代码显然是这样的
  • 在 IE 8 及以下版本中动态添加 @font-face 规则

    我使用 IE stylesheet addRule 方法添加 font face 规则 但是 符号对于该方法的 选择器 参数来说是不允许的字符 因此我收到 无效参数 错误 s addrule font face font family Fo
  • html 和 body 元素的高度

    我一直在互联网上查找 min height 和 height 属性如何在 body 和 html 元素上工作 我在很多地方都看到过下面的代码 html height 100 body min height 100 上面的内容可以与其他一些
  • IE7 显示问题:菜单中的表格

    我写了一个菜单样式 在 IE8 FF3 6 GC7 中运行良好 现在的问题是 我的老板希望它甚至可以在 IE7 上运行 我真的很努力地让它在 IE7 上运行 但无法获得相同的外观 menu css a outline none menu m
  • 使用 CSS 的平行四边形导航背景

    我正在尝试创建此导航菜单 绿色突出显示是活动页面 灰色是悬停状态 我可以使用以下 CSS 制作平行四边形 ul nav li a text decoration none padding 4px 10px border radius 3px
  • 垂直对齐复选框标签? [复制]

    这个问题在这里已经有答案了 我有这样的复选框
  • 现在 CSS3 供应商前缀有多必要? [复制]

    这个问题在这里已经有答案了 我只是想知道现在在 CSS 中指定 webkit moz ms 或 o 等供应商前缀在多大程度上仍然有必要 如果我理解正确的话 opera 切换到了 webkit 所以会删除 o 对吗 IE 在 IE10 中不再
  • 为什么元素上的负底部边距会降低该元素父元素的高度?

    这可能是由于边距折叠造成的 我知道边距折叠 至少知道它如何影响相邻元素 但我不明白当涉及负边距时它如何在嵌套元素上工作 例如 在此标记和随附的 CSS 中 Markup div class parent div class child Ch
  • CSS 是否有不等于选择器?

    CSS中有类似 不等于 的东西吗 例如 我有以下代码 input 但对于某些输入 我需要将其作废 我想通过将类 reset 添加到输入标签来做到这一点 例如
  • Vuetify 等高 v-tab-items

    请告知如何使 vuetify v tabs 内容显示在等高块中 我在文档中找不到该组件的选项可以帮助高度对齐 By default v tab item height depends on its own content height 布局
  • 将 2 个 Div 垂直居中另一个 Div

    我有 2 个 div 我想将它们垂直居中在另一个 div 内 目前我有 http jsfiddle net 5vpA3 1 http jsfiddle net 5vpA3 1 现在我明白这里发生了什么 但我希望左侧 div 在该容器内垂直对
  • jQuery 更改事件未在输入元素上触发

    首先 我检查了与我的问题类似的每个主题 不幸的是 我还没有找到答案 我尝试结合一些答案 但没有成功 注 刚开始学习jQuery 所以这是我的问题 我创建了一个带有四个文本输入和一个按钮的表单 每个输入内部都有一个 svg 图标和一个占位符文
  • 除非我在 HTML 中使用 标签加载图像,否则背景图像不会显示在 CSS 中

    我非常困惑为什么我的代码无法正确显示图像 这是我的代码 div p p div 只有图像的一小部分与文本一起显示 我很困惑为什么会发生这种情况 显示整个图像的唯一方法是在图像周围添加近 170 像素的填充 请有人帮忙 Thanks 你之前需
  • 如何在光标下的所有元素上调用 mouseover?

    我有一个网络应用程序 每次单击时都会创建一个点 见下文 当我将鼠标悬停在一堆点上时 我希望光标下的每个点都会触发 mouseover 或 mouseenter 事件 然而 只有一个事件被触发 即堆栈 顶部 的点的事件 当鼠标移动到一堆多个点
  • 使用 CSS Flexbox 堆叠图像

    我正在学习使用CSSflexbox 和我想在左侧渲染一个大图像 并在彼此之上渲染两个小图像 我怎样才能使用CSS弹性盒 div class container img class image1 src alt null img class
  • 通过 SVG 背景传递鼠标事件

    我有两个 SVG 元素 每个元素覆盖整个屏幕 html body height 100 svg position absolute top 0 left 0 bottom 0 right 0
  • HTML 覆盖高度覆盖整个可见页面

    我有一个使用 AJAX 加载一些内容的网页 我想在加载过程中显示带有加载指示器的覆盖层 以便用户无法与页面的大部分内容交互 除了顶部的菜单 我正在使用 jQuery 和jQuery BlockUI 插件 http malsup com jq
  • 通过 vh 和 vw 调整 css 字体大小

    所以我想根据容器的大小自动调整文本的大小 但是如果我使用类似的东西 font size 5vw 看起来不错 但是当我缩小页面时 高度开始变得太小 无论如何 我是否可以根据 vh 和 vw 调整文本大小 例如 如果我只是减小页面的宽度 那么高

随机推荐

  • 为什么我的IP地址以192开头?

    我来自非网络背景 我突然想知道为什么我工作的公司几乎都是 192 168 x x 这样的 ip 为什么他们不能有像 1 2 3 4 这样的东西 我知道ip有一个概念 叫做子网划分 此外 192 168 0 0 至 192 168 255 2
  • 有没有简单的方法可以在 JPanel 上画一个圆?

    我在使用 drawOval x y width height 方法时遇到问题 该方法假设 x 和 y 值代表 要绘制的椭圆形的左上角 的坐标 javadoc 我希望 x 和 y 值代表中心点一个圆圈 我该怎么做呢 谢谢 如果您提前声明了宽度
  • 通过对另外两个数组的所有元素应用二元运算来在 Swift 中创建数组

    Swift 中是否有一种通过对另外两个数组的元素应用二元运算来创建数组的简洁方法 例如 let a 1 2 3 let b 4 5 6 let c 0 lt 3 map a 0 b 0 c 5 7 9 如果你使用zip要组合元素 您可以参考
  • 精确浮点计算两个乘积的和与差

    两个乘积之差和两个乘积之和是在各种常见计算中发现的两个原语 diff of products a b c d ab cd 和 sum of products a b c d ab cd 是密切相关的伴随函数 仅部分操作数的符号不同 使用这些
  • 如何用C#发送彩信

    我需要通过 C 应用程序发送彩信 我已经发现了 2 个有趣的组件 http www winwap com http www nowsms com 有人有使用其他第三方组件的经验吗 有人可以解释一下我需要什么样的服务器来发送这些彩信吗 它是经
  • WCF ria 服务 SP1 超时已过期

    我的解决方案是 Silverlight 它使用 WCF RIA 服务 SP1 和实体框架 4 我在加载大尺寸数据时遇到问题 我收到此错误消息 System ServiceModel DomainServices Client DomainE
  • 同一 JPA 类的多个数据库支持

    我们的项目使用 MYSQL 和 Hibernate JPA用于将对象持久保存在数据库中 我们有多个具有相似代码的类 Entity Table name users class Users implement Serializable Id
  • 当出现 E_USER_DEPRECATED 级别错误时如何运行 Behat 测试

    我有一个 Symfony 2 7 表单类型 它导致了一些级别错误E USER DEPRECATED 这个错误不是来自我自己的代码 而是来自vendor symfony symfony src Symfony Bridge Doctrine
  • Python套接字模块:如何更改客户端的本地端口?

    我想使用 TCP IP 作为客户端从网络获取包 With connect TCP IP TCP PORT 我可以更改对等地址的端口 但是我改变了本地计算机的端口 编辑 我想使用带有四个端口的网卡 网卡连接到发送大量数据的测量设备 我如何查看
  • 如何从身份验证器重定向到外部身份验证端点?

    我正在编写一个网络应用程序 由于不同客户的需求 我希望拥有灵活的身份验证选项 我用的是官方的cakephp 身份验证库 但它没有 OpenID Connect 身份验证器 所以我正在滚动自己的 我遇到的问题是我无法返回修改后的Cake Ht
  • 解码 IntelliJ IDEA 文件夹名称颜色

    我有一个项目 有 4 个 Git 根 Project Project commons Project ui and Data Model 由于某些配置 我需要放置Project commons Project ui and Data Mod
  • 向 BroadcastReceiver 发送额外内容

    我有一个运行以下代码的活动 定义了时间和间隔 Intent buzzIntent new Intent getBaseContext BuzzReceiver class PendingIntent pendingIntent Pendin
  • 上周一的日期 Excel

    今天是 2013 年 2 月 27 日 星期三 我需要一个公式 该公式将返回上周一的日期 即 02 17 2013 我需要这样才能在发送电子邮件的 vba 代码中使用文件名或电子邮件主题 With oMail Uncomment the l
  • 是否可以在 Silverlight 中绑定到 lambda 表达式?

    我有一个仅绑定到集合的列表框 该集合有一个子集合 StepDatas 我想绑定到子集合的计数 但使用 WHERE 语句 我可以绑定到 ChildCollection Count 但在需要添加 lambda 表达式时会迷失方向 这是 XAML
  • 在 init 中使用属性访问 iVar?

    这是上一个问题的分支 这是不好的做法吗 使用属性来设置 iVar Designated initializer 001 id initWithName NSString newName andType NSString newType se
  • 如何计算R中沿线的两点之间的地理距离?

    Inputs 我有两个形状文件导入到 R 中 这样我最终得到了 包含公交路线的空间线数据框 包含公交车站的空间点数据帧 绘制给定路线及其停靠点如下所示 样本数据 This link包括两个可作为 zip 格式下载的 shapefile 其中
  • IF EXISTS 条件不适用于 PLSQL

    我正在尝试在条件为 TRUE 时打印文本 选择的代码工作正常 当我只运行选择代码时 它显示 403 值 但当条件存在时我必须打印一些文本 下面的代码有什么问题 BEGIN IF EXISTS SELECT CE S REGNO FROM C
  • 用于测验应用程序的 Rails 关联和数据库设计

    我正在构建这个测验应用程序 我希望它有点复杂 我想出了这个数据库模式 但我真的很困惑 对我需要什么关联和东西感到困惑 嗯 需要注意的一件事是 当创建测试时 没有关于参加该测试的考生人数的信息 所以 我创建了test questions an
  • AJAX jQuery 每 5 秒刷新一次 div

    我从一个网站获得了这段代码 并根据我的需要进行了修改 div div
  • 如何使用适当的特异性来设计没有 !important 的 :root 样式

    里面一个自定义元素因为border color在父页面上设置 我无法设置border color不求助于工作 important host player O color var color2 border color var color2