我想的代码是温和的,我想,但是如果在菜单上悬停,菜单会同时移动文本和背景。我尝试了几个我在这里找到的代码,但没有做任何改动。代码是 -
HTML:
<div class="nav">
<ul>
<li><a href="#">home</a></li>
<li><a href="#">about us</a></li>
<li><a href="#">portfolio</a></li>
<li><a href="#">contact</a></li>
</ul>
</div>
CSS:
div.nav {
float: right;
margin: 50px -120px;
}
div.nav ul{
display: block;
width: 480px;
}
div.nav ul li {
float: left;
padding: 0 10px;
list-style-type: none;
}
div.nav ul li a:link, div.nav ul li a:visited {
color: #1E1E1C;
font-family: RockwellRegular,arial,helvetica,sans-serif;
font-weight: bold;
text-decoration: none;
}
div.nav ul li a:hover{
background: #e41f4c;
border: 10px solid #e41f4c;
border-radius: 5px;
color: #fff;
}
找不到任何解决方案了!
答案 0 :(得分:3)
这是一个解决方案:http://jsfiddle.net/T7Kud/1/
将边框大小应用于a
标签,并使边框颜色透明,悬停时,只需更改边框颜色。
div.nav ul li a:link, div.nav ul li a:visited {
color: #1E1E1C;
font-family: RockwellRegular,arial,helvetica,sans-serif;
font-weight: bold;
text-decoration: none;
border: 10px solid transparent;
border-radius: 5px;
}
div.nav ul li a:hover{
background: #e41f4c;
border-color: #e41f4c;
color: #fff;
}
答案 1 :(得分:1)
试试此示例http://jsfiddle.net/jaisonje/8fc3A/。我已经从li中删除了填充并在标记中添加了填充,因为如果有填充,这是添加悬停的正确方法。
<强> HTML:强>
<div class="nav">
<ul>
<li><a href="#">home</a></li>
<li><a href="#">about us</a></li>
<li><a href="#">portfolio</a></li>
<li><a href="#">contact</a></li>
</ul>
</div>
<强> CSS:强>
div.nav {
float: right;
margin: 50px -120px;
}
div.nav ul {
display: block;
width: 480px;
}
div.nav ul li {
float: left;
list-style-type: none;
}
div.nav ul li a:link, div.nav ul li a:visited {
color: #1E1E1C;
font-family: RockwellRegular,arial,helvetica,sans-serif;
font-weight: bold;
text-decoration: none;
border-radius: 5px;
padding: 5px 10px;
}
div.nav ul li a:hover {
background-color: #e41f4c;
color: #fff;
}
答案 2 :(得分:0)
试试这个:
div.nav {
float: right;
margin: 50px -120px;
}
div.nav ul{
display: block;
width: 480px;
}
div.nav ul li {
float: left;
list-style-type: none;
}
div.nav ul li a {
padding: 10px 10px;
}
div.nav ul li a:link, div.nav ul li a:visited {
color: #1E1E1C;
font-family: RockwellRegular,arial,helvetica,sans-serif;
font-weight: bold;
text-decoration: none;
}
div.nav ul li a:hover{
background: #e41f4c;
/* border: 10px solid #e41f4c;*/
border-radius: 5px;
color: #fff;
}
<强> FIDDLE 强>
答案 3 :(得分:0)
您的链接上有边框悬停但未处于正常状态。这会改变宽度和高度。 我建议在链接正常状态下使用页面背景的边框颜色设置边框,使其不可见,例如:
div.nav ul li a:link, div.nav ul li a:visited {
color: #1E1E1C;
font-family: RockwellRegular,arial,helvetica,sans-serif;
font-weight: bold;
text-decoration: none;
border: 10px solid #ffffff;
}
答案 4 :(得分:0)
指定li元素的宽度 它会解决你的问题。 你增加了边框,这又增加了li元素的大小
div.nav ul li {
float: left;
padding: 0 10px;
list-style-type: none;
宽度:100像素; }