-1

所以我的问题基本上是我在一个页面上有 3 个 div,而我的中间内容 div 总是与我的页眉和页脚 div 间隔大约 50px。

为什么会发生这种分离?我没有在 css 文件中指定任何边距。

阿马尔

编辑:这是css文件的代码:

    @-webkit-keyframes showBody{
        from { opacity: 0; }
        to   { opacity: 1;  }
    }



    body { -webkit-animation: showBody 3s; position:relative; background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#00CC00), to(#24C98D));  height: 100%; margin: 0; background-repeat: no-repeat;
        background-attachment: fixed; }
    #links li {list-style: none; display: inline; margin-right: 30px;}
    a {text-decoration: none;}
    #header { border-top-left-radius: 25px ; border-top-right-radius: 25px; background-color: #FFF; margin-top: 0px; margin-left: auto; margin-right: auto; width:1100px; height: 60px;border-top: 1px solid; border-left: 1px solid; border-right: 1px solid;}
    #navmenu {height: 34px; width: auto; position: relative; left: 100px; top: -25px; }
    #contentArea { background-color: #FFF; border-left: 1px solid; border-right: 1px solid; width: 1100px; margin-right: auto; margin-left: auto;}
    #footer {border-bottom-left-radius: 20px 20px; border-bottom-right-radius: 20px 20px; background-color: #F00; margin-left: auto; margin-right: auto; width:1100px; height: 100px; border-left: 1px solid; border-right: 1px solid; border-bottom: 1px solid; }
    #links {width: 1100px; background-color: #FFF; float: top; border-bottom: 1px solid;}
    #links li {list-style: none; display: inline; margin-right: 30px;}
    #copyrightinfo {width: 1100px; }
    #navmenu {float: top; margin-top: 0px;}
    #container {border-radius: 

20px;}

这是html文件的代码:

<!DOCTYPE html>
<html>
<head>
    <link type="text/css" href="css/pagestyle.css" rel="stylesheet"/>
    <link type="text/css" href="css/navmenustyle.css" rel="stylesheet" />



</head>
<body>
    <div id="container">
        <div id="header">
            <div id="logo">
            </div>
            <div id="navmenu">

            <ul id="frodoNav">
               <li><a href="#" title="Home">Home</a></li>
                <li><a href="#" title="About">About</a></li>
                <li><a href="#" title="Social">Social</a></li>
                <li><a href="#" title="Reviews">Reviews</a></li>
                <li><a href="#" title="Special Stories">Special Stories</a></li>
                <li><a href="#" title="Travel With Kids">Travel With Kids</a></li>
                <li><a href="#" title="Support">Support</a></li>        
            </ul>

            </div>
        </div>
        <div id="contentArea" style="clear: both;">
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam pharetra odio vel tellus tempus eget malesuada dui venenatis. In hac habitasse platea dictumst. Ut eu sagittis nisl. Nulla lacinia mattis turpis non tincidunt. Quisque sodales adipiscing libero et consectetur. Donec lectus lacus, consequat et consectetur non, iaculis a urna. Maecenas arcu lacus, luctus at gravida aliquet, varius ac purus. Curabitur varius sodales libero nec semper. Curabitur quis dolor a orci condimentum placerat. Sed sed ipsum nec metus tempus aliquam eu ut metus. Suspendisse arcu magna, dictum ut tristique quis, malesuada at lorem. Nam feugiat dolor quis mauris feugiat blandit.

Phasellus sed risus turpis, ut aliquam felis. Nullam auctor dictum tempor. Vivamus diam lectus, posuere eget viverra sit amet, condimentum nec augue. Pellentesque tellus lectus, scelerisque mollis viverra sit amet, ullamcorper id elit. Cras eu nisi a felis placerat pulvinar. Mauris sit amet ipsum leo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.

Aliquam quis nulla nunc, quis pellentesque arcu. Proin nulla dolor, porta a malesuada ut, hendrerit eget velit. Ut vel molestie lectus. Nam volutpat scelerisque quam, a pharetra nibh cursus pellentesque. Duis ut magna imperdiet nibh gravida sodales vitae sit amet felis. Phasellus vitae velit lacus. Aenean a nisl ut est interdum cursus. Aliquam eu quam risus. Mauris sed nisi non justo tincidunt semper. Cras ornare porta elit, sed vulputate elit rhoncus quis. Aenean egestas metus vel leo pellentesque hendrerit. Suspendisse porta nulla nec erat sagittis vulputate. Fusce dui eros, imperdiet ut viverra ac, tempor ut tortor.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur non tristique urna. Fusce posuere enim ac nulla semper quis ultrices purus pulvinar. Aenean non eros et erat interdum dictum. Donec sodales porttitor est in lobortis. Proin tellus neque, commodo sed vulputate at, rutrum eget dui. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Fusce feugiat laoreet orci eget euismod. Sed dui ipsum, sodales vitae egestas vel, feugiat a enim. Sed in pharetra odio. Mauris pretium, justo et porttitor semper, enim nulla aliquet erat, non imperdiet augue nisl ut nisi. Proin posuere, nunc non dictum faucibus, tortor massa dictum felis, ut pulvinar dolor erat ac diam. In mollis tincidunt nunc, ut luctus eros cursus at. Etiam pellentesque vehicula magna, sed bibendum sem convallis quis.

Donec sollicitudin, nulla non luctus vestibulum, dui mauris malesuada elit, nec pellentesque magna diam eget sapien. Suspendisse fermentum leo ut dolor adipiscing fringilla. Mauris in condimentum magna. Integer rutrum sem ut metus lacinia a tincidunt felis laoreet. Cras blandit, orci imperdiet tincidunt egestas, erat mauris mattis purus, quis ullamcorper massa urna at sapien. Pellentesque ornare velit mattis purus pretium congue tempor enim porta. Suspendisse ac feugiat ante. Nullam vel lectus sed magna consectetur molestie. Maecenas urna turpis, ultricies non lacinia in, porta vel lacus. Vivamus elit nisl, laoreet ut molestie blandit, vestibulum non arcu. Sed condimentum ante vitae diam ornare rutrum. Sed eget ipsum eu ante posuere placerat nec a orci. Integer ut arcu sit amet arcu eleifend tincidunt. Suspendisse eget pharetra enim.</p>
     </div>
     <div id="footer">
     <div id="footer-nav">
     </div>
     </div>
      </body>
</html>
4

3 回答 3

0

我一直有这个问题,这是因为你的 div 之间的文本节点。将 float:left 添加到您的 div 中,浏览器应该忽略文本节点。

于 2012-06-07T04:44:05.570 回答
0

最好有代码供我们查看。但是,它可能在其他地方使用默认样式。您可以尝试将边距/填充设置为零。

于 2012-06-07T04:46:03.233 回答
0

如果有人感兴趣,这是我对问题的解决方案。

html,
*
{
    border      : 0;
    box-sizing  : border-box;
    margin      : 0;
    padding     : 0;
}

@-webkit-keyframes showBody
{
    from { opacity : 0; }
    to   { opacity : 1; }
}

a 
{
    text-decoration : none;
}

body 
{
    -webkit-animation     : showBody 3s;
    background-attachment : fixed;
    background-image      : -webkit-gradient(linear, 0% 0%, 0% 100%, from(#00CC00), to(#24C98D));
    background-repeat     : no-repeat;
    height                : 100%;
    position              : relative;
}

#container
{
    border-radius : 20px;
}

#contentArea
{
    background-color : #FFF;
    border-left      : 1px solid;
    border-right     : 1px solid;
    clear            : both;
    margin-left      : auto;
    margin-right     : auto;
    width            : 1100px;
}

#copyrightinfo
{
    width : 1100px;
}

#footer
{
    background-color           : #F00;
    border-bottom              : 1px solid;
    border-bottom-left-radius  : 20px 20px;
    border-bottom-right-radius : 20px 20px;
    border-left                : 1px solid;
    border-right               : 1px solid;
    height                     : 100px;
    margin-left                : auto;
    margin-right               : auto;
    width                      : 1100px;
}

#header
{
    background-color        : #FFF;
    border-bottom           : 1px solid;
    border-left             : 1px solid;
    border-right            : 1px solid;
    border-top              : 1px solid;
    border-top-left-radius  : 25px;
    border-top-right-radius : 25px;
    height                  : 60px;
    margin-left             : auto;
    margin-right            : auto;
    text-align              : center;
    width                   : 1100px;
}

#header:before
{
    content        : '';
    display        : inline-block;
    height         : 100%; 
    vertical-align : middle;
}

#links
{
    background-color : #FFF;
    border-bottom    : 1px solid;
    float            : top;
    width            : 1100px;
}

.menu-item
{
    display      : block;
    float        : left;
    margin-left  : 30px;
    margin-right : 30px;
}

#navmenu
{
    display        : inline-block;
    vertical-align : middle;
}
<!DOCTYPE html>
<html>
    <head>
        <link href = "css/Example.css"
              rel  = "stylesheet"
              type = "text/css"
        />
    </head>

    <body>
        <div id = "container">
            <div id = "header">
                <div id = "navmenu">
                    <div class = "menu-item"><a href = "#" title = "Home">Home</a></div>
                    <div class = "menu-item"><a href = "#" title = "About">About</a></div>
                    <div class = "menu-item"><a href = "#" title = "Social">Social</a></div>
                    <div class = "menu-item"><a href = "#" title = "Reviews">Reviews</a></div>
                    <div class = "menu-item"><a href = "#" title = "Special Stories">Special Stories</a></div>
                    <div class = "menu-item"><a href = "#" title = "Travel With Kids">Travel With Kids</a></div>
                    <div class = "menu-item"><a href = "#" title = "Support">Support</a></div>
                </div>
            </div>

            <div id = "contentArea">
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam pharetra odio vel tellus tempus eget malesuada dui venenatis. In hac habitasse platea dictumst. Ut eu sagittis nisl. Nulla lacinia mattis turpis non tincidunt. Quisque sodales adipiscing libero et consectetur. Donec lectus lacus, consequat et consectetur non, iaculis a urna. Maecenas arcu lacus, luctus at gravida aliquet, varius ac purus. Curabitur varius sodales libero nec semper. Curabitur quis dolor a orci condimentum placerat. Sed sed ipsum nec metus tempus aliquam eu ut metus. Suspendisse arcu magna, dictum ut tristique quis, malesuada at lorem. Nam feugiat dolor quis mauris feugiat blandit.

                Phasellus sed risus turpis, ut aliquam felis. Nullam auctor dictum tempor. Vivamus diam lectus, posuere eget viverra sit amet, condimentum nec augue. Pellentesque tellus lectus, scelerisque mollis viverra sit amet, ullamcorper id elit. Cras eu nisi a felis placerat pulvinar. Mauris sit amet ipsum leo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.

                Aliquam quis nulla nunc, quis pellentesque arcu. Proin nulla dolor, porta a malesuada ut, hendrerit eget velit. Ut vel molestie lectus. Nam volutpat scelerisque quam, a pharetra nibh cursus pellentesque. Duis ut magna imperdiet nibh gravida sodales vitae sit amet felis. Phasellus vitae velit lacus. Aenean a nisl ut est interdum cursus. Aliquam eu quam risus. Mauris sed nisi non justo tincidunt semper. Cras ornare porta elit, sed vulputate elit rhoncus quis. Aenean egestas metus vel leo pellentesque hendrerit. Suspendisse porta nulla nec erat sagittis vulputate. Fusce dui eros, imperdiet ut viverra ac, tempor ut tortor.

                Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur non tristique urna. Fusce posuere enim ac nulla semper quis ultrices purus pulvinar. Aenean non eros et erat interdum dictum. Donec sodales porttitor est in lobortis. Proin tellus neque, commodo sed vulputate at, rutrum eget dui. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Fusce feugiat laoreet orci eget euismod. Sed dui ipsum, sodales vitae egestas vel, feugiat a enim. Sed in pharetra odio. Mauris pretium, justo et porttitor semper, enim nulla aliquet erat, non imperdiet augue nisl ut nisi. Proin posuere, nunc non dictum faucibus, tortor massa dictum felis, ut pulvinar dolor erat ac diam. In mollis tincidunt nunc, ut luctus eros cursus at. Etiam pellentesque vehicula magna, sed bibendum sem convallis quis.

                Donec sollicitudin, nulla non luctus vestibulum, dui mauris malesuada elit, nec pellentesque magna diam eget sapien. Suspendisse fermentum leo ut dolor adipiscing fringilla. Mauris in condimentum magna. Integer rutrum sem ut metus lacinia a tincidunt felis laoreet. Cras blandit, orci imperdiet tincidunt egestas, erat mauris mattis purus, quis ullamcorper massa urna at sapien. Pellentesque ornare velit mattis purus pretium congue tempor enim porta. Suspendisse ac feugiat ante. Nullam vel lectus sed magna consectetur molestie. Maecenas urna turpis, ultricies non lacinia in, porta vel lacus. Vivamus elit nisl, laoreet ut molestie blandit, vestibulum non arcu. Sed condimentum ante vitae diam ornare rutrum. Sed eget ipsum eu ante posuere placerat nec a orci. Integer ut arcu sit amet arcu eleifend tincidunt. Suspendisse eget pharetra enim.</p>
        </div>

        <div id = "footer">
            <div id = "footer-nav">
            </div>
        </div>
    </body>
</html>

通过将以下代码插入到 CSS 文件中,解决了 div 间距的问题...

*
{
    border      : 0;
    box-sizing  : border-box;
    margin      : 0;
    padding     : 0;
}

这些样式仅使用 . 应用于所有元素*。通过将所有元素的border,marginpadding属性设置为0,然后在需要的地方覆盖 aid或 aclass中的该值,您可以防止不希望的默认出现border,margin和 / 或padding发生,例如这里的主要问题。

此处使用的行将box-sizing : border-box;所有border,marginpadding每个元素的定义放在该width元素的 中,从而使页面布局更加简单。

我还将列表 ( li) 替换为多个div',这使得开发菜单变得更加容易。列表非常适合呈现文本列表,尤其是当您想要一些简单的项目符号时,但它们不太适合呈现其他项目组,无论是文本还是其他。对于其他组,请改用div's。

我将菜单项放在 contains 中div navmenu,并将它们水平居中。然后,我能够使用 Fadi 的解决方案版本将它们垂直居中,该解决方案来自如何在 div 中以可变高度垂直居中内容?.

我还从 CSS 文件中删除了一些冗余/重复的代码,style将 HTML 文件中的 a 移到 CSS 文件中,并改进了文件的总体布局和呈现方式。

如果您有任何意见或问题,请随时提出。

于 2015-10-10T06:07:04.227 回答