-2

html:

<body>
        <div>
            <header>
            HTML5
            </header>           
            <nav>
             <ul>
                    <li><a href="">Home</a></li>
                    <li><a href="">Logout</a></li>
                    <li><a href="">Login</a></li>

             </ul>

            </nav>
            <p id="navclear" />

CSS:

/*page*/
body{
    margin:0 auto;
    width: 800px;
    height:auto;
    border: 1px solid black;
}



/*navigation*/
nav{
    border: 1px solid black;
    background-color: #E3E3E3;
    height:auto;
}
nav ul{
    list-style:none;
    padding:0;
    !margin-top:0;


}


nav li a{
    float:left;
    text-decoration:none;
    display: block;
    padding-right:5px;
    width:75px;
    background-color: #E3E3E3;
    color:#66777F;
    !line-height: .5em;
    font-weight: bold;
    font-family:Cantarell, Arial, Helvetica, sans-serif;
}

nav li a:hover{
    color: #FE4C06;
}

#navclear{
    clear:both;
}

我是 html5 的新手。在这里我遇到了高度属性的问题。我想让我的导航高度自动我用上面的语法尝试了同样的方法,但是 ul 部分从 nav.Means height:auto; 不工作。我无法通过 nav ul {margin-top:0;} 修复相同的问题。我的问题是如何使导航高度自动?

http://jsbin.com/alukej/edit#javascript,html,live

4

1 回答 1

4

编辑

正如三十多点评论的那样,你<p class="clear" />在错误的地方。下面是修改后的代码:

<nav>
  <ul>
    <li><a href="">Home</a></li>
    <li><a href="">Logout</a></li>
    <li><a href="">Login</a></li> 
  </ul>
  <div class="clear"></div>
</nav>

我删除了你所有不必要的代码(你还有很多“!”)

另一种选择是使用nav li{ display: inline; }而不是nav li{ float:right; }下面的代码:


原来的

只是为了扩展三十点和纳撒尼尔的评论。

!higher:35px是 CSS 中感叹号的错误语法用法。有关如何正确使用它的说明,请参见此处:

话虽如此,您的 CSS 代码中似乎不需要!important

此外,您也不需要最后一行,height:auto;因为这已经是元素 height 属性的默认行为。所以,就我们现在任何人所知,您的最终代码只需:

HTML

<nav>
  <ul>
    <li><a href="">Home</a></li>
    <li><a href="">Logout</a></li>
    <li><a href="">Login</a></li>
  </ul>
</nav>

​CSS

nav{
  border: 1px solid black;
  background-color: #E3E3E3;
}​

如果您正在尝试实现不同的目标,请编辑您的问题并更清楚地解释它。有时图片有助于解决 HTML 问题。

于 2012-06-25T14:41:50.150 回答