我已经看过其他类似的问题,但我无法将其应用于我的。我希望每个文本链接周围的框都是可点击的,而不仅仅是文本。
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/的视觉效果。如果你能提供帮助,我将不胜感激。如果需要更多信息或说明,请提出而不是拒绝此问题。
答案 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”选项卡,以便您可以将其与其他标记进行比较。
答案 2 :(得分:-1)
如果所有按钮都是相同的尺寸,您始终可以为链接元素本身指定尺寸,例如:
a {
宽度:100%; 身高:100%;
}
只需调整它,直到事情很好地匹配。