CSS下拉菜单:如何单击整个li:hover,而不仅仅是其中的超链接



我希望我用正确的词正确回答这个问题:我有一个非常基本的CSS下拉菜单,当我将鼠标悬停在它们上时,它会突出显示(背景颜色)。当我悬停时,我希望能够单击整个 li 区域以到达链接目的地,而不必找到位于该 li 中的超链接来执行单击。

对于此讨论,以下是我的菜单的简化:

<div class="catnav">
<ul>
  <li><a href="#">CATEGORY</a>
    <ul>
      <li>Florists</li>
      <li>Caterers</li>
      <li>Formal Wear</li>
      <li>All Categories...</li>
    </ul>
  </li>
</ul>
</div>

。和 CSS:

.catnav ul {list-style:none;margin:0px;padding:0px;}
.catnav li {float:left;text-align:center;position:relative;background:#f5f6f7;padding:0px 10px 0px 10px;}
.catnav li ul li {float:none;width:150px;text-align:left;padding-left:0px 0px 0px 5px;line-height:17px;}
.catnav a {text-decoration:none;color:#548dd4;font-family:arial;}
.catnav li ul {position:absolute;top:21px;left:0px; border:1px solid #ccc;
    -moz-box-shadow: 0px 3px 10px #aaa;
    -webkit-box-shadow: 0px 3px 10px #aaa;
    box-shadow: 0px 3px 10px #aaa;
    visibility:hidden;}
.catnav li:hover ul {visibility:visible;z-index:100;}
.catnav li:hover {background:#e0e0e0;}
.catnav li:hover li a {font-size:0.8em;font-weight:normal;visibility:visible;z-index:100;}

任何帮助都会很棒。谢谢!

J

试试这行css:

.catnav li ul li a {display:block;width:150px;}

或者你可以用<a><a><li></li></a>)包裹你的<li>,但这只是不好的做法。

在这里发现了同样的问题,有一些很好的答案。 快速答案是使用 display:block;,然后添加填充,但另一个线程中的答案应该为您解释一切。

相关内容

最新更新