无法设置div margin-top

时间:2014-04-18 14:50:41

标签: css html margin

我尝试了以下html代码(来自w3schools网站的示例):

<!DOCTYPE html>
<html>
    <body>
        <div id="container" style="width:500px">
            <div id="header" style="background-color:#FFA500;">
                <h1 style="margin-bottom:0;">Main Title of Web Page</h1>
            </div>
            <div id="menu" style="background-color:#FFD700;height:200px;width:100px;float:left;">
                <b>Menu</b><br />
                HTML<br />
                CSS<br />
                JavaScript
            </div>
            <div id="content" style="background-color:#EEEEEE;height:200px;width:400px;float:left;">
                Content goes here
            </div>
            <div id="footer" style="background-color:#FFA500;clear:both;text-align:center;margin-top:20px">
                Copyright © W3Schools.com
            </div>
        </div>
    </body>
</html>

这是输出:

enter image description here

我需要在#footer#content部分之间添加空格,正如您所看到的,我尝试使用margin-top属性,但我使用的任何值(在我的示例中{ {1}})不会改变结果:两个部分之间没有空格。

我该如何解决这个问题?

6 个答案:

答案 0 :(得分:0)

您可以添加内容margin-bottom:20px;

<div id="content" style="background-color:#EEEEEE;height:200px;width:400px;float:left;margin-bottom: 20px;">

答案 1 :(得分:0)

您可以将所有元素与页脚分开放在包含margin-bottom: 20px的包装中:

<body>

    <div id="container" style="width:500px">

        <div id="wrapper" style="margin-bottom: 20px; border: 1px solid black; width: 100%; float: left;">
            <div id="header" style="background-color:#FFA500;">
                <h1 style="margin-bottom:0;">Main Title of Web Page</h1>
            </div>

            <div id="menu" style="background-color:#FFD700;height:200px;width:100px;float:left;">
                <b>Menu</b><br>
                HTML<br>
                CSS<br>
                JavaScript
            </div>

            <div id="content" style="background-color:#EEEEEE;height:200px;width:400px;float:left;">
                Content goes here
            </div>
        </div>
        <div id="footer" style="background-color:#FFA500;clear:both;text-align:center;">
            Copyright © W3Schools.com
        </div>
    </div>
</body>

Here是一个证明行为的jsFiddle。

答案 2 :(得分:0)

我给你的页脚相对定位并使用了top属性

这是一个有效的DEMO

<div id="container" style="width:500px">
            <div id="header" style="background-color:#FFA500;">
                <h1 style="margin-bottom:0;">Main Title of Web Page</h1>
            </div>
            <div id="menu" style="background-color:#FFD700;height:200px;width:100px;float:left;">
                <b>Menu</b><br />
                HTML<br />
                CSS<br />
                JavaScript
            </div>
            <div id="content" style="background-color:#EEEEEE;height:200px;width:400px;float:left;">
                Content goes here
            </div>
            <div id="footer" style="background-color:#FFA500;clear:left;text-align:center;position:relative;top:20px">
                Copyright © W3Schools.com
            </div>
        </div>

答案 3 :(得分:0)

尝试制作页脚display: inline-block; width: 100%。它并不理想,但它确实有效。

答案 4 :(得分:0)

花车晃动的另一个原因就是它们晃动。

您可以在页脚和内容之间添加一个空div,如...

 //content html
 <div style='clear:both;'></div>
 //footer html

http://jsfiddle.net/rK5zV/1/

或者你可以使页脚也是一个宽度为100%的浮点数,如...

http://jsfiddle.net/7KZy9/

其他解决方案可以在这里找到......

Why top margin of html element is ignored after floated element?

答案 5 :(得分:0)

在两个样式浮动的块之后,你应该使用样式清晰的元素:两者; 您可以像这样编码视图

<div id="content">
  ...
</div>
<div style="clear:both;"></div>
<div id="footer">
  ...
</div>