Ich habe eine horizontale Navigationsleiste, die aus einer ungeordneten Liste besteht, und jedes Listenelement hat viele Auffüllungen, damit es schön aussieht, aber der einzige Bereich, der als Link fungiert, ist der Text selbst. Wie kann ich dem Benutzer ermöglichen, auf eine beliebige Stelle im Listenelement zu klicken, um den Link zu aktivieren?
#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;
in einem bedingten Kommentar für IE6 und IE7 wird ersetzt,display: inline-block;
obwohl ja, wenn Listenelemente bereits schwebend sind,display: block;
wird auch OK sein>
Symbol nach meinem Linktext angezeigt wird, aber nicht in den Inhalt eingefügt wird. Am Ende habe ich es nur in den Inhalt eingefügt. Wäre neugierig, ob es einen besseren Weg gibt, dies zu erreichen.Definieren Sie Ihre CSS-Eigenschaft für das Ankertag wie folgt:
Dann nimmt der Anker den gesamten Listenbereich ein, sodass Ihr Klick in dem leeren Bereich neben Ihrer Liste funktioniert.
quelle
li
, z. B. ein Symbol.Stellen Sie sicher, dass das Ankertag eher die Polsterung als die enthält
li
. Auf diese Weise nimmt es den gesamten Bereich ein.quelle
Super, super spät zu dieser Party, aber trotzdem: Sie können den Anker auch als Flex-Gegenstand stylen. Dies ist besonders nützlich für Listenelemente mit dynamischer Größe / Anordnung.
(Vorsichtsmaßnahme: Flexboxen werden obvs immer noch nicht gut unterstützt. Autoprefixer zur Rettung!)
quelle
ul
und flexbox erstellen.Verwenden Sie Folgendes:
quelle
Oder Sie könnten jQuery verwenden:
quelle
Sie sollten diese CSS-Eigenschaft und diesen Wert in Ihrem
li
:Sie können den Link also mit jQuery oder JavaScript verarbeiten oder ein
a
Tag verwenden, aber alle anderen Tag-Elemente inli
sollten die CSS-Eigenschaft haben:quelle
Wenden Sie einfach das folgende CSS an:
quelle
Hier ist, wie ich es gemacht habe
Machen Sie den
<a>
Inline-Block und entfernen Sie die Polsterung von Ihrem<li>
Dann können Sie mit dem
width
und demheight
der<a>
in der spielen<li>
Setzen Sie das
width
auf100%
und sehen Sie, wie es funktioniertPS: - Holen Sie sich die Hilfe der Chrome Developer Tools, wenn Sie das
height
und ändernwidth
quelle
Sie können jederzeit das gesamte Tag li mit dem Hiperlink-Tag einwickeln. Hier ist meine Lösung:
quelle
Fügen Sie das Listenelement in den Hyperlink ein und nicht umgekehrt.
Zum Beispiel mit Ihrem Code:
quelle