我有一个我想要选择的导航下拉元素 - 目前链接仅在文本悬停时才有效,而不是围绕它的框。有没有办法在CSS中做到这一点。
我的CSS代码:
.main-menu {
position: absolute;
top:90px;
right:0px;
text-align: right;
z-index: 2000;
}
.main-menu ul {
width: 50%;
background-color: #333;
display: inline;
margin: 0;
padding: 20px 5px;
list-style: none;
color: #fff;
}
.main-menu ul li {
display: inline-block;
margin-right: -10px;
position: relative;
padding: 17px 15px;
cursor: pointer;
color: #fff;
font-size: 14px;
font-weight: 700;
}
.main-menu ul li a {
color: #fff;
border: none;
}
.main-menu ul li a:hover {
color: #f1c40f;
}
/* sub menu */
.main-menu ul li ul {
position: absolute;
top: 25px;
left: 0;
min-width: 150px;
opacity: 0;
margin: 10px 0px;
padding: 17px 5px 0px 5px;
visibility: hidden;
text-align: left;
}
.main-menu ul li ul li {
display: block;
color: #fff;
margin: 0px -5px;
}
.main-menu ul li ul li:hover {
background: #666;
color: #f1c40f;
}
.main-menu ul li:hover ul {
display: block;
opacity: 1;
visibility: visible;
}
Jsfiddle是:http://jsfiddle.net/9BdTK/
答案 0 :(得分:1)
我在我的网站上有这个,但我也设法从这个网站上这样做。
看看:
不要在“li”项目中添加填充。而是将锚标记设置为 显示:内联块;并应用填充。由Stussa
如上所述:Make whole area clickable
古德勒克
答案 1 :(得分:1)
您只需将<a></a>
移到<li>
之外。
<强> E.G:强>
<a href="#nowhere" title="Home"><li>Home</li></a>
注意:我只对前两个链接执行此操作。
更好的方法是:
<div id="con">
<ul>
<li><a href="#test1">Test</a></li>
<li><a href="#test2">Test</a></li>
<li><a href="#test3">Test</a></li>
</ul>
</div>
#con {
width: 100%;
background: #eee;
text-align: center;
}
ul {
list-style: none;
}
li {
display: inline-block;
width: 80px;
height: 50px;
outline: 1px solid #000;
}
a {
display: block;
height: 100%;
width: 100%;
}
将<a>
保留在内,并将其设置为display: block;
,然后将width
和height
设置为100%
,这将占用整个div
创建一个div链接。
div链接演示 - DEMO HERE
悬停演示 - DEMO HERE
希望这有帮助。