Eu tenho uma barra de navegação horizontal feita a partir de uma lista não ordenada, e cada item da lista tem muito preenchimento para torná-lo bonito, mas a única área que funciona como um link é o próprio texto. Como posso permitir que o usuário clique em qualquer lugar no item da lista para ativar o link?
#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;
}
<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>
display: inline; zoom: 1;
em um comentário condicional para o IE6 e o IE7 substituirá,display: inline-block;
embora sim, se os itens da lista já estiverem flutuando,display: block;
também estará OK>
símbolo aparecesse depois do texto do meu link, mas não colocasse no conteúdo ... acabei colocando apenas no conteúdo. Ficaria curioso se existe uma maneira melhor de fazer isso.Defina sua propriedade css da tag âncora como:
Em seguida, a âncora ocupará toda a área da lista, então seu clique funcionará no espaço vazio ao lado de sua lista.
fonte
li
, como um ícone.Faça com que a tag âncora contenha o preenchimento em vez de
li
. Assim, ocupará toda a área.fonte
Muito, muito tarde para essa festa, mas enfim: você também pode estilizar a âncora como um item flexível. Isso é particularmente útil para itens de lista dimensionados / organizados dinamicamente.
(Advertência: os flexboxes obviamente ainda não são bem suportados. Autoprefixer para o resgate!)
fonte
ul
e flexbox.Use o seguinte:
fonte
Ou você pode usar jQuery:
fonte
Você deve usar esta propriedade e valor CSS em
li
:Portanto, você pode manipular o link com jQuery ou JavaScript, ou usar uma
a
tag, mas todos os outros elementos da tag dentro doli
devem ter a propriedade CSS:fonte
Basta aplicar o css abaixo:
fonte
aqui é como eu fiz isso
Faça o
<a>
bloco embutido e remova o preenchimento de seu<li>
Então você pode jogar com o
width
e oheight
do<a>
no<li>
Comece o
width
to100%
e veja como funcionaPS: - Obtenha a ajuda das Ferramentas de desenvolvedor do Chrome ao alterar o
height
ewidth
fonte
Você sempre pode envolver toda a tag li com a tag de hiperlink. Aqui está a minha solução:
fonte
Coloque o item da lista dentro do hiperlink, em vez do contrário.
Por exemplo, com seu código:
fonte