CSS使div可选而不是文本?

时间:2013-12-13 09:24:29

标签: css drop-down-menu navigation

我有一个我想要选择的导航下拉元素 - 目前链接仅在文本悬停时才有效,而不是围绕它的框。有没有办法在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/

2 个答案:

答案 0 :(得分:1)

我在我的网站上有这个,但我也设法从这个网站上这样做。

看看:

  

不要在“li”项目中添加填充。而是将锚标记设置为   显示:内联块;并应用填充。由Stussa

如上所述:Make whole area clickable

古德勒克

答案 1 :(得分:1)

方法1

您只需将<a></a>移到<li>之外。

<强> E.G:

<a href="#nowhere" title="Home"><li>Home</li></a>

DEMO HERE

注意:我只对前两个链接执行此操作。


方法2

更好的方法是:

HTML:

<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>

CSS:

#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;,然后将widthheight设置为100%,这将占用整个div创建一个div链接。

div链接演示 - DEMO HERE

悬停演示 - DEMO HERE

希望这有帮助。