29

我将图像设置为 div 的背景图像。DIV 大小正在变化,它们内部是渐变的图像。

CSS:

#scroller_shadow{
    background-image:url(../img/ui/shadow.png);
    background-repeat:repeat-x;   
    background-position:top;
}

我需要一个跨浏览器解决方案来使图像仅在 y 轴上适合 div 的高度,并保持重复 x。DIV 正在通过 JQuery 动态调整大小。

它们可能是使用 JQuery 的跨浏览器选项。我不介意使用脚本来实现这一点以获得跨浏览器支持(IE7+)。我不想拉伸图像,因为当您在 x 轴上拉伸图像时它会失去强度,从而使半透明的 png 图像几乎透明。

谢谢。

4

2 回答 2

59

我也有这个问题。在大多数浏览器中这很容易,但在 IE8 及以下浏览器中却很棘手。

现代(非 IE8 及以下)浏览器的解决方案:

#scroller_shadow {
    background: url(../img/ui/shadow.png) center repeat-x;
    background-size: auto 100%;
}

有一些 jQuery 插件可以模拟 IE8 及以下版本的背景大小,特别是backgroundSize.js,但如果你想让它重复,它就不起作用。

无论如何,因此开始了我可怕的黑客攻击:

<div id="scroller_shadow">
    <div id="scroller_shadow_tile">
        <img src="./img/ui/shadow.png" alt="" >
        <img src="./img/ui/shadow.png" alt="" >
        <img src="./img/ui/shadow.png" alt="" >
        ...
        <img src="./img/ui/shadow.png" alt="" >
    </div>
</div>

确保包含足够<img>的 's 以覆盖所需的区域。

CSS:

#scroller_shadow {
    width: 500px; /* whatever your width is */
    height: 100px; /* whatever your height is */
    overflow: hidden;
}

#scroller_shadow_tile {
    /* Something sufficiently large, you only to make it unreasonably wide if the width of the parent is dynamic. */
    width: 9999px;
    height: 100%;
}

#scroller_shadow_tile img {
    height: 100%;
    float: left;
    width: auto;
}

无论如何,这个想法是从图像中创建拉伸效果。

JSF中。

于 2013-03-01T17:12:30.483 回答
0
background-position: left top;
background-repeat-y: repeat;
background-size: 100%;
于 2021-08-20T10:23:45.863 回答