导航栏上只有文本链接

时间:2013-03-13 16:09:58

标签: html css

我已经看过其他类似的问题,但我无法将其应用于我的。我希望每个文本链接周围的框都是可点击的,而不仅仅是文本。

HTML

<div class="container">
    <ul class="nav">
        <li class="nav-home">
            <a href="index.html">Home</a>
        </li>
        <li class="nav-games"> 
            <a href="games.html">Games</a>
        </li>
        <li class="nav-chat">
            <a href="chat.html">Chat</a>
        </li>
        <li class="nav-suggestions">
            <a href="suggestions.html">Suggestions</a>
        </li>
    </ul>
</div>

CSS

.nav {
width: 900;
clear: right;
height: 55px;
margin-left: 22px;
margin-right: 22px;
padding: 0;
z-index: 5;
overflow: visible;
background: #161616; 
background: -moz-linear-gradient(top,  #161616 0%, #282828 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#161616), color-stop(100%,#282828)); 
background: -webkit-linear-gradient(top,  #161616 0%,#282828 100%);
background: -o-linear-gradient(top,  #161616 0%,#282828 100%);
background: -ms-linear-gradient(top,  #161616 0%,#282828 100%); 
background: linear-gradient(to bottom,  #161616 0%,#282828 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#161616', endColorstr='#282828',GradientType=0 );
border: 1px solid #090909;
box-shadow: inset 0px 0px 1px rgba(255,255,255,.2), 0px 3px 5px rgba(0,0,0,.5);
}

.nav li {
list-style-type: none;
float: left;
display: inline-block;
padding: 0px 89px;
width: 55;
text-align: center;
height: 55px;
border-right: 1px solid #090909;
box-shadow: 1px 0px 0px rgba(255,255,255,.1);
-webkit-transition:all 0.2s linear; 
-moz-transition:all 0.2inear; 
-o-transition:all 1s linear; 
transition:all 0.2s linear; 
}

.nav li.logo:hover { opacity: 1; background-color: transparent;}

.nav li:last-child { border: none; box-shadow: none; }

我在这里添加了display: block;,它在文本的上方和下方可点击但不向左或向右。

.nav li a, nav ul li a:visited {
line-height: 55px;
text-decoration: none;
display: block;
color: #9c9c9c;
font-size: 15px;
font-family: "Droid Sans", Arial, sans-serif;
text-transform: uppercase;
text-shadow: 0px 1px 0px rgba(0,0,0,.9);
-webkit-transition:all 0.2s linear; 
-moz-transition:all 0.2s linear; 
-o-transition:all 0.2s linear; 
transition:all 0.2s linear;     
}

.nav li:hover { 
background-color: rgba(0,0,0,.2); 
background-color: #191919\9; 
-webkit-transition:all 0.2s linear; 
-moz-transition:all 0.2s linear; 
-o-transition:all 0.2s linear; 
transition:all 0.2s linear;
color: white;
}
.nav li:hover a { color: white; 
-webkit-transition:all 0.2s linear; 
-moz-transition:all 0.2s linear; 
-o-transition:all 0.2s linear; 
transition:all 0.2s linear;
}

#nav-home .nav li.nav-home a, #nav-games .nav li.nav-games a, #nav-chat .nav li.nav-chat a, 
#nav-comments .nav li.nav-comments a  { color: white; }

继承了jsfiddle http://jsfiddle.net/U2d9X/3/的视觉效果。如果你能提供帮助,我将不胜感激。如果需要更多信息或说明,请提出而不是拒绝此问题。

3 个答案:

答案 0 :(得分:5)

1)从LI元素中删除左/右填充。

2)调整LI元素的宽度。

3)a { width: 100% !important; height: 100% !important; }

答案 1 :(得分:0)

<li>标记放在<a>标记内。例如:

<a href="index.html">
    <li class="nav-home">
        Home
    </li>
</a>

然后,在CSS中,将.nav li a, nav ul li a:visited更改为.nav a, nav ul a:visited,因为<a>已不在<li>

在jsFiddle上,我只将HTML更改为“Home”选项卡,以便您可以将其与其他标记进行比较。

Altered code

答案 2 :(得分:-1)

如果所有按钮都是相同的尺寸,您始终可以为链接元素本身指定尺寸,例如:

a {

宽度:100%; 身高:100%;

}

只需调整它,直到事情很好地匹配。