css3多背景图片-定位约束混淆

Posted

技术标签:

【中文标题】css3多背景图片-定位约束混淆【英文标题】:css3 multiple background images - positioning constraint confusion 【发布时间】:2011-11-19 17:12:40 【问题描述】:

在 CSS 中,我们一直能够利用块模型的思想为边框、圆角等创建整个“顶部-中间(平铺)-底部”效果。例如..

#top  background-image: url('some-top-image.jpeg'); 
#middle  background-image: url('some-middle-image-that-tiles.jpeg') repeat-y; 
#bottom  background-image: url('some-bottom-image.jpeg'); 

<div id="top"></div>
<div id="middle"><!-- tons of content here --></div>
<div id="bottom"></div>

不是完全有效的代码,但无论如何它说明了这个概念。

我想知道是否有办法将这种逻辑封装到 CSS3 以单一样式处理多个背景图像的新能力中。这样..

.content 
   background: 
           // top image - top positioning
           // middle image - tiling, offset from top
           // bottom image - bottom positioning

<div class="content"><!-- Lots of Content --></div>

我试图只输入估计值,但它似乎不像我预期的那样出现。我想知道是否有更多经验的人可以告诉我这是否可以做到,以及是否有任何已知的例子。

【问题讨论】:

【参考方案1】:

指定顶部和底部图像及其位置,然后是中间的:

.content 
    background: url('some-top-image.jpeg') top no-repeat, 
                url('some-bottom-image.jpeg') bottom no-repeat, 
                url('some-middle-image-that-tiles.jpeg') repeat-y;

中间的平铺图像是最后声明的,这样顶部和底部的图像就会叠加在它上面。多个背景图像的分层是从上到下完成的。有关更多信息,请参阅背景和边框模块的 §3.1 Layering multiple background images。

【讨论】:

+1...什么?嗯……不错。但是如果我们有透明/不透明的 .png 图像……这可能是个问题,对吧?而且......我们不是在急于采用这种极端的 CSS3 规范,而 IE 还在我们的背后? @roXon:是的,这会有点问题。我在this answer 中描述了一个小技巧,可以根据情况使用... +2..... :D CSS3 变得如此强大。但是……博尔特……记住,“权力越大,责任越大” :D @roXon:其实我也有同样的心态“不要使用 CSS3,因为它还没有完成,因为它还没有完成”,但是背景和边框模块现在已经是一个 CR,所以除非你需要迎合某些浏览器我想你可以摆脱这样的事情。 对。 $('input[type="button"]').click(function() $(Wwide_IE).remove(); );

以上是关于css3多背景图片-定位约束混淆的主要内容,如果未能解决你的问题,请参考以下文章

使用 CSS3 动画会破坏页面中所有元素的固定背景定位

CSS3丨教你用CSS实现多种背景

CSS3实现多种背景效果

css3新特性

为啥 CSS3 右对齐背景图片出现在错误的位置?

css3简易总结