2014-04-24 71 views
0

我不知道爲什麼我的無序列表的背景正確長度的長度比它應該長。我仍然對網站開發不熟悉,所以如果你發現我做錯了什麼,請告訴我。這是什麼樣子:http://gyazo.com/a2875f082f6a1424cf8be6d9ecdf100d HTML代碼:背景正確的高度? (CSS)

<!DOCTYPE html> 
<html> 
<head lang="en"> 
    <meta charset="UTF-8"> 
    <link href="indexCSS.css" rel="stylesheet" type="text/css"/> 
    <title>First webpage</title> 
</head> 
<body> 
    <div id="navBarBlack"></div> 
    <ul id="navBar"> 
     <li><a href="#">Home</a></li> 
     <li><a href="#">Page 1</a></li> 
     <li><a href="#">Page 2</a></li> 
     <li><a href="#">Page 3</a></li> 
     <li><a href="#">Page 4</a></li> 
     <li><a href="#">Page 5</a></li> 
     <li><a href="#">Page 6</a></li> 
     <li><a href="#">Page 7</a></li> 
     <li><a href="#">Page 8</a></li> 
    </ul> 
    <p id="header">Webpage</p> 
</body> 
</html> 

CSS:

#header { 
    text-align: center; 
    font-size: 50px; 
    font-weight: lighter; 
    font-family: sans-serif; 
    color: #818181; 
    margin-top: 30px; 
    position: relative; 
    padding-top: 10px; 
} 

body { 
    background-color: #F2F2F2; 
} 

#navBar li { 
    text-decoration: none; 
    list-style: none; 
    display: inline; 
    padding: 40px; 
    border-right: thin solid white; 
} 
#navBar li:first-child{ 
    border-left: thin solid white; 
} 
#navBarBlack{ 
    text-align: center; 
    background-color: #212121; 
    height: 30px; 
    float: none; 
    margin-top: -7px; 
    width: 2000px; 
    align-self: center; 
    margin-left: -70px; 
} 
#navBar{ 
    text-align: center; 
    float: none; 
    margin-top: -27px; 
} 
#navBar li a { 
    text-decoration: none; 
} 

#navBar li a:visited { 
    color: #8A8A8A; 
} 

#navBar li a:link { 
    color: #8A8A8A; 
} 

#navBar li a { 
    -webkit-transition: color 0.2s ease-out; 
    -moz-transition: color 0.2s ease-out; 
    -o-transition: color 0.2s ease-out; 
    -ms-transition: color 0.2s ease-out; 
    transition: color 0.2s ease-out; 
} 

#navBar li a:hover { 
    color: white; 
} 

回答

3

這是因爲你有你的CSS把一堆填充每個<li>。確切的說是40px。 這意味着您要在每個<li>的頂部,右側,底部和左側放置40px。所以它增加了80px的高度。它正在導致邊界延伸到整個高度。

因此,作爲修復,您可以將padding:40px;更改爲padding: 8px 40px;。這是CSS短手每個設置padding-top & padding-bottom到8px。然後每個padding-right & padding-left至40px。

我不確切地知道你想要在這裏做什麼,但我不會推薦使用這麼多的填充。我建議至少從px更改爲%,這種方式,當在不同的屏幕尺寸或更小的瀏覽器窗口 - 它不會完全打破你的佈局。

+0

謝謝!它的工作原理:) – user3570739

0

<div id="navBarBlack"></div>之前的<ul>

關閉 <ul></ul>

使封閉</div>所以它封裝了導航。

+0

您可以通過添加固定OP代碼的部分示例來擴展您的答案。 – easwee

0

li標籤的高度爲80px加1em。邊界延伸整個長度。嘗試將li標記的填充設置爲padding: 4px 40px;,然後查看會發生什麼。稍微玩一下這些值。

0

我與你的代碼打轉轉,這裏是一些指針:

  1. 在UL或菜單裏添加背景顏色
  2. 使用顯示inline-block的或浮動留在菜單項並計算每個項目的寬度將以百分比表示。
  3. 看看箱子大小:邊框。這將爲您節省很多頭痛
  4. 不使用ID來設計您的元素。 ID是javascript。始終使用類別

。 最後我跟你玩展示的代碼是什麼我改變:

http://codepen.io/nighrage/pen/CFdGK