Html 合并一个元素的两个类背景图像
我试图将两个类添加到一个元素中,并在其不同的空间中放置两个不同的背景图像。但当我应用另一个类时,它将覆盖第一个类的背景图像。见下文Html 合并一个元素的两个类背景图像,html,css,background,Html,Css,Background,我试图将两个类添加到一个元素中,并在其不同的空间中放置两个不同的背景图像。但当我应用另一个类时,它将覆盖第一个类的背景图像。见下文 <li class="first"> li.first {background:url(images/first.png)no-repeat center top} li.second{background:url(images/second.png)no-repeat right center} li.first{background:url(i
<li class="first">
li.first {background:url(images/first.png)no-repeat center top}
li.second{background:url(images/second.png)no-repeat right center}
li.first{background:url(images/first.png)无重复中心顶部}
li.second{background:url(images/second.png)无重复右中}
所以我想在li元素上应用这两个类时合并这两个背景
<li class="first second">
有什么方法可以做到这一点吗?如果可以控制标记,可以使用如下嵌套元素
li {background:url(images/first.png)no-repeat center top}
li span {background:url(images/second.png)no-repeat right center; width: 100%; height: 100%;}
<li><span></span></li>
li{background:url(images/first.png)无重复中心顶部}
li span{background:url(images/second.png)无重复右中;宽度:100%;高度:100%;}
如果可以控制标记,可以使用如下嵌套元素
li {background:url(images/first.png)no-repeat center top}
li span {background:url(images/second.png)no-repeat right center; width: 100%; height: 100%;}
<li><span></span></li>
li{background:url(images/first.png)无重复中心顶部}
li span{background:url(images/second.png)无重复右中;宽度:100%;高度:100%;}
如果在同一个元素上有两个类,则第二个类总是具有更高的优先级并重写第一个类
您应该使用CSS3多个背景图像来实现以下效果:
li.multi-bg{
background-image: url(images/first.png), url(images/second.png);
background-position: center bottom, left top;
background-repeat: no-repeat;
}
如果在同一元素上有两个类,则第二个类总是具有更高的优先级并覆盖第一个类 您应该使用CSS3多个背景图像来实现以下效果:
li.multi-bg{
background-image: url(images/first.png), url(images/second.png);
background-position: center bottom, left top;
background-repeat: no-repeat;
}
如果“合并”是指希望应用两个背景图像,则可以使用CSS 3背景图像来实现这一点。我发现这是一个非常好的资源来使用它
请注意,与更新的CSS功能一样,浏览器支持并没有那么广泛。上面的页面列出了浏览器支持,如下所示:
Firefox从版本3.6(Gecko 1.9.2)开始支持多种背景,从版本1.3开始支持Safari,从版本10开始支持Chrome,从版本10.50开始支持Opera(Presto 2.5),从版本9.0开始支持Internet Explorer
BG映像的基本实现方式很简单:
.someElement {
background: url(x.png) 0 0 repeat-x, url(y.png) 10 10 no-repeat;
}
如果“合并”,您的意思是希望应用两个背景图像,您可以使用CSS 3背景图像来实现这一点。我发现这是一个非常好的资源来使用它
请注意,与更新的CSS功能一样,浏览器支持并没有那么广泛。上面的页面列出了浏览器支持,如下所示:
Firefox从版本3.6(Gecko 1.9.2)开始支持多种背景,从版本1.3开始支持Safari,从版本10开始支持Chrome,从版本10.50开始支持Opera(Presto 2.5),从版本9.0开始支持Internet Explorer
BG映像的基本实现方式很简单:
.someElement {
background: url(x.png) 0 0 repeat-x, url(y.png) 10 10 no-repeat;
}
我可以想出两种方法 您可以不将第二个背景添加到元素本身,而是添加到绝对定位的伪元素,以使其完全覆盖
li
。但是,如果您希望对三个以上的类和背景执行此操作,则此方法不起作用,因为您只能有两个伪元素(:before
和:after
)
或者,您也可以简单地将第一个背景添加到第二个类中
在这两种情况下,HTML都类似于:
<li class="first second"></li>
。。。在第二种情况下:
li {
background-repeat: no-repeat;
background-size: 50%;
}
.first {
background-image: linear-gradient(rgba(102,37,93,.95) 50%, transparent 50%);
background-position: 50% 0;
}
.second {
background-image: radial-gradient(rgba(255,255,255,.2), rgba(255,0,0,.9)),
linear-gradient(rgba(102,37,93,.95) 50%, transparent 50%);
background-position: 100% 50%, 50% 0;
}
我可以想出两种方法 您可以不将第二个背景添加到元素本身,而是添加到绝对定位的伪元素,以使其完全覆盖
li
。但是,如果您希望对三个以上的类和背景执行此操作,则此方法不起作用,因为您只能有两个伪元素(:before
和:after
)
或者,您也可以简单地将第一个背景添加到第二个类中
在这两种情况下,HTML都类似于:
<li class="first second"></li>
。。。在第二种情况下:
li {
background-repeat: no-repeat;
background-size: 50%;
}
.first {
background-image: linear-gradient(rgba(102,37,93,.95) 50%, transparent 50%);
background-position: 50% 0;
}
.second {
background-image: radial-gradient(rgba(255,255,255,.2), rgba(255,0,0,.9)),
linear-gradient(rgba(102,37,93,.95) 50%, transparent 50%);
background-position: 100% 50%, 50% 0;
}
你说的合并是什么意思?与此类似(但不是傻瓜)?你说的合并是什么意思?与此类似(但不是傻瓜)?我在问题中提到,我必须使用两个不同的类,然后你应该为不同的背景使用嵌套元素。我在问题中提到,我必须使用两个不同的类,然后你应该为不同的背景使用嵌套元素。我知道在一个类上使用多个背景,但我正在谈论一次在一个元素上合并两个类的背景图像。啊,在这种情况下,我认为你做不到。我知道在一个类上使用多个背景,但我说的是一次在一个元素上合并两个类的背景图像。啊,在这种情况下,我认为你做不到。嗯…,这可能是解决方案之一。。让我试着给你回电话嗯……这可能是解决办法之一。。让我试着和你联系,因为你的答案也是有希望的,但它需要更多的元素,所以我宁愿使用css。然而,我放弃了投票。非常感谢,因为你的答案也是有希望的,但它需要一个更多的元素,所以我宁愿使用css。然而,我放弃了投票。谢谢