2011-05-26 74 views
2

悬停时,背景颜色似乎超出了作为我的导航项目的“框”。我曾尝试调整一切。这里是我的CSS和HTML ...CSS:UL导航 - 关于悬停,背景颜色错误

<div id="menuTop"> 

<ul id="menuOne" class="menuHoriz"> 
    <li><a href="index.html">home</a></li> 
    <li><a href="communication.html">about us</a></li> 
    <li><a href="about.html">services</a></li> 
    <li><a href="help.html">samples</a></li> 
    <li><a href="contact.html">contact</a></li> 
</ul> 

</div> 

#menuTop { 
clear: both; 
padding-top: 18px; 
height: 55px; 
font-size: 12pt; 
background-color: #000; 
} 

#menuTop ul, #menuTop li { 
margin: 0; 
padding: 4px 0 0 0; 
} 

#menuTop ul { 
list-style-type: none; 
} 

#menuTop li { 
display: block; 
background-color: #3C87D1; 
text-align: center; 
width: 197px; 
height: 30px; 
margin: 0 0px 0 0; 
padding: 4px 0 0 0; 
border: 1px solid #2A5E92; 
} 

#menuTop a { 
display: block; 
margin: 0; 
padding: 4px 0 0 0; 
} 

#menuTop a:link, #menuTop a:visited { 
width: 197px; 
height: 30px; 
padding: 4px 0 0 0; 
margin: 0; 
font-family: 'Trebuchet MS', Helvetica, sans-serif; 
color: #fff; 
text-decoration: none; 
} 

#menuTop a:hover { 
width: 197px; 
height: 30px; 
padding: 4px 0 0 0; 
margin: 0; 
color: #fff; 
background-color: #5F9FFF; 
} 

ul.menuHoriz li { 
float: left; 
} 

回答

1

我从样式表中删除了不需要的/双重定义,并修复了这个错误。

* { 
    margin: 0; 
    padding: 0 
} 
#menuTop { 
    font: 12pt 'Trebuchet MS', Helvetica, sans-serif; 
    padding-top: 18px; 
    height: 55px; 
    background: #000 
} 
#menuTop ul { 
    padding-top: 4px; 
    list-style: none 
} 
#menuTop li { 
    background: #3C87D1; 
    border: 1px solid #2A5E92; 
    text-align: center 
} 
#menuTop a { 
    display: block; 
    width: 197px; 
    line-height: 30px 
} 
#menuTop a:link, #menuTop a:visited { 
    color: #fff; 
    text-decoration: none 
} 
#menuTop a:hover { 
    background-color: #5F9FFF 
} 
ul.menuHoriz li { 
    float: left 
} 

这里有一些注意事项:

  • 这是方便使用*,设计布局前设置所有元素为零margin和padding。
  • 仅将菜单项的宽度和高度设置为a元素(最嵌套的元素)。周围的li元素将采用相同的大小。同时使用line-height而不是height,因为它会自动使您的文本垂直居中。
  • 不要在:link,:visited,:hover:active(例如尺寸和字体)中重新定义样式。它给浏览器带来了不必要的计算。
+0

谢谢大家..这对我工作:)太棒了!感谢指针。 – Katelyn 2011-05-27 18:27:11

+0

迈达斯你能告诉我如何从现在开始添加容器吗?它现在被推到顶部,我试图向容器中添加填充以将其向下移动约10px左右,并且它最终将我的标题与我的边界分开。 – Katelyn 2011-05-27 18:34:24

+0

你是什么意思'将我的标题与我的边界分开'? – Midas 2011-05-27 21:01:49

1

如果你的问题是只箱子外面传来的颜色,添加到您的#menuTop李

overflow:hidden; 

为我工作。 :)

+0

这远远比我更容易提出。这是一个演示:http://jsfiddle.net/LN26d/ – thirtydot 2011-05-26 21:19:35

0

试试这个:jsfiddle example

#menuTop { 
    clear: both; 
    padding-top: 18px; 
    height: 55px; 
    font-size: 12pt; 
    background-color: #000; 
    text-align: center; 
    font-family: 'Trebuchet MS', Helvetica, sans-serif; 
    line-height: 34px;  
} 
#menuTop a { 
    float: left; 
    border: 1px solid #2A5E92; 
    background-color: #3C87D1; 
    width: 197px; 
    color: #fff; 
    text-decoration: none; 
} 
#menuTop a:hover { 
    background-color: #5F9FFF; 
}