JSFIDDLE DEMO
struttura HTML:
Ci sono molti modi per raggiungere una navigazione verticale.
Il più comune sarebbe quella di utilizzare ul
e li
:
<div id="lnav_container">
<ul id="lnav">
<li class="lnav_item"><a href="#">Item 1</a></li>
<li class="lnav_item"><a href="#">Item 2</a></li>
<li class="lnav_item"><a href="#">Item 3</a></li>
<li class="lnav_item"><a href="#">Item 4</a></li>
</ul>
</div>
anche molto comune avere a
tag all'interno li
.
Styling:
Si può sbarazzarsi dei proiettili avendo list-style-type: none;
per il ul
.
Puoi dare loro uno stile diverso al passaggio del mouse usando il selettore :hover
per renderlo più interattivo.
.lnav_item {
width: 74%;
margin-top: 10px;
}
.lnav_item:first-child {margin-top: 0px;}
.lnav_item.selected {width: 86%;}
.lnav_item a {
display: inline-block;
width: 100%;
line-height: 30px;
padding: 8px 5px 5px 0px;
background-color: yellow;
color: black;
font-weight: bold;
text-decoration: none;
border-radius: 2px 12px 12px 2px;
}
.lnav_item.selected a {
background-color: green;
color: white;
font-size: 18px;
}
.lnav_item:hover a {background-color: orange;}
per sbarazzarsi di a
uso sottolineatura text-decoration: none;
e sovrascrivere la sua colorazione di default, se lo si desidera.
Javascript (jQuery):
Sarà facile per legare clickListener
alle voci:
$('.lnav_item a').on('click', function() {
//$(this) item is clicked, do whatever you want
$('.lnav_item').removeClass('selected');
$(this).parent().addClass('selected');
});
EDIT:
Se si vuole dare ciascuno degli elementi di navigazione uno stile diverso, ecc., puoi ottenerlo in diversi modi:
jsfiddle DEMO
È possibile utilizzare i CSS' nth-child()
selettore:
.lnav_item:nth-child(2):hover a{background-color: #252F1D;}
.lnav_item:nth-child(3):hover a{background-color: white;}
Se si sta facendo in jQuery, in alternativa è possibile utilizzare la funzione con parametri (indice) e magari utilizzare eq
se necessario.
$('.lnav_item > a').each(function(index) {
if(index == 0) {
//give it a different onClick, CSS rule, etc
}
//and so on
});
index
è a base zero, ma nth-child
parte da uno.
Navigazioni essenzialmente lists..so andare per '' ul' e li' –
https://css-tricks.com/snippets/css/a-guide-to-flexbox/ – lifetimes