当我将background-attachment: fixed
设置为一组浮动元素的属性时,background-position
无法正常工作。如果我将值正常设置为' left top
',它只能正确定位元素的左列。如果我将其设置为&{39; center
',则只有中心列中的图像可见,等等。只有将其设置为正常行为的方法是将图像的偏移量添加到{{ 1}},或者增加background-position-x
,但我不想要那样。有什么想法吗?
这是我的CSS:
background-size
答案 0 :(得分:1)
一种可能的解决方法是将背景重复设置为repeat
,并使背景图像与浮动元素及其边距完全一样大。
.element {
float: left;
margin: 10px;
width: 300px;
height: 300px;
background-position: left top;
background-attachment: fixed;
background-repeat: repeat;
background-size: initial;
background-image: url(http://lorempixel.com/320/320/animals/5);
}

<div class="element">div 1</div>
<div class="element">div 2</div>
<div class="element">div 3</div>
<div class="element">div 4</div>
<div class="element">div 5</div>
<div class="element">div 6</div>
<div class="element">div 7</div>
&#13;
这种方法的缺点是它有许多限制:
如果有效,那好吧!否则,我很高兴看到这个问题能得到更好的答案。
答案 1 :(得分:0)
您可以尝试将元素包装在&#34; clearfix&#34;类:
<强> CSS:强>
.clearfix:after {
visibility: hidden;
display: block;
content: "";
clear: both;
height: 0;
}
* html .clearfix { zoom: 1; } /* IE6 */
*:first-child+html .clearfix { zoom: 1; } /* IE7 */
更清晰的信息here。
&#34; clearfix是元素自动清除其子元素的一种方式,因此您不需要添加额外的标记。它通常用于浮动布局,其中元素浮动以水平堆叠。 clearfix是一种解决浮动元素的零高度容器问题的方法。&#34; Dec 18, 2011 - StackOverflow
<强> HTML:强>
<div class="clearfix">
<div class="element"></div>
</div>
您也可以将元素包装在浮动内:
<强> CSS:强>
.element-wrap {
float: left;
}
.element {
margin: 10px;
width: 300px;
height: 300px;
background-position: left top;
background-attachment: fixed;
background-repeat: no-repeat;
background-size: initial;
background-image: url(...);
}
<强> HTML:强>
<div class="element-wrap">
<div class="element"></div>
</div>