【发布时间】:2013-10-25 19:14:30
【问题描述】:
我有一个像这样的内联 css 样式的 html:
<div class="bgdiv" style="background: url('http://wallpaper.pickywallpapers.com/1366x768/colorful-circles-and-drops.jpg') local center center no-repeat transparent;
background-size:100% 100%;
width: 400px;height:400px"> I am some dummy text. </div>
正确呈现,但如果我通过 javascript 将 div 的高度更改为500px,它会分解成这样的几个背景组件
$(document).ready(function () {
$('.bgdiv').css('height', '500px');
});
最终/输出内联 css 样式:
background-image: url(http://wallpaper.pickywallpapers.com/1366x768/colorful-circles-and-drops.jpg);
background-attachment: local;
background-color: transparent;
background-size: 100%;
width: 400px;
height: 500px;
background-position: 50% 50%;
background-repeat: no-repeat no-repeat;
如果你注意到我申请了background,但现在是background-image,最大的问题是background-size:100%,但是我申请了background-size:100% 100%,这是出乎意料的,我不希望它改变。
这里是演示http://jsfiddle.net/pu7WR/1/
请检查以查看 css 中的更改。我不确定这是否是预期的行为,但background-size:100% 正在破坏我希望它成为background-size:100% 100%
注意:我不能在这里使用类。而且我知道,我可以在更新高度后更改background-size。
但是为什么会这样呢?为什么它首先要更新?
让我知道我可以提供更多详细信息。 (我会尝试为问题提供更好的标题)
【问题讨论】:
-
background-size属性缩短为100%,因为它对于两个维度的值相同。与100% 100%相同。我不明白这里的问题是什么? -
@Rory McCrossan:实际上,
100%与100% 100%不同。100%对应的是100% auto,这是不同的。见w3.org/TR/css3-background/#the-background-size -
@BoltClock 我同意你的看法。在某些情况下会导致问题,当您动态更改高度/宽度时,背景不会拉伸以填充该区域。
-
@BoltClock 你是对的。我假设它的工作方式与
margin等相同。如果提供了一个值,它将被赋予所有维度。
标签: javascript jquery html css