【问题标题】:Can I set two background images on the same element with CSS?我可以使用 CSS 在同一个元素上设置两个背景图像吗?
【发布时间】:2010-05-29 10:10:02
【问题描述】:

示例 HTML 代码:

<table>
<tr>
 <td class="a b">

示例 CSS 文件:

.a
{
  background-image:url(a.png);
}

.b
{
  background-image:url(b.png);
}

似乎忽略了“b”部分。

有没有办法将两个图像包含在同一个单元格中,即使使用其他技术?

【问题讨论】:

  • 更准确的标题可能是“我可以在同一个元素上设置 2 张背景图片吗?”

标签: html css


【解决方案1】:

现在您可以使用 CSS3。 http://www.zenelements.com/blog/css3-background-images/

#my_CSS3_id {
background: url(image_1.extention) top left no-repeat,
url(image_2.extention) bottom left no-repeat,
url(image_3.extention) bottom right no-repeat;
}

【讨论】:

    【解决方案2】:

    你可以这样做:

    <td class="a"><div class="b">...</div></td>
    

    那么td 将具有第一个背景,而其中的div 将具有第二个背景。如果一个是透明的,另一个将显示出来。我认为b.png 会排在首位,但我不确定。

    【讨论】:

    • b 确实位居榜首。孩子的 z-index 优先于他们各自的父母。
    【解决方案3】:

    这是一个有趣的想法,但想想其他属性是如何工作的,例如颜色。

    .a { color: red; }
    .b { color: blue; }
    

    文本怎么可能既是red又是blue?在这种情况下,蓝色赢得了决胜局,因为它是稍后指定的。

    如果你可以创建一个图像 ab.png,它是 a.png 和 b.png 组合的结果,可能还有另一种方法。

    .a { background-image(a.png) }
    .b { background-image(b.png) }
    .a.b { background-image(ab.png) }
    

    警告:它在 IE6 中不起作用。

    【讨论】:

    • 您可以使用 IE7-js (code.google.com/p/ie7-js/) 使其在 IE6 中运行
    【解决方案4】:

    不,background-image 的每个声明都将替换/覆盖给定元素的前一个声明。您需要为要应用的每个其他背景嵌套一个元素。如果您尝试为元素应用精美的边框,CSS3 中有一些新的边框属性,但它们并未得到广泛支持。

    【讨论】:

      【解决方案5】:

      这样的事情可能会奏效:

      <table>
      <tr>
        <td class="a">
          <div class="b">
      

      和css:

      .a
      {
        background: url(a.png) top left no-repeat;
      }
      
      .b
      {
        background: url(b.png) top right no-repeat;
      }
      

      将 div 设置得足够宽,您会看到一张图片漂浮在左上角,另一张图片漂浮在右上角

      【讨论】:

        【解决方案6】:

        您不能将两个图像都作为单元格的背景图像。您需要制作 2 个单元格或将图像作为 &lt;img ... /&gt; 标记放在单元格内。还有一些浏览器在阅读 class="a b c" 类定义时遇到问题。

        【讨论】:

        • ... 哪个浏览器对 b c 类定义有问题? IE 4.0?
        • IE6 在某些情况下。见:ryanbrill.com/archives/multiple-classes-in-ie
        • 根据那篇文章,IE6支持class="a b c"就好了。它不支持的是仅适用于具有特定类名组合的元素的 CSS 选择器。但是我们已经知道 IE6 的 CSS 支持在 21 世纪是可笑的
        猜你喜欢
        • 2012-11-10
        • 1970-01-01
        • 2023-02-08
        • 1970-01-01
        • 2012-01-08
        • 2011-11-11
        • 2022-09-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多