为什么父div的背景中的图像没有填充子div?
问题在于:
.sub
{
border: 1px dashed #f00;
padding: 5px;
background:url('http://jpdevtest.com/vandermill/images/home-page-background.jpg') no-repeat;
background-size: 100%;
}
.subtext
{
float: left;
width: 300px;
height: auto;
border: 1px dashed #0f0;
}
.homeimage
{
float: right;
width: 300px;
height: auto;
border: 1px dashed #0f0;
}
谢谢!
答案 0 :(得分:4)
.subtext
和.homeimage
已浮动,不再处于正常流程中,导致其容器忽略它们而不是与它们一起成长。
您可以添加overflow: auto;
以在.sub
.sub {
border: 1px dashed #f00;
padding: 5px;
background:url('http://jpdevtest.com/vandermill/images/home-page-background.jpg') no-repeat;
background-size: 100% 100%;
overflow: hidden;
}
答案 1 :(得分:1)
你必须清除漂浮物。两个选项:
clear: both
添加元素:<div class="clr"></div>
clearfix
类:.clearfix:before,
.clearfix:after {
content: "";
display: table;
}
.clearfix:after {
clear: both;
}
/* For IE 6/7 */
.clearfix {
zoom: 1;
}
答案 2 :(得分:0)
问题是必须清除浮动元素以使父元素完全包含浮动的子元素。尝试将overflow:hidden
添加到您的.sub
规则中。
答案 3 :(得分:0)
添加溢出:隐藏在父div
上.sub
{
overflow:hidden;
}
你浮动内部div,所以它们被拉出外部div的渲染上下文。你也可以:
- 浮动外部div
- 使用style='clear:both;display:block'
答案 4 :(得分:0)
这是因为.sub
个孩子都浮动。所以你需要 clearfix 。
一种解决方案是向overflow
元素添加.sub
,其值不是visible
:
.sub { overflow: hidden; }
另一个解决方案是在所有孩子之后添加一个clear: both;
样式的元素:
<div class="sub">
<div class="subtext"></div>
<div class="homeimage"></div>
<div style="clear: both;"></div>
</div>