Horisontale lister

I de forrige innleggene i denne serien har jeg allerede vist hvordan horisonale list kan lages. Det er ganske enkelt: En gir <ul>-elementet en “width” (bredde) som er stor nok til at det er plass til flere <li>-elementer ved siden av hverandre, og bruker “float” (f.eks. “float:left”) for å la <li>-elementene flyte til siden og legge seg ved siden av hverandre.

CSS-en kan se slik ut:

.hor {width:400px; text-align:center; list-style:none;}
.hor li { float:left; width:80px; }

og HTML (markup) slik:

<ul class="hor">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
</ul>

Det gir denne enkle listen:

  • Item 1
  • Item 2
  • Item 3
  • Item 4

Stort sett brukes horisontale lister i menyer av forskjellige slag: Horisontale navigasjonsmenyer (som ofte liggen under header, men over overskriften, på toppen av siden), såkalte “breadcrumbs” som er navigasjonsmenyer i poster og innlegg, og i menyer på bunnen av nettsider.

Vi kunne bruke dem til andre ting, for eksempel til å fremstille årsakskjeder eller liknende, slik som her:

  • Konflikt →
  • Bomber →
  • PANG

Poenget er vel at det ikke er noen spesielle grunner til å bruke <ul><li>-konstruksjoner til det. Det er like enkelt å bruker <p>- eller <span>-elementer. F.eks. kunne jeg bruke p-elementer slik:

Konflikt → Bomber → PANG

Selv om det er semantisk riktig og greit nok, er det altså ikke noe stort poeng å bruke <ul><li>-konstruksjoner til dette.

Horisontale menyer

Det virker mer riktig og fornuftig å bruke horisontale lister til meny-fnutter av forskjellige slag. Selv bruker jeg ofte lister til enkle menyer inn i poster eller tekst på nettsider. For eksempel en liste som denne:

Markup for å lage denne listen er enkel (jeg har tatt ut fil-referanser for å forenkle):

<ul class="horlist center">
<li><a href="#">Del 1: Lister</a></li>
<li><a href="#">Del 2: Vertikale lister</a></li>
<li><a href="#">Del 3: Flerkolonnelister</a></li>
</ul>

CSS-en ser slik ut:

.center { text-align:center; }
.horlist { list-style-type:none;text-align:center;
    width:95%;margin:0 auto; }
.horlist li { display:inline; }
.horlist a { padding:6px 15px; background:#EDEEFE;
    text-decoration:none; color:blue; margin:0; }
.horlist a:hover {color: red; }

Jeg definerer klasser i CSS fordi det kan tenkes at jeg vil ha to eller flere slike lister på en og samme side (om jeg brukte id – # – ville jeg bare kunne ha en per side).

Det som er å legge spesielt merke til ved CSS-en her, er at jeg “styler” linkene i listen (a-elementet) og ikke slik som er vanlig i generelle lister <li> (jeg gir a-elementet padding og background, men ikke <li>-elementet).

Denne måten å gjøre ting på er vanlig i menyer. Grunnen er at når jeg gjør det slik blir det mulig å klikke på menyen selv om en ikke holder cursor akkurat over selve linken – jeg gjør på en måte det klikkbare området større og dermed gjør jeg det lettere for brukerne å bruke menyen.

Legg også merke til at jeg bruker “display:inline” for å gjøre listen horisontal. Det vanlige er “float:left” på liste-elementene, og det er en bedre måte å gjøre det på (støttes av flere browsere). Jeg valgte å gjøre det på denne måten her bare for å vise at det kan brukes som et alternativ.

OK. Neste post i denne serien er om horisontale menyer.

{ 0 comments }

De to foregående innleggene handlet om enkle <ul><li>-lister. Den første viste hvordan HTML og CSS for slike lister ser ut, og det andre litt om hvordan en kan pynte vertikale lister slik at de ser penere ut og skiller seg ut.

I dette innlegget ser jeg på hvordan en kan lage lister i som har flere enn en kolonne. Slike lister er egentlig verken horisontale eller vertikale – de er begge deler.

Vi tar utgangspunkt i en litt lang liste, la oss si en med 12 “items”. En slik liste ser slik ut (jeg tar ikke med alle 12 elementene her):

  • Item 1
  • Item 2
  • Item 12

Det er to måter å gjøre om denne enkle vertikale listen til en liste i flere kolonner. Begge innebærer at vi bruker en såkalt “float”. Enten kan vi bruke “float” i <ul>-elementer og lage flere vertikale lister ved siden av hverandre, eller vi kan bruke “float” i <li>-elementene og lage en liste med flere kolonner.

Flere kolonner i lister – “floating” <ul>

Ved denne metoden brekker vi opp den lange listen i flere kortere og bruker “float:left” i <ul>-elementene for å få dem til å legge seg ved siden av hverandre. HMTL-en ser slik ut:

<ul class="list1">
<li><strong>Item 1</strong></li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
</ul>
<ul class="list1">
<li><strong>Item 5</strong></li>
<li>Item 6</li>
<li>Item 7</li>
<li>Item 8</li>
</ul>
<ul class="list1">
<li><strong>Item 9</strong></li>
<li>Item 10</li>
<li>Item 11</li>
<li>Item 12</li>
</ul><div style="clear:both;"></div>

CSS-en som skal til for å få en liste i flere kolonner er ganske enkel:

.list1 {list-style:none; float:left; width:100px; padding-left:20px;}

Jeg bruker en <div> med “clear:both” fordi listen har “float”-elementer. Det gir følgende liste – legg merke til nummereringen av <li>-elementene:

  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5
  • Item 6
  • Item 7
  • Item 8
  • Item 9
  • Item 10
  • Item 11
  • Item 12

Avstanden til venstre marg bestemmes i “padding-left” og avstanden mellom listene med “width”. Listene kan selvsagt pyntes med annen font, eventuelt kan elementene øverst gis utheves slik jeg har gjort her, og så videre. Men dette er den metoden med “floating” <ul>-elementer.

Flere kolonner i lister – “floating” <li>

Denne gangen ser HTML-koden slik ut:

<ul class="list2">
<li><strong>Item 1</strong></li>
<li><strong>Item 2</strong></li>
<li><strong>Item 3</strong></li>
<li>Item 4</li>
<li>Item 5</li>
<li>Item 6</li>
<li>Item 7</li>
<li>Item 8</li>
<li>Item 9</li>
<li>Item 10</li>
<li>Item 11</li>
<li>Item 12</li>
</ul><div style="clear:both"></div>

Også CSS-en er litt annerledes:

.list2{ list-style:none; width:400px; }
.list2 li {float:left;width:100px;padding-left: 20px;}

Dette gir følgende liste (legge igjen merke til rekkefølgen på elementene):

  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5
  • Item 6
  • Item 7
  • Item 8
  • Item 9
  • Item 10
  • Item 11
  • Item 12

Når listen lages på denne måten flyter elementene over mot venstre (hver med en “width” på 100px pluss 20 px til “padding”. Stilen for “list2″ har en vidde på 400px, så etter 3 ganger 120 px, er det ikke plass til et fjerde element, og det går da til neste linje.

Om vi definerer vidden til for eksempel 490px, kan vi se hva som skjer:

  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5
  • Item 6
  • Item 7
  • Item 8
  • Item 9
  • Item 10
  • Item 11
  • Item 12

Nå kommer en fjerde kolonne til syne, rett og slett fordi det er gjort plass til den i “list2″.

Ok. Nok for denne gang. Neste post skal handle om horisontale lister. Her er linker til artiklene om lister (i en liste):

{ 0 comments }

I forrige post hadde fokus på hvordan en laget lister – på HTML-delen – og brukte standardsymboler i listene. Denne posten dreier seg om pynting av lister med andre typer symboler.

Alternativer til bullets og firkanter

Som punktmarkører for <li>-elementer i listen er det fullt mulig å bruke bilder eller andre symboler. Bilder kan være artig og pynte opp en god del. Ulempen er imidlertid at det tar tid (“latency” pluss lastetid), og av den grunn ikke alltid er så lurt.

For å sette bilder inn som arrows kan en bruke:

<ul style="list-style-image: url(arrow.gif);">
<li> .. </li>
</ul>

Alternativt kan vi definere stilen i CSS:

<style type="text/css">
ul { list-style-image: url("/images/arrow.gif") }
</style>

og bare angi listen i HTML med <ul><li>-elementer.

Et godt alternativ til bilde er å bruke små symboler. Det finnes tusenvis av små og artige “Unicode”-symboler (se listen i linken) som er greie å bruke og som ikke øker tiden det tar å laste siden noe særlig. Her er noen eksempler på slike symboler:

  • En liten pil
  • Et notesymbol
  • En pil / triangel
  • Et hjerte
  • Varselskilt
  • En stjerne

Symbolene ovenfor ble som du ser også vist i en liste. Slik ser HTML-en for den listen ut:

<ul style="list-style: none; line-height: 1.5em;">
<li><span style="float: left; width: 2em;"></span> En liten pil</li>
<li><span style="float: left; width: 2em;"></span> Et notesymbol</li>
<li><span style="float: left; width: 2em;"></span> En pil / triangel</li>
<li><span style="float: left; width: 2em;"></span> Et hjerte</li>
<li><span style="float: left; width: 2em;"></span> Varselskilt</li>
<li><span style="float: left; width: 2em;"></span> En stjerne</li>
</ul>

Listen er som du ser laget ved å ta ut det vanlige bullet-symbolet (“list-style: none”) og sette inn et “span” i <li>-elementene. I stedet kunne vi ha definert det hele i CSS, gitt listetypen en klasse (“class”), kanskje også gitt symbolene en farge (“color: #FFCB97;”), og på den måten spart gjentakelsene og har laget en type liste vi kunne ha brukt flere ganger uten ekstra ny kode:

<style type="text/css">
.symbol { list-style: none; line-height: 1.5em; }
.symbol span { float: left; width: 2em; color: #FFCB97; }
</style>

Nå kan vi bruke en enklere HTML-kode:

<ul class="symbol">
<li><span>➽</span> En liten pil</li>
<li><span>♫</span> Et notesymbol</li>
<li><span>►</span> En pil / triangel</li>
<li><span>♥</span> Et hjerte</li>
<li><span>⚠</span> Varselskilt</li>
<li><span>✬</span> En stjerne</li>
</ul>

Med denne koden sammen med CSS-stilen får vi:

  • En liten pil
  • Et notesymbol
  • En pil / triangel
  • Et hjerte
  • Varselskilt
  • En stjerne

Det at symbolene kan gis den fargen vi ønsker er en annen fordel med bruk av definerte symboler i stedet for bilder – hadde vi brukt bilder av symbolene ville vi ha måttet ha et nytt bilde for å få en annen farge.

OK. Dette er nok for denne gangen. Neste post skal handle om vertikale lister med flere enn en kolonne. Her er linker til artiklene om lister (i en liste):

Thesis Theme for WordPress:  Options Galore and a Helpful Support Community

{ 0 comments }

Lister – HTML & CSS – Del 1

by admin on June 20, 2011 · 0 comments

Lister kan være så mangt: Handlelister, matoppskrifter, lister over ting og tang, oppramsinger, de ti beste eller værste av noe. Tusen forskjellige ting. Derfor brukes lister mye på nettsteder og i blogger. Og derfor kan det være nyttig å vite litt om hva en kan gjøre med dem og hvordan ting kan gjøres. I denne posten ser jeg på vertikale lister (lister der elementene ligger under hverandre).

La oss starte med en enkel liste og se hvordan den blir. Vi bruker html-kodene <ul> og <li>. “ul” står for “unordered list og “li” for element i listen. Hele koden ser slik ut:

<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
</ul>

Og det gir:

  • Item 1
  • Item 2
  • Item 3

Jeg har ikke gjort noe med denne listen – ikke gitt noen stil (CSS), bare ren HTML. Måten den ser ut på skjermen på avhenger av hva som er lagt inn av stil-elementer på denne bloggen (i stilfilen med CSS-definisjoner) og av hvordan nettleseren du presenterer lister på (default-innstillingene). Utseendet vil variere fra nettsted til nettsted og fra nettleser til nettleser.

Elementene (item) har en firkant foran seg. Det er fordi bloggen har en definisjon av liste som bruker “list-style: square”. Om jeg endrer det til “list-style:circle”, altså bruker følgende HTML, ser vi at det blir annerledes:

<ul style="list-style:circle">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li></ul>
  • Item 1
  • Item 2
  • Item 3

Om jeg brukte en liste av type <ol> (ordered list) i stedet for “ul” (unordered list), med følgende HTML, får vi en nummerert liste:

<ol>
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
</ol>
  1. Item 1
  2. Item 2
  3. Item 3

Det er enkelt å legge underpunkter inn i en liste slik at vi får en liste med to nivåer. La oss bruke små sirkler foran underpunktene i listen og rykke listen lenger inn mot høyre. For å lage en underliste under punkt to setter jeg inn en ny <ul> der med nye <ul>-elementer. Slik ser koden ut:

<ul style="margin-left:60px">
  <li>Item 1</li>
  <li>Item 2
    <ul style="list-style:circle">
      <li>Item 2.1</li>
      <li>Item 2.2</li>
      <li>Item 2.3</li>
   </ul>
   </li>
 <li>Item 3</li></ul>

Jeg har brukt style=”margin-left:60px” i den første <ul>-en for å flytte listen mot høyre og “list-style:circle” for å bruke rundinger som markeringer i underlisten under punkt 2:

  • Item 1
  • Item 2
    • Item 2.1
    • Item 2.2
    • Item 2.3
  • Item 3

Og det var det. I neste post er det mer om vertikale lister. Her er artiklene om lister (i en liste):

{ 0 comments }

Bloggurat og “vent litt, ny teller”

June 19, 2011

Nede i venstre sidebar på denne bloggen finner du en teller fra Bloggurat. Den er egentlig ganske morsom, men kanskje også litt trist. Den sier at det er en ny teller og at vi må vente litt. Og det høres jo greit ut. Problemet er bare at det ikke er slik det forholder seg. Det [...]

Read the full article →

Pene horisontale linjer med HTML og CSS

January 17, 2011

Det er enkelt å lage en horisontal linje med HTML: <hr size="8px" noshade="noshade" style="margin: 0 auto; width: 80%; color: yellow;" /> skal for eksempel gi en pen, gul linje som er 8px tykk. Her er en slik linje, 80% bred og sentrert: Hvordan den ser ut for deg avhenger imidlertid av hvilken browser du bruker! [...]

Read the full article →

Nyttige redskap for å måle hastigheten på nettsteder

December 1, 2010

Er du opptatt av at nettsidene dine eller bloggen din skal laste raskest mulig? Det bør du være! Raskere lasting gir en bedre brukeropplevelse. Og dessuten har Google begynt å legge vekt på hastighet når de rangerer nettsider på søkeresultatsidene sine. Etterhvert har det kommet en del gode nettsteder for måling av hastigheten på nettsider. [...]

Read the full article →

Raskere nettsteder – htaccess-konfigurering

October 30, 2010

Google legger nå vekt på hvor raskt en nettside laster. Sider som laster sent får en lavere ranking i søkemotorene enn sider som laster hurtig. Dette, sammen med det faktum at brukerne stort sett ikke liker nettsider som laster sent, burde være god grunn til å legge vekt på å få nettsider til å laste [...]

Read the full article →