Html div宽度100%不起作用

时间:2012-06-25 20:02:03

标签: css html width

我的HTML存在一些问题,所以我发布了代码。

第一个标记是div id="header"。我已经给它100%宽度并给它一个背景图像。

标题内有另一个div id="header-contents"。我希望它集中在页面上,所以我给它一个宽度然后margin:0 auto。它适用于最大尺寸的浏览器,但是当我放大或缩小浏览器宽度大约一半时,标题div的背景在某个点开始消失,并且不会填充100%的宽度。

这是它首先看起来的样子(并且应该总是看起来): intended look http://i49.tinypic.com/3505fnk.png

这是我缩放或调整浏览器大小时的样子: after resize http://i46.tinypic.com/2lqg7r.png

适当的HTML和CSS是什么? 这是代码:

<!DOCTYPE HTML>
<html>
<style>
body
{
    margin:0;
    padding:0;
}
.clear
{
    display:block;
    clear:both;
}
#header
{
    min-height:156px;
    width:100%;
    background-image:url('http://www.webdesignideas.org/images/bellevueBg.gif');
}
#head-contents
{
    width:974px;
    margin:0 auto;
    height:156px;
}
#header ul
{
    margin:85px 23px 0 0;
    float:right;
    list-style-type:none;
}
#header ul li 
{
    display:inline;
}
#header ul li a 
{
    margin-left:46px;
    font-size:19px;
    color:#fff;
    text-decoration:none;
}
#header ul li a:hover ,
#header ul li a.active 
{
    color:#FD7600
}
</style>
<body>
<div id="header">

<div id="head-contents">

<img src="http://t1.gstatic.com/images?q=tbn:ANd9GcRRlklPBeTiVsV7dycvDxqFyrU02d0grYf4rTUqL-2ZzGb8Qvbwimb37HgO" />

<ul>
<li><a href="#" class="active">Home</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>

<div class="clear"></div>

</div>

</div>

</body>

</html>

5 个答案:

答案 0 :(得分:7)

我找到了解决方案:

#header {
  height: 156px;
  min-width: 990px;
  background-image: url('http://www.webdesignideas.org/images/bellevueBg.gif');
  display: block;
}

#head-contents {
  width: 974px;
  margin: 0 auto;
  height: 156px;
}

#header中的最小宽度都是一个问题。 我查看了facebook的登录页面并找到了它。

答案 1 :(得分:4)

Working FIDDLE Demo

您必须将width的{​​{1}}设置为head-contents的{​​{1}}:

min-width

答案 2 :(得分:0)

这是与我合作的样式表:

  body{    
    margin:0;    
    padding:0;
}  
    .clear{    
    display:block;   
    clear:both;
}    
    #header{   
    min-height:156px;  
    display: block;
    width:100%;
    background-image:url('http://www.webdesignideas.org/images/bellevueBg.gif');
}
    #head-contents{    
    width:974px;    
    margin-left:200px;
    height:156px;
}
    #header ul {    
    margin:85px 23px 0 0;    
    float:right;
    list-style-type:none;
}
    #header ul li {    
    display:inline;
}    
    #header ul li a {   
    margin-left:46px;
    font-size:19px;
    color:#fff;
    text-decoration:none;
}

    #header ul li a:hover ,    
    #header ul li a.active {    
    color:#FD7600;
}

调整窗口大小并将边距设置为自动会拧紧内部div的位置,因为它的宽度不适合窗口。

答案 3 :(得分:0)

从#header中取出background-image属性并将此样式应用于body标签:

background: url('http://www.webdesignideas.org/images/bellevueBg.gif') 0 0 repeat-x #fff;

您将不再遇到您描述的问题。您现在需要做的就是使用像Photoshop这样的图像编辑软件包将背景图像缩小到156px高度。

编辑:这是显示解决方案的更新后的jsfiddle:http://jsfiddle.net/eYrg8/35/

答案 4 :(得分:0)

#header {   
    min-height:156px;
    width:100%;
    background-image:url('http://www.webdesignideas.org/images/bellevueBg.gif');
}