2列CSS布局

时间:2013-06-17 01:05:55

标签: html css layout

我有以下内容:

<div id="aboutus">
<div id="header"></div>
<div id="headerbar"><p>ABOUT US</p></div>
<div id="contentarea">
<p>CONTENT ABOUT US</div>
<div id="clear"></div></div>

<div id="contact">
<div id="header"></div>
<div id="headerbar"><p>CONTACT US</p></div></div>
<div id="contentarea">CONTENT CONTACT US</div>
<div id="clear"></div>
</div>

#aboutus {
    float:left;
    width:100%;
    height:100%;
}
#contact{
    float:left;
    width:100%;
    height:100%;
}
#headerbar {
    float:left;
    width:25%;
    height:100px;
    text-align:right;
    padding-right:5px;
}
#contentarea{
    float:left;
    width:70%;
    height:100px;
}
#clear{
    clear: both;
}
#header{
    background:url(bg.png) no-repeat center center;
    background-size:contain;
    width:100%;
    height:200px;
}

我对此完全陌生,所以我确定我做的事情很傻。基本上它的两个2列布局相互叠加,约束div很好但是接触div显示在about us div中。关于我做错了什么的建议?

3 个答案:

答案 0 :(得分:0)

如果您想在另一个div之上指定两个div,可以使用display:block;指定width:100%;,如下所示

.div{
    display: block;
    width: 100%;
}

您不必使用浮动。当然,有很多方法可以实现,这是实现这一目标的方法之一。你可以在这里玩http://jsfiddle.net/qiqiabaziz/mrrQU/

答案 1 :(得分:0)

您的代码应为:

<div id="aboutus">
<div class="header"><div class="headerbar"><p>ABOUT US</p></div></div>
<div class="contentarea">
<p>CONTENT ABOUT US</div>
</div>
<div id="clear"></div>
<div id="contact">
<div class="header"><div class="headerbar"><p>CONTACT US</p></div></div>
<div class="contentarea">CONTENT CONTACT US</div></div>
<div id="clear"></div>
</div>

#aboutus {
    float:left;
    width:100%;
    height:100%;
}
#contact{
    float:left;
    width:100%;
    height:100%;
}
#headerbar {
    float:left;
    text-align:right;
    padding-right:5px;
}
.contentarea{
    float:left;
    width:70%;
    height:100px;
}
#clear{
    clear: both;
}
.header{
    width:25%;
    height:100px;    
    background:url(bg.png) no-repeat center center;
    background-size:contain;
    float: left;
}
div {border:1px black solid;
}

我添加了边框,以便您可以看到div的位置。浮动是很难处理的,当你100%使用它时更复杂。

提示:对代码中的唯一对象使用ID,对于在同一页面上重复的元素使用CLASS(#id用于单个元素,.class用于当您要将相同样式应用于多个元素时你的页面)。

在这里玩:http://jsfiddle.net/VPzyy/

祝你好运!

答案 2 :(得分:0)

如果你通过validator运行你的html(这是一个很好的做法),你会发现你有一个额外的</div>标签。如果我理解你正在尝试做什么,那么它就是你的第二个标题栏之后的两个之一。当您不希望它关闭时,额外的</div>标记会关闭您的联系人div。

我个人总是在关闭div时发表评论,这样我才能确切地看到</div>正在关闭什么。像这样:

<div id = "outerdiv">
     <div class = "innerdiv">
          <p>text</p>
          <div class = "innerdiv2">
               <p>more text</p>
          </div><!-- .innerdiv2 -->
     </div><!-- .innerdiv -->
</div><!-- #outerdiv-->

这样,即使我弄乱了缩进,仍然很容易看到究竟发生了什么。