如何在不使用父div的情况下垂直放置布局div

时间:2013-10-09 03:06:54

标签: css html

我正试图摆脱使用表格,我现在正试图创建一个简单的基于div的布局 - 标题,内容,页脚div,宽度为100%,没有父div。但是我遇到了一些问题。如果我在那里插入任何东西,我的内容和页脚div重叠标题div。它们出现在标题div的中间。如果它们是空的,它们会正常显示。但是当我在其中插入标题图片时,问题就开始了。

我试图更改浮动和显示属性,但它给了我奇怪的输出。任何人都可以帮我一个接一个地垂直定位吗?

以下是HTML代码:

<div id="topDiv"> topmenu</div>
<div id="headerDiv">
<div class="innerDiv"><img src=" photos/header.jpg" /></div>
</div><br /><br />
<div id="contentsDiv"> content</div>
<div id="footDiv"> footer </div>

以下是css样式:

div#topDiv{
width:100%;
height:20px;
background-color:#800000;
text-align:center;
margin: 0px;
position:absolute;
}

 div#headerDiv{
width:100%;
position:absolute;
background-color:#0FF;
text-align:center;
margin: 0px;
 }

  div#contentsDiv{
width:100%;
margin: 0px;
text-align:center;
background-color:#0CC;
position:absolute;
  }

  div#footDiv{
width:100%;
margin: 0px;
text-align:center;
background-color:#CF3;
position:absolute;
}

 .innerDiv{
width:930px;
height:100px;
margin:auto;
background-color:#C30;
position:relevant;
 }

3 个答案:

答案 0 :(得分:1)

你正在使用绝对和相对定位 它们使你的布局看起来很糟糕,而且元素也在重叠。

此外,您不需要多次定义边距和其他所有属性

html, body{
width 100%;
height:100%;
margin:0px;
padding:0px;
}
div{
display:block;
margin:auto;
}

Horizontal Layout

CSS-Reset

Vertical Layout

答案 1 :(得分:0)

这是一个适合您的解决方案。您无需指定width=100而无需定义宽度,默认情况下为100%。只需为body指定所需的宽度,其他所有容器都将为该宽度。 float: left;会阻止容器垂直堆叠。它们实际上会水平堆叠。

您可以使用Ids标记简化标记,而不是Div HTML5

    <!DOCTYPE HTML>
    <html lang="en-US">
    <head>
        <style type="text/css">
            body {
                margin: 0 auto;
            }

            menu {
                height: 20px;
                background-color: #800000;
                text-align: center;
                margin: 0px;
            }

            header {
                background-color: #0FF;
                text-align: center;
                margin: 0px;
            }

            article {
                margin: 0px;
                text-align: center;
                background-color: #0CC;
            }

            footer {
                margin: 0px;
                text-align: center;
                background-color: #CF3;
            }

            section {
                height: 100px;
                margin: auto;
                background-color: #C30;
            }
        </style>
    </head>
    <body>

        <menu>topmenu</menu>
        <header>Header
        <article>
            <img src="http://www.psdgraphics.com/wp-content/uploads/2009/04/1-google-logo-tutorial.gif" />
        </article>
        </header>
        <section>content</section>
        <footer>footer </footer>

    </body>
    </html>

答案 2 :(得分:0)

只需从position:absolute规则中移除所有CSS,即可完成。