如何为 CSS 自定义属性设置“inherit”值? [复制]

2023-11-26

将自定义属性设置为值inherit完全符合您对其他所有 CSS 属性的期望:它继承其父级的相同属性值。

普通财产继承:

<style>
  figure {
    border: 1px solid red;
  }
  figure > figcaption {
    border: inherit;
  }
</style>
<figure>this figure has a red border
  <figcaption>this figcaption has the same border
    as its parent because it is inherited</figcaption>
</figure>

自定义属性继承(显式):

<style>
  figure {
    --foobar: 1px solid green;
  }
  figure > figcaption {
    --foobar: inherit;
    border: var(--foobar);
  }
</style>
<figure>this figure has no border
  <figcaption>this figcaption has a green border
    because it explicitly inherits --foobar</figcaption>
</figure>

自定义属性继承(隐式):

所有自定义属性(不同于border) 默认继承

<style>
  figure {
    --foobar: 1px solid green;
  }
  figure > figcaption {
    border: var(--foobar);
  }
</style>
<figure>this figure has no border
  <figcaption>this figcaption has a green border
    because it implicitly inherits --foobar</figcaption>
</figure>

我的问题

你如何设置literal的价值inherit自定义属性,当您希望其值实际计算为关键字时inherit?

<style>
  figure {
    border: 1px solid red;
    --foobar: 1px solid green;
  }
  figure > figcaption {
    border: var(--foobar);
  }
  figure > figcaption:hover {
    --foobar: inherit;
  }
</style>
<figure>this figure has a red border
  <figcaption>this figcaption has a green border
    because it inherits --foobar</figcaption>
</figure>
<!-- on hover -->
<figure>this figure has a red border
  <figcaption>I want this figcaption
    to have a red border (inherited from figure)
    but its border is green!</figcaption>
</figure>

在这个例子中,我想要第二个figcaption(悬停时)继承其父级的红色边框,所以我设置--foobar to inherit。然而,如示例 2 所示,这并不能计算为inherit,它计算从父母的财产继承的值--foobar(如果有),在本例中为绿色。

我完全理解CSS作者为什么这样设计:--foobar就像任何其他 CSS 属性一样,因此设置inherit应该继承它的价值。所以我想我是在问是否有解决方法来获得第二个figcaption继承其父级的边界。

注意,我考虑过做

figure > figcaption:hover {
  border: inherit;
}

但这违背了使用 CSS 变量的目的。

如果还有很多其他属性figure > figcaption全部使用该值var(--foobar),我不想为悬停场景重新重新定义它们。我宁愿只设置这些属性一次,然后根据上下文重新分配变量。


我做了一些思考,这个解决方案让我印象深刻。我可以结合使用自定义属性预处理器混入.

<style type="text/less">
  // NOTE: not syntactically valid CSS!
  .mx-border(@arg) {
    border: @arg;
  }
  figure {
    .mx-border(1px solid red);
    --foobar: 1px solid green;
  }
  figure > figcaption {
    .mx-border(var(--foobar));
  }
  figure > figcaption:hover {
    .mx-border(inherit);
  }
</style>
<figure>this figure has a red border
  <figcaption>this figcaption has a green border
    because it inherits --foobar</figcaption>
</figure>
<!-- on hover -->
<figure>this figure has a red border
  <figcaption>This figcaption
    has a red border because the mixin
   sets the `border` property to `inherit`.</figcaption>
</figure>

这样,我可以将所有依赖样式封装到.mx-border()混合。这样做并没有利用 CSS 自定义属性,但它确实减轻了再次编写所有内容的麻烦。:hover.

本质上是它is和写作一样border: inherit;,具有将更多样式放入 mixin 中而不必重复它们的附加功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 CSS 自定义属性设置“inherit”值? [复制] 的相关文章

  • 底部带有三角形的 div 和背景图像

    我想做一个div 有一个底部的三角形 但我需要三角形上的背景图像为了出现 我尝试使用伪元素 after 但它不起作用 homebg after content position absolute top 100 left 0 right 0
  • 将图例标签设置为块

    我已经在以下网址设置了我的问题的演示 http jsfiddle net YHHg7 4 http jsfiddle net YHHg7 4 我正在尝试执行以下操作 legend display block border bottom 1p
  • 如何计算单击的甜甜圈元素的中点与负 y 轴之间的角度

    Consider the following codesample donut chart using jquery flot http jsfiddle net c5zsg6y3 26 now as i have added the im
  • CSS 未在 Django 项目中加载?

    我是 Django 新手 但负责该项目的前端工作 我一直在研究如何准确加载 css 文件 但我发现这些方法不起作用 这是 html 文件布局 load static
  • 不要包裹 span 元素

    我有一份清单 span 可以在 a 内左右移动的元素 div 元素 如果某些跨度超出了 div 它们应该被隐藏 这可以很好地使用overflow hidden 但是 如果跨度超出了 div 的容纳范围 跨度就会换行 这对于我的用例来说是不期
  • 中有样式表 吗?

    在内部链接 CSS 文件是一个坏主意吗 body 我读过 如果浏览器在外部找到另一个 CSS 文件 则它会被迫重新开始 CSS 渲染 head 只是因为它可能需要将样式应用于已经渲染的元素 另外 我认为 HTML 无法正确验证 我需要确认这
  • 使用 CSS Grid,从任何地方滚动 div(不使用 jQuery 插件)

    div 怎样才能 scroll content https jsfiddle net blehmanade x1k3rhj7 33 可以从页面上的任何位置滚动吗 现在 scroll content仅当鼠标位于其上方时才可滚动 但是 当鼠标位
  • 动态突出显示时向

    添加项目符号点?

    Update 例子 p Text Text p 在示例中 是否可以选择第二个 文本 单词 p 元素并单击按钮仅动态添加项目符号点到选定的 单词 有没有可能 在一个 p p Text p 突出显示从 p 元素并添加项目符号点到按钮上动态单击的
  • 有没有办法编写屏幕阅读器会忽略的内容?

    我刚刚开发了一个需要视力正常和视障用户都可以访问的页面 内容的某些元素仅与视觉元素相关 因此根本不适用于使用屏幕阅读器的人 例如 链接在新窗口中打开视听演示文稿 但由于我无法控制的情况 窗口的大小被笨拙地调整 因此有一条消息说您应该调整窗口
  • Flexbox 的行之间可以有一条线吗?

    我有一个水平导航 它有点长 需要重新排列以适应狭窄的显示 我使用 flexbox 使其重排成多行 但行数较多时 导航项之间的划分就不那么明显了 我尝试在顶部给它们一个边框 它有点有效 但当然 边框仅在各个导航选项上可见 而不是在所有 Fle
  • 有没有办法改变输入类型=“日期”格式?

    默认情况下 输入type date 显示日期为YYYY MM DD 问题是 是否可以将其格式强制为 DD MM YYYY 无法更改格式 我们必须区分有线格式和浏览器的表示格式 接线格式 The HTML5日期输入规范 https www w
  • 我正在尝试向我的 vue.js 项目添加背景图像

    我想添加覆盖整个页面的背景图像 然而现在看起来是这样的 我希望它跨越整个网页 在 vue js 中这将如何完成 我还想要一个动画工具栏 以便当页面不滚动时工具栏是透明的并呈现背景图像的外观 当它滚动时 工具栏将具有当前的蓝色 这是我的小提琴
  • 自动调整Google网站嵌入代码的高度(html)

    我正在使用 Google 协作平台嵌入 HTML 代码 将代码粘贴到 从网络嵌入 窗口中 输出的长度是可变的 我希望有一种方法可以动态调整父级的高度iframeGoogle 协作平台用于托管我的 HTML 我知道我可以使用 Google 协
  • 如何防止 CFDocument 中的内容中间发生分页?

    我使用 cfdocument 标签从 html css 动态生成 PDF 文件 有些内容块我不想跨越多个页面 经过一番搜索后 我发现根据文档支持 page break inside 样式 然而 在我的测试中 声明 page break in
  • 当鼠标悬停在伪元素上时触发CSS动画?

    我试图在伪元素悬停时触发 CSS 动画 我目前有 2 个视频 显示鼠标悬停在浏览器的 50 一侧 我想应用类似的效果来为某些文本添加动画效果 我想要 p 标签在移动时向上移动并淡入 p h1 同时以同样的方式标记 就像这个网站一样 http
  • Twitter bootstrap:居中缩略图

    我有一个缩略图列表 它们有固定的尺寸 我希望连续缩略图的数量随着窗口的宽度而变化 使用 Twitter Bootstrap 这很容易 http jsfiddle net charlesbourasseau 5WvAL http jsfidd
  • 扩展位置绝对div超出溢出隐藏div

    我已经好几个月没有做过CSS了 所以我可能会错过一些简单的东西 但无论解决方案是什么 我都无法弄清楚 所以问题就在这里 这是我的代码的简化版本 div style height 100 width 200px div style margi
  • 当百分比填充定义元素高度时忽略 max-height

    The max height当内部填充大于最大高度值时 属性值似乎被忽略 例如 在元素上设置此类会导致最大高度被忽略 max height ignored height 0 or auto makes no difference max h
  • 使用@font-face时浏览器下载什么字体

    font face 有点令人困惑 因为所有浏览器都无法决定使用哪种文件格式 下面是我目前正在使用的向网站添加 1 个新字体的方法 您可以看到有 4 个单独的字体文件 我知道每个文件都是因为某些浏览器支持不同的格式 但浏览器是下载所有文件还是
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘

随机推荐

  • WordPress:通过ajax调用插件php文件

    我写了一个 WordPress 插件 在我的模板中添加了一些评论功能 通过ajax 所有内容都应该传输到wordpress 数据库中 问题是 ajax 处理程序需要一个 php 文件来捕获查询 if isset POST name POST
  • 具有特定位置的 MKMapItem

    如何启动 iOS6 的默认地图应用程序并向其传递自定义位置 例如 MKMapItem setLocation MyLocation openInMapsWithLaunchOptions nil 我按照这里的例子 但无法弄清楚 如何从我自己
  • Android:卸载时从外部存储中删除应用程序关联的文件?

    如果我正在编写的应用程序将一些文件永久存储到外部存储 因此它们在应用程序退出 销毁 后仍然存在 那会很方便 但是在卸载时我想做一些体面的事情并拥有这些文件删除文件以释放存储空间 有什么方法可以在卸载时删除这些文件吗 如果没有 我对此表示怀疑
  • 检查数据表中是否有空值的最佳方法

    检查数据表中是否有空值的最佳方法是什么 在我们的场景中 大多数情况下 一列将全部包含空值 此数据表由第三方应用程序返回 我们试图在应用程序处理数据表之前进行验证 尝试将列的值与DBNull Valuevalue 以您认为合适的方式过滤和管理
  • NodeRT:找不到程序集

    我正在写一个electron应用程序与电子窗口通知这取决于NodeRT 当我尝试安装我的项目时 每个项目都会出现以下错误 nodert win10依赖项 gt if not defined npm config node gyp node
  • IOS 11 Beta 上的 cordova 的 html-select 下拉问题

    我目前使用 AngularJS 和 Cordova 构建一个 IOS 应用程序 当我在 IOS 11 Beta 上尝试我的应用程序时 我发现了一个错误 要选择表单中的某些数据 我们使用 select dropDown 当我们选择一个值时 下
  • Docker,无法使用 docker flag -p 3000:3000 从 localhost:3000 访问“rails 服务器”开发

    我正在尝试将 docker 与 Rails 结合使用 在一个容器内构建整个堆栈 我的最终目标是拥有一个 nginx memcached unicorn rails postgres 堆栈 并以 runit 作为进程管理器 到目前为止 我已经
  • 如何将 std::chrono::time_point 转换为带有小数秒的日历日期时间字符串?

    如何转换std chrono time point带有小数秒的日历日期时间字符串 例如 10 10 2012 12 38 40 123456 如system clock 该类有time t转换 include
  • 获取网格中的绝对行号

    在yii的网格视图我可以通过使用获取当前行号 row 但这仅返回当前页面内的行索引 我真正需要的是获取所有页面中的绝对行号 我正在使用 yii 所以我的梦想应该 轻松 实现 所以我希望答案不应该引导我向数据提供程序添加特殊字段或访问寻呼机并
  • 将用户标头搜索路径添加到 podspec

    这是这个问题的后续 CocoaPods 可能有一个包含主应用程序的搜索路径 我想添加 添加一个User Header Search Path到我的 podspec 以便在编译时添加它 但我不知道如何执行此操作 其效果如下 将此代码添加到您的
  • javascript Replace() 没有替换所有匹配的字符

    我想转 管理员 电影列表 into Admin 电影列表 using 代替 var id id replace 看起来它只替换了第一个 我如何替换所有这些 谢谢你的帮助 Use a regex with the g flag var id
  • 使用 XmlTextReader

    我是一名初级程序员 从 C 和 Web 服务开始 In the Service cs我的网络服务文件 我创建一个ReadXMLFile 方法 我尝试读取现有的 XML 文件 从中获取数据并将其放置到我在IService cs file 我的
  • Entity Framework Core、DELETE CASCADE 和 [必需]

    我在 Entity Framework Core 中遇到了 DELETE CASCADE 问题 我似乎找不到好的解决方案 这是我的模型的超级简化版本 User UserID Name Recipe RecipeID UserID Ingre
  • PowerShell 中数字后缀的完整列表是什么?

    可在 PowerShell 数字文字上使用的后缀的完整列表是什么 到目前为止我已经发现 Suffix Example Result L 1L Type Int64 D 1D Type Decimal KB 1KB 1KB 1024 MB 1
  • 通过 HTTP 中间件验证 WebSocket 连接

    问题陈述 我正在尝试使用 Golang 中的基本中间件来保护 websocket 升级程序 http 端点 如下所示WebSocket 协议不处理授权或身份验证 社区建议 有些人建议 尽管含糊其辞 我建议使用应用程序的代码来验证升级握手 以
  • apache中这个配置是什么意思? [关闭]

    Closed 这个问题是无关 目前不接受答案 Header append Vary User Agent env dont vary 谁能对此给出详细的解释 这使用阿帕奇模组头将值 User Agent 附加到 Vary HTTP 标头 但
  • 在哪里可以找到 iPhone 上的 Quartz 2D 绘图示例?

    我将使用 Quartz 在 Iphone 中开发 2D 游戏 Quartz 和 QuartzCore 之间的主要区别是什么 我在互联网上搜索了很多 但只能找到带有 Quartz Examples 的 MAC OS 如果任何机构有任何使用 I
  • 如何使用具有该属性名称的字符串变量访问对象属性?

    我如何在 C 中执行此操作 using System namespace TestProperties28373 class Program static void Main string args Customer customer ne
  • 查询数组大小大于1的文档

    我有一个 MongoDB 集合 其中包含以下格式的文档 id ObjectId 4e8ae86d08101908e1000001 name Name zipcode 2223 id ObjectId 4e8ae86d08101908e100
  • 如何为 CSS 自定义属性设置“inherit”值? [复制]

    这个问题在这里已经有答案了 将自定义属性设置为值inherit完全符合您对其他所有 CSS 属性的期望 它继承其父级的相同属性值 普通财产继承