如何仅覆盖多个背景图像声明中的第二个图像?

2024-02-02

如何利用级联仅覆盖多个背景图像声明中的第二个图像?

我已经指定了一个标准样式lis,有两个背景图像(小猫和右侧的鱼)。我还指定了一个样式li.secondary我只想更改两个背景图像中的第二个:

li { 
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAeCAYAAAA/xX6fAAAA/ElEQVR42q2WYQ3DIBSE5wAJk1AJSKiESpiESakEJCChEpAwCW/vJSw0LPQoHMn3A0q5R7leeIjIFNo2JSm+Zz5DSAy6oLan8lKiIjV5fGu8u+TnrkfIKftpUQGks3Au8qNE6yOx1Sb/xPJYyH3EURW4QsHGZ5NB3K0dDpDwDvEZysAZvvP4znVpwTVcmrAgLsLX/yXhP+xfrOyuza00sbFZ7p5TAGlyYMF/J4axNClOvKKVJnEmTa6gpgkSM0Ca8HdITxOiSwuzLjVoAUAUxIWQBXESMQTpSWQd4r0GuxiJsZPII0F6EnUZg5hES7dZWEkExPj3GiDCv9d8AVEGli2R88rKAAAAAElFTkSuQmCC) repeat-y 90% center,
  #CCC url("http://placekitten.com/275/300") repeat right center;
  margin: 1em;
  padding: 1em;
  color: #FFF;
  font-weight: bold;
 }

li.secondary {
  background: #CCC url("http://placekitten.com/325/300") repeat left 10%;
}

JSFiddle:http://jsfiddle.net/KatieK/9zcnp/1/ http://jsfiddle.net/KatieK/9zcnp/1/

但新的声明background:吹掉第一个背景图像(鱼)。如何仅处理级联规则中的第二个背景图像?


不幸的是,级联的工作方式使得不可能在不重复每个声明中的其余层的情况下覆盖各个背景层。

一般来说,cascade http://www.w3.org/TR/CSS21/cascade.html#cascade在每个声明的基础上工作,其中每个宣言 http://www.w3.org/TR/CSS21/syndata.html#declaration仅由一个属性和一个值组成:

/* Declaration */
property: value;

A comma-separated list of background layers counts as a single value for the purposes of the cascade, which is why your second background declaration completely overrides the first.1

While background is a shorthand for several other properties, it is not a shorthand for individual background layers, as they do not have their own properties. Since individual layer properties don't exist, you cannot use the cascade to override only certain layers while keeping the rest.2

这也是分层背景中的前缀渐变如此冗长和重复的原因。对我们来说不幸的是,这是 CSS 语法的限制,因此单独使用 CSS 无法做太多改进或解决它。


1 This is similar to why a shorthand declaration like background: #ccc will delete an image that was previously declared using background-image (examples 1 https://stackoverflow.com/questions/8686656/does-this-shorthand-for-background-removes-the-other-attributes/8686661#8686661 and 2 https://stackoverflow.com/questions/10455465/why-cant-i-seem-to-use-background-clip/10455580#10455580).

2 A notable exception to this is background-color, because for any given box there is only one background color, which is always painted in the bottommost layer beneath the image in that layer. You can set background-color to a single value at a time anywhere in a rule, and it will not affect other layers.

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

如何仅覆盖多个背景图像声明中的第二个图像? 的相关文章

随机推荐

  • Java - 等待第三方线程完成

    我有一个线程将运行第三方库 该第三方库也将运行自己的线程 当我的线程的 run 方法完成时 第三方线程还没有完成 那么 在这些外部线程仍在运行之前保持线程的最佳方法是什么 If你是一个应用程序 不必担心SecurityManager的限制
  • 使用按位运算将 Int 转换为 Float 或 Float 转换为 Int(软件浮点)

    我想知道您是否可以帮助解释将整数转换为浮点数或将浮点数转换为整数的过程 对于我的课程 我们将仅使用按位运算符来完成此操作 但我认为对从类型到类型的转换的深入理解将在这个阶段对我有更多帮助 据我所知 到目前为止 对于 int 到 float
  • 捕获 VPN 使用统计数据

    我们正在使用 NET 2 0 中的 NetworkInterface GetIPv4Statistics 来监视网络接口的使用统计信息 这不会报告 VPN 流量通过隧道传输的连接的正确统计信息 相反 对于 Cisco VPN 客户端 其使用
  • 编译器优化掉的变量

    我开始调试一些代码试图找出我的错误 当我尝试p tlEntries从调试器我得到
  • 将 decltype 与成员函数指针结合使用

    我使用时遇到一些问题decltype对于成员函数指针 include
  • 转义 findstr 搜索字符串中的引号

    使用 findstr exe 时如何正确转义搜索字符串中的引号 Example findstr misc namespace cs gt ns txt 这会输出到控制台 而不是我指定的文件 我直接在命令行上执行此操作 而不是实际上在批处理文
  • 在 NHibernate 中删除对象时,“not-null 属性引用 null 或瞬态值”

    我创建了一个 MVC 4 并使用 NHibernate 来持久化模型并使用 Fluent nhibernate 映射它 该实体有一个 Name 属性 并按如下方式映射 Map x gt x Name Not Nullable Length
  • Cocoapods Firebase Pod 更新

    早上好 我在更新 Firebase Analytics 和 Firebase Core pod 时遇到问题 我的 Pod 文件 source https github com CocoaPods Specs git source https
  • 写入易失性变量后会发生什么?

    我想知道写入易失性变量是否会强制jvm将所有非易失性变量同步到内存 例如 以下代码中会发生什么 volatile int x int y y 5 x 10 x 将被写入内存 但是 y 会发生什么 它也会被写入内存吗 是的 根据规则Java
  • 使用多列交叉应用动态 SQL 逆透视数据

    微软 SQL Server Management Studio v18 8 我有一个表 其中有不同的列和列名称 我需要对数据进行逆透视 以便最终可以将其存储到另一个表中 不幸的是 这是一个过程 因为原始表格是从 Google 表格中提取的
  • 如何减慢动画播放速度?

    我有动画矩形jsFiddle 演示 http jsfiddle net kHvaX 如何减慢动画速度并使其更稳定 我尝试使用循环延迟 但延迟循环和 requestAnimationFrame 之间存在冲突 我不想改变参数window set
  • 使用 java 查询 MySQL 数据库

    伙计们 简单地说 我有一个带有文本输出框的java应用程序 我想查询数据库并将输出显示到文本框中 示例我有一个包含两列的数据库food and color 我想 SELECT in Table WHERE color blue 有什么建议么
  • 为什么我的 tempdb 在服务器重新启动时会重置权限?

    过去两次我们重新启动 SQL Server 我们的网站就瘫痪了 原因似乎是因为 tempdb 正在重新创建 并且 ASPState 用户失去了读 写 tempdb 的权限 它是 ASP 站点 会话数据存储在 sql server 中 直到大
  • 编写 jax-ws Web 服务并生成 WSDL,无需 XSD

    我在java上为tomcat应用程序服务器编写了一个简单的JAX WS Web服务 我有一个接口和实现类 界面 WebService name myWs SOAPBinding style Style RPC public interfac
  • R:不同日期的栅格图层之间的插值

    假设我有 4 个具有相同扩展的栅格图层 其中包含 4 个不同年份的数据 2006 2008 2010 和 2012 library raster r2006 lt raster ncol 3 nrow 3 values r2006 lt 1
  • 如何在rhino javascript中将对象属性添加到全局对象

    我想将对象中的一些属性添加到全局命名空间中 在浏览器上的 javascript 中 我可以将其添加到window像这样的对象 var myObject foo function alert hi and many more properti
  • jQuery 仅在第二次单击时工作

    谁能指出为什么我在第一次单击时无法弹出警报的问题 它仅在每秒一次点击时起作用 即 在奇数点击时不起作用 在偶数点击时起作用 HTML div class slider div class slider box ui slider ui sl
  • 将数组写入 Excel 范围

    我目前正在尝试使用以下代码将数据从对象数组写入 Excel 中的范围 其中objData只是一个字符串数组 private object m System Type Missing object objData getDataIWantTo
  • JavaScript Lint inc_dec_within_stmt 警告

    有人可以解释 javascriptlint 不是 jslint 发出警告的原因 重要性吗 inc dec within stmt increment and decrement operators used as part of great
  • 如何仅覆盖多个背景图像声明中的第二个图像?

    如何利用级联仅覆盖多个背景图像声明中的第二个图像 我已经指定了一个标准样式lis 有两个背景图像 小猫和右侧的鱼 我还指定了一个样式li secondary我只想更改两个背景图像中的第二个 li background url data im