【问题标题】:Align div background with that of its parent将 div 背景与其父级对齐
【发布时间】:2012-12-04 12:15:04
【问题描述】:

我希望有一个带背景的 div,并且在其中有更多 div,它们的背景会在父背景上应用一些过滤器。由于对过滤器的支持不完全在这里,我想我将创建过滤后的图像,然后设置子级的background-position 属性,使背景与父级对齐。在 jQuery 中,我可以这样写:

$this.css('background-position', -$this.offset)

不使用 JavaScript 也能实现这个效果吗?通过将子背景设置为fixed,我几乎可以得到我想要的,但我当然不希望它们固定到视口,我希望它固定到父级。

为了给你一个更好的主意,这是我在 Gimp 中制作的一个快速模型:

编辑:我创建了JSFiddle,背景为fixed

【问题讨论】:

  • +1。好问题。 @martin 你能为此创建一个 JSFiddle 吗?那么它应该会吸引更多的眼球......
  • 只是具体一点.. 您是否正在寻找仅 HTML4 的解决方案?由于 HTML5 确实提供了可以执行上述操作的过滤器..
  • 假设它是 HTML4 解决方案。 OTOH,即使是 HTML5 过滤器也有其局限性。如果第二张图片是一些花哨的 Photoshop 滤镜,比如 Edge detection 或 Posterize,那么您将很难使用 CSS 滤镜复制该外观。此外,它可能会影响性能,而加载两个图像很简单,并且让我可以完全控制用户看到的内容。
  • @KentPawar 过滤什么?我会对此感兴趣;编辑:我明白了,那些在 webkit nightly 中可用。

标签: html css html4


【解决方案1】:

仅使用 CSS 是不可能做到这一点的。 节省一些时间,并寻找替代解决方案

另见:

【讨论】:

    【解决方案2】:

    您需要创建一个透明的 png 图片(以及此蓝紫色),并将此图片作为背景图片提供给孩子们。 然后你需要用 margin:auto 使孩子居中。

    它应该工作! 希望我理解正确.. :)

    对不起我的英语不好.. 祝你好运!

    【讨论】:

    • 你也可以给孩子们背景色和不透明度..w3schools.com/css/css_image_transparency.asp
    • 显然,如果我确切知道我有多少个子 div 以及在哪里,我会这样做。但是,我正在寻找更通用的解决方案。假设 div 中的文本是一些新闻提要:我无法为每个新 div 创建自定义背景。
    • 更改背景颜色透明度只会给我带来色彩色调。我想要一个更复杂的过滤器(想想反转,或色调偏移或类似的东西)。
    • 我不明白,你为什么要知道你有几个孩子?!创建一个 1X1 png 背景并使用背景重复...
    • 或者你也可以使用 background-size:100% (仅在 css3 中)
    猜你喜欢
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 2022-12-17
    相关资源
    最近更新 更多