javascript - 如何继承祖 parent CSS而不是 parent ?

标签 javascript jquery css background background-image

我觉得这不可能,但我还是想问问。

<body>                  //body uses 'back' background
<div id="div1">         //div1 uses 'front' background
   <div id="child1">    //child1: no backgrounds, so shows 'front' background
   </div>
</div>
</body>
  • 我的 body 元素使用背景图片。 (我将其称为back 背景图片)
  • div1 使用不同的背景图片(我将其称为 front 背景图片),因此 front 背景图片覆盖了主要背景图片。
  • div1 包含一个不使用任何背景图像的子 div child1,因此它只显示其父级的背景图像,即它显示 front 背景。

我希望 child1 使用 body 的背景,而不是其父级 div1 的背景。由于 back 背景的性质(它是绘图,而不是重复图案),我不能只将 back 背景图像应用于 child1。我实际上需要一种方法在 div1 的背景中打一个洞,以便 child1 获得 back 背景图像作为其背景,而不是它的 parent 的背景。

所以我的问题是:div 是否可以继承其祖 parent 的背景,而不是其 parent 的背景?

如果 CSS 无法做到这一点,我愿意接受 javascript 解决方案。

最佳答案

这将使用 javascript 和 jQuery:

CSS

body {
   background: url("Background 1");
}
#div1 {
   background: url("Background 2");
}
#child1 {
   background: url("Background 1");
}

JS

$(function() {

  function positionBackground() {

     var myChild1   = $("#child1");
     myChild1.css({
        backgroundPosition : "-" + myChild1.offset().left + "px -" + myChild1.offset().top + "px"
     });
  }

  positionBackground();

  $(window).resize(positionBackground);
});

这是 fiddle :http://jsfiddle.net/gMK9G/

关于javascript - 如何继承祖 parent CSS而不是 parent ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18543810/

相关文章:

javascript - 如何在未定义上使用/控制错误传播运算符

javascript - 在javascript中一个接一个地调用同一个onclick事件的两个不同函数

javascript - 在元素中查找未包裹在 html 标签中的文本,并用 <p> 包裹它

jquery - 如何启动滑动事件 "manually"?

html - 如何让两个 Bootstrap 列彼此相邻

javascript - twitter-bootstrap-wizard 错误切换步骤只需滚动

javascript - 如何在完成具有 axios 调用的 for/forEach 循环执行后调用语句?

javascript - 如何在php中ajax成功后生成图形?

javascript - 附加到一个不是数组的 JS 对象?

html - 使用 css 垂直对齐文本