Siisti sivuvalikko CSS:lla

03.02.2005 klo 12.52 • Aihe: Web

Tässä siisti valikko tilanteisiin, joissa sisältö on pilkottu usealle samanarvoiselle sivulle.

Esimerkki valikosta käytössä.

Ei viimeisen päälle hiottu, mutta tuntuu toimivan. Testattu IE 6.0, Firefox 1.0 ja Opera 7.54:ssa (Windows XP). Perustuu osin Listamaticin Clagnut CSS Tabs -valikkoon.

XHTML:


<div id="sel">
<ul>
  <li><span>1 </span>Linkkiteksti</li>
  <li><a href="sivu02.htm"><span>2 </span>Linkkiteksti</a></li>
  <li><a href="sivu03.htm"><span>3 </span>Linkkiteksti</a></li>
</ul>
</div>

CSS:

#sel ul {
list-style: none;
margin: 0 0 1em 0;
padding: 0;
}
#sel li {
padding-top: 0.3em;
}
#sel a {
margin: 0;
}
#sel a span {
text-decoration: none;
border: 1px solid #669;
padding: 2px 1px 2px 5px;
margin-right: 5px;
background: #ffd47d
}
#sel a:hover {
background: #ffd47d
}
#sel span {
border: 1px solid #669;
padding: 2px 1px 2px 5px;
margin-right: 5px;
background: #fff;
}

Lisäys (3.2.2005 14.21): Pari turhaa marginaalityyliä poistettu.

Kommentit

1 Aki Björklund (03.02.2005 klo 13.43)

Eikö tuo ole selvästi järjestetty lista (OL) eikä järjestämätön? Entä onko listan ympärillä oleva DIV välttämätön?

2 Mikko (03.02.2005 klo 14.18)

DIV on turha. id:n voisi myöskin muuttaa class:iksi, jos valikkoja haluaa käyttää useampia samalla sivulla.

Ja totta, lista on paremminkin järjestetty. Silloin kuitenkin ilman tyylejä katsottuna valikossa olisi numerot kahteen kertaan (tyyliin "1. 1 Linkkiteksti"). Siksi päädyin järjestämättömään listaan, joka on minusta tyylittelemättömänä selkeämpi.

3 Jarkko (03.02.2005 klo 14.33)

Macilla Safari piirtää alleviivauksen koko rivin leveydeltä, eli numerolaatikon vasemmasta reunasta alkaen. Firefox taas aloittaa alleviivauksen heti laatikon oikeasta reunasta.

Tätä viestiä ei voi enää kommentoida.