无法正确排序div

时间:2012-02-29 08:57:16

标签: html css web

我一直在使用JS脚本遇到一些问题,并已将问题隔离开来。 我的div完全搞砸了。 我正在寻找的布局是:

wrapper    -    whole page.
        header

left menu 1     right content (stretches to / past left menu item 3)
left menu 2 
left menu 3
      footer

我希望菜单项包含在div中,该div与右内容div的高度相同。

这是我的代码:

<html>
<head>
<title>Bliss</title>
<link rel="stylesheet" type="text/css" href="styling1.css" />
</head>

<body>

<div id="wholewrap">
<div id="header">header</div>

<div id="middlewrap">

<div id="menuwrap">
<div id="1" class="floatleftnw">1</div>
<div id="1" class="floatleftnw">2</div>
<div id="1" class="floatleftnw">3</div>
</div><!-- end of menu-->

<div id="right" style="float:right; display:inline;">right</div>
</div><!-- end of middlewrap-->
<div id="footer">
footer
</div >

</div><!-- end of whole wrap-->
</body></html>

我拥有的css(根据styling1.css)是:

@charset "utf-8";
/* CSS Document */

html, body {
    margin: 0px;
    padding: 0px;
}
body {
    font-family: Verdana, Arial, sans-serif;
    font-size: 11px;
    text-align: center;
    line-height: 1.8em;
    background:#fff;
}



#wholewrap {
    width:1000px;
    margin-left:auto;
    margin-right:auto;
}

#right {
    margin-left:220px;
    width:740px;
    margin-bottom:40px;
    float:right;
    display:inline;

}

.floatleftnw {
    float:left;
}



#middlewrap {
    height:800px;
    width:1000px;

}


#menuwrap {
    height:800px;
    width:200px;
    display:inline;
    border:1px solid blue;

}

.clearer {
    font-size: 0px;
    height: 0px;
    width: 100%;
    display: block;
    clear: both;
}

谁能看到我哪里出错了?当我重写这个布局(最后一小时或者两小时)时,我打开了我的div,并确保我立即关闭它,甚至评论它。代码在DreamWeaver中没有显示任何错误,但是当我在firebug中查看时,div没有按照假设运行,即菜单包裹周围应该有一个蓝色边框。右边应该与左侧菜单内联(我可以获得菜单包裹的边框,但是只要我将内联添加到右边的属性中,它就会被破坏。)

谢谢

4 个答案:

答案 0 :(得分:2)

inline属性与块布局不同,并且不具有边框,边距等块功能。您需要使用display: blockdisplay: inline-block。 如果您想要左侧的垂直菜单,可以为float: left添加#menuwrap并删除其他浮动和display: inline。请参阅示例here

答案 1 :(得分:2)

在ur css和html中改变一点

CSS

#menuwrap {
    background-color: #D3C5C5;
    float: left;
    height: 100%;
    width: 30%;
}
#right {
   height: 100%;
   width: 70%;
   float:left;
   display:block;
   background-color: #fDc3C5;
}

.floatleftnw {
   float:left;
   clear:both;
}

HTMl(不要混合内联css和外部css)

<div id="wholewrap">
<div id="header">header</div>

<div id="middlewrap">

<div id="menuwrap">
<div id="1" class="floatleftnw">1</div>
<div id="1" class="floatleftnw">2</div>
<div id="1" class="floatleftnw">3</div>
</div><!-- end of menu-->

<div id="right">right</div>
</div><!-- end of middlewrap-->
<div id="footer">
footer
</div >

</div><!-- end of whole wrap-->

<强> Working DEMO

答案 2 :(得分:1)

我有一个结构相似的网站。我左侧的菜单实际上位于div部分,名为“left”。您应该将左侧部分和右侧部分向左浮动,如下所示:

#left {
text-align: left;
width: 180px;
float: left;
margin: 20px 0 0 0;
}

#right {
text-align: left;
width: 800px;
float: left;
font-size: 10pt;
margin: 20px 0 0 0;
}

并且页脚应该具有(clear:both;)以便它可以左右移动。 不过,我不确定你的“中间包裹”在做什么......?

页脚部分应该是这样的:

#footer {
width: 980px;
line-height: 50px;
background-color: #FFF;
clear: both;
color: #000;
border-top: 1px dotted #D1D1D1;
border-bottom: 1px dotted #D1D1D1;
margin: 10px 0;
}

希望它有所帮助。

答案 3 :(得分:0)

上述答案是正确的。如果你想要导航和主要内容的两个div相同的高度你只是在#right上错过了一个高度。

http://jsfiddle.net/MD2KT/1/这是阻止的元素和指定的高度。