Med økende mangfold i skjermstørrelser er det ikke praktisk å designe enkeltblokker med tekst som tar opp hele bredden på skjermen. Den tradisjonelle løsningen er å splitte tekst i kolonner manuelt, noe som er veldig tidskrevende; eller å splitte tekst dynamisk med JavaScript, som ikke fungerer universelt. Dessuten er dette et presentasjonsproblem, vi burde kunne stile det med CSS uten bruk av rutenett eller flyter bør ikke vi?
CSS3 gir deg faktisk en måte å style teksten din inn i ulike kolonner, det gir deg også muligheten til å sette en rigg - mellomrommet mellom disse kolonnene - på denne måten har du full kontroll i stedet for rammen eller rutenettet som setter disse hullene for deg .
Best av alt, nedbryter CSS3 grasiøst, så hvis noen surfer i Netscape Navigator, vil nettstedet ditt ikke bryte.
Det er viktig å merke seg at mens alle nåværende nettlesere støtter flere kolonner i CSS3 - ja selv IE10 - mange nyere versjoner - for eksempel IE9 - gjør det ikke. Selv om støtten er god, vil du inkludere nettleserprefikser for webkit (-webkit-) og mozilla (-moz-). Det er ikke nødvendig å inkludere -ms- eller -o- for IE og Opera, da de enten støtter funksjonen i sin helhet, eller slet ikke.
Denne CSS-funksjonen gir deg faktisk en håndfull egenskaper for å gi deg full kontroll over hvordan innholdet ditt blir skrevet ut i nettleseren, og disse egenskapene er:
Med alle disse egenskapene tror jeg ikke at vi faktisk trenger noe annet for å ha full kontroll over våre kolonner. Selvfølgelig er ikke alle disse egenskapene nødvendige for at multikolonneoppsettet skal fungere. Det er faktisk bare kolonnestellingen som er nødvendig, men du bør også alltid bruke kolonnekaret for å gi teksten et lite rom og ikke ha alle kolonnene på toppen av hverandre.
For å få dette til bruk, tar det bare to kodelinjer:
/* This will produce a 3 column layout with a gap of 20px between each column */.cols3 {column-count: 3;column-gap: 20px;}
Hvis du også ønsker å bruke en regel til kolonnene, trenger du bare å legge til de ekstra egenskapene:
/* This will produce a 3 column layout and a gap of 20px between each column and a rule of 1px solid black */.cols3 {column-count: 3;column-gap: 20px;column-rule-width: 1px;column-rule-style: solid;column-rule-color: #000;}
Som den mer vanlige grenseegenskapen kan du også stable farge, stil og bredde i samme linje, slik som:
.cols3 {column-count: 3;column-gap: 20px;column-rule: 1px solid #000;}
Hvis du har en overskrift og du vil at overskriften skal strekke seg over alle kolonnene, må du bare legge til en linje:
/*This h1 will take up the space of the 3 columns*/.cols3 h1{column-span: all;}
Du kan bruke dette til nesten hvilken som helst HTML, fra et enkelt avsnitt til flere
Hopping til CSS-kolonner har mange fordeler etter min mening, ikke nødvendig å benytte seg av mange matte, flyter eller innholdsbrudd når nettleseren blir endret av brukeren. Du får også skrive koden på en mye mer semantisk måte, og siden de støttes av alle de store nettleserne, bør du vurdere å bruke kolonner fra nå av.
Stiler du kolonner med CSS3, eller holder deg til flyter og posisjonering? Hvilke tips har du for å håndtere eldre nettlesere? Gi oss beskjed i kommentarene.
Utvalgt bilde / miniatyrbilde, kolonner bilde via Shutterstock.