我希望我的博客容器从页面整体上有一个单独的背景。但是,它将wood.png作为背景而不是bg.png。 我正在使用以下内容:
CSS
body {
background: url('img/bg.png') repeat;
}
.above {
background: url('img/wood.png') repeat;
width: 100%;
}
#blog-header {
background: url('img/wood.png') repeat;
height: 160px;
width: 100%;
text-align: center;
}
#blog-container {
background: url('img/bg.png') repeat;
margin: 0 auto;
width: 960px;
}
#blog {
float: left;
margin-top: 80px;
position: relative;
width: 620px;
}
HTML / PHP
<body>
<div class="above">
<div id="blog-header">
<div class="logo">
<a href="<?php bloginfo('url'); ?>"><img src="<?php echo get_template_directory_uri(); ?>/img/logo.png" alt="Urban Palate logo" id="logo" /></a>
</div><!-- end logo -->
<nav>
<ul>
<li><a href="/?page_id=7"><img src="<?php echo get_template_directory_uri(); ?>/img/about.png" alt="Urban Palate intro" /></a></li>
<li><a href="/?page_id=12"><img src="<?php echo get_template_directory_uri(); ?>/img/portfolio.png" alt="Urban Palate portfolio" /></a></li>
<li><a href="/?page_id=15"><img src="<?php echo get_template_directory_uri(); ?>/img/blog.png" alt="Urban Palate blog" /></a></li>
<li><a href="/?page_id=10"><img src="<?php echo get_template_directory_uri(); ?>/img/contact.png" alt="Urban Palate contact" /></a></li>
</ul>
</nav>
</div><!-- end blog-header -->
<div id="blog-container">
<div id="blog">
<div id="post">
//content
</div><!-- end post -->
</div><!-- end blog -->
</div><!-- end blog-container -->
任何可能导致问题的想法?
ETA:JSFiddle
答案 0 :(得分:1)
如果一个元素包含浮动元素,那么包装元素需要overflow:auto
或clear:both;
来获得为其添加背景所需的高度。
在您的情况下,您可以将overflow:auto
或clear:both
添加到#blog-container
,也可以将其添加为单独的类,如下所示:
这里有一些很好的行可以用来为你的css添加一个clearfix声明,你可以将该类添加到任何包含浮动元素的元素中:
/*
* Clearfix: contain floats
*
* For modern browsers
* 1. The space content is one way to avoid an Opera bug when the
* `contenteditable` attribute is included anywhere else in the document.
* Otherwise it causes space to appear at the top and bottom of elements
* that receive the `clearfix` class.
* 2. The use of `table` rather than `block` is only necessary if using
* `:before` to contain the top-margins of child elements.
*/
.clearfix:before,
.clearfix:after {
content: " "; /* 1 */
display: table; /* 2 */
}
.clearfix:after {
clear: both;
}
/*
* For IE 6/7 only
* Include this rule to trigger hasLayout and contain floats.
*/
.clearfix {
*zoom: 1;
}
clearfix取自:Html5Boilerplate
这是一个非常好的问题,谈论clearfix差异:which method of clearfix is best(检查答案二)
答案 1 :(得分:0)
您可能需要在身体上设置一些填充(或将div宽度设置为95%而不是100%)。看起来div会占据屏幕的整个宽度。