【问题标题】:Use a DIV as a background for another element使用 DIV 作为另一个元素的背景
【发布时间】:2014-09-22 09:31:45
【问题描述】:

如果我有一个包含图像和文本的div,是否可以将此div 的内容用作section 的背景?

例如,类似的东西:

HTML:

<section id="sec1">
    <div id="bg-div">
        <em>This is a background</em>
        <img src="image1">
        <img src="image2">
    </div>
</section>

还有 CSS:

#sec1 {
    background: src(#bg-div);
}

这样,我可以让这个div 内容充当我section 的背景。

【问题讨论】:

  • 你的问题很模糊。您希望 bg-div 和部分共享相同的背景吗?
  • 我认为 OP 想使用像图像这样的 div 作为另一个 div 的背景?
  • 为什么要做这样的事情:P?你不能的简短回答
  • @srekoble:我正在尝试使用 Skrollr.js 来使用视差效果。 div 的内容旨在充当视差背景,而 sections 是正常的“色带”,这就是我想这样做的原因。
  • 这可能对你有帮助:stackoverflow.com/questions/13501419/…

标签: html css background background-image


【解决方案1】:

这里我用 2 个 div 做了一个例子:

  • .content 包含前端所需的一切
  • .background - 在背景中包含文本、图像和其他所有内容

要将一个 div 覆盖在另一个 div 上(制作覆盖),您必须将它们放入同一个元素中,在本例中为 #wrapper div。放置位置:包装器的相对和宽度/高度; position: relative 也应该为您的内容 div 和 position: absolute 设置;顶部:0;左:0;为你的背景。

最后一步是设置 z-index。 z-index 中包含较大值的元素呈现在 z-index 值较小的元素上方。换句话说,您应该将背景 div 的 z-index 设置为比内容 div 小。

最终的 HTML:

<div id="wrapper">
    <div class="content">    
        <p>This text is in frontend</p>
    </div>
    <div class="background">
        <p>Background text</p>
        <img src="http://nuclearpixel.com/content/icons/2010-02-09_stellar_icons_from_space_from_2005/earth_128.png" alt="background" />
        <img src="http://upload.wikimedia.org/wikipedia/en/0/0c/IrfanView_Logo.png" alt="background 2" />

    </div>
</div>

最终 CSS:

#wrapper{
    position: relative;
    width: 200px;
    height: 200px;
}

.content{
    color: #FFFFFF;
    font-size: 26px;
    font-weight: bold;
    text-shadow: -1px -1px 1px #000, 1px 1px 1px #000;
    position: relative;
    z-index: 100;
}

.background{
    color: #999999;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -100;
}

查看实时示例:

http://jsfiddle.net/1fevoyze/

【讨论】:

  • 谢谢,我在position: fixed; 中使用了.background 元素的方法,它适合我对Skrollr.js 和视差的需求。它真的像一个背景元素。 (虽然定位仍然很痛苦)
【解决方案2】:

使用 CSS element() 函数。见https://developer.mozilla.org/en-US/docs/Web/CSS/element。目前仅在 -moz-element 前缀下的 FF 中可用。示例:

<div style="width:400px; height:100px; background:-moz-element(#backgroundElt);">

另一种方法是使用 SVG 的 foreignObject 标签,将要用作背景的元素的 HTML 克隆到其中。

规格在http://dev.w3.org/csswg/css-images/#element-notation

【讨论】:

  • 虽然 CSS element() 函数是我一直在寻找的,但事实证明它并没有像预期的那样运行,而且它只适用于 Firefox。你能告诉我更多关于foreignObject标签的信息吗?我不熟悉 SVG。
  • 只是出于好奇,结果如何不符合预期?
猜你喜欢
  • 1970-01-01
  • 2020-12-30
  • 1970-01-01
  • 2020-10-05
  • 2016-11-02
  • 1970-01-01
  • 2018-04-23
  • 1970-01-01
  • 2014-03-08
相关资源
最近更新 更多