我有一个由无序列表组成的水平导航栏,每个列表项都有很多填充,使它看起来不错,但作为链接的唯一区域是文本本身.如何让用户单击列表项中的任意位置以激活链接?
#nav {
background-color: #181818;
margin: 0px;
overflow: hidden;
}
#nav img {
float: left;
padding: 5px 10px;
margin-top: auto;
margin-bottom: auto;
vertical-align: bottom;
}
#nav ul {
list-style-type: none;
margin: 0px;
background-color: #181818;
float: left;
}
#nav li {
display: block;
float: left;
padding: 25px 10px;
}
#nav li:hover {
background-color: #785442;
}
#nav a {
color: white;
font-family: Helvetica, Arial, sans-serif;
text-decoration: none;
}
Run Code Online (Sandbox Code Playgroud)
<div id="nav">
<img src="/images/renderedicon.png" alt="Icon" height="57" width="57" />
<ul>
<li><a href="#">One1</a></li>
<li><a href="#">Two</a></li>
<li><a href="#">Three</a></li>
<li><a href="#">Four</a></li>
</ul>
</div>
<div>
<h2>Heading</h2>
</div>
Run Code Online (Sandbox Code Playgroud)
小智 44
将锚标记css属性定义为:
{display:block}
Run Code Online (Sandbox Code Playgroud)
然后锚点将占据整个列表区域,因此您的点击将在列表旁边的空白区域中起作用.
超级,这个派对超级晚了,但无论如何:你也可以将锚定为柔性项目.这对动态调整大小/排列的列表项特别有用.
a {
/* This flexbox code stretches the link's clickable
* area to fit its parent block. */
display: flex;
flex-grow: 1;
flex-shrink: 1;
justify-content: center;
}
Run Code Online (Sandbox Code Playgroud)
(警告:flexboxes是obvs仍然没有很好的支持.自动修复器拯救!)
小智 6
或者你可以使用jQuery:
$("li").click(function(){
window.location=$(this).find("a").attr("href");
return false;
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
84195 次 |
最近记录: |