Med stigende mangfoldighed i monitorstørrelser er det ikke praktisk at designe enkeltblokke af tekst, der optager hele bredden af skærmen. Den traditionelle løsning er at dele tekst i kolonner manuelt, hvilket er meget tidskrævende; eller at splitte tekst dynamisk med JavaScript, som ikke fungerer universelt. Desuden er dette et præsentationsproblem, vi burde kunne style det med CSS uden brug af gittersystemer eller floats skal vi ikke?
CSS3 giver faktisk mulighed for at indstille din tekst i forskellige kolonner, det giver endda evnen til at sætte en rende - rummet mellem disse kolonner - på denne måde har du fuld kontrol i stedet for rammen eller gittersystemet, der angiver disse huller for dig .
Bedst af alt, nedbryder CSS3 yndefuldt, så hvis nogen surfer i Netscape Navigator, vil dit websted ikke bryde.
Det er vigtigt at bemærke, at mens alle nuværende browsere understøtter multikolonner i CSS3 - ja endda IE10 - mange nyere versioner - f.eks. IE9 - ikke. Selvom support er god, vil du gerne have browser præfiks for webkit (-webkit-) og mozilla (-moz-). Der er ikke behov for at inkludere -ms- eller -o- for IE og Opera, da de enten støtter funktionen i sin helhed eller slet ikke.
Denne CSS-funktion giver dig faktisk en håndfuld egenskaber for at give dig fuld kontrol over, hvordan dit indhold bliver udskrevet i browseren, og disse egenskaber er:
Med alle disse egenskaber tror jeg ikke, at vi faktisk har brug for noget andet for at have fuld kontrol over vores kolonner. Selvfølgelig er ikke alle disse egenskaber nødvendige for at multi-kolonne layoutet fungerer, faktisk er kun kolonneantalet nødvendigt, men du bør altid også bruge kolonnehullet for at give teksten et lille rum og ikke have alle kolonnerne på øverst på hinanden.
For at sætte dette i praksis tager det kun to linjer kode:
/* 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 at anvende en regel til kolonnerne, skal du blot tilføje de ekstra egenskaber:
/* 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;}
Ligesom den mere almindelige grænseegenskab kan du også stable farve, stil og bredde i samme linje som sådan:
.cols3 {column-count: 3;column-gap: 20px;column-rule: 1px solid #000;}
Hvis du har en overskrift, og du vil have, at overskriften skal spænde over alle kolonnerne, skal du bare tilføje en linje:
/*This h1 will take up the space of the 3 columns*/.cols3 h1{column-span: all;}
Du kan anvende dette på stort set enhver HTML, fra et enkelt afsnit til flere
Hoppe til CSS kolonner har mange fordele efter min mening, ingen grund til at benytte sig af mange matematik, flyder eller indholdsbrud, når browseren bliver ændret af brugeren. Du kan også skrive din kode på en meget mere semantisk måde, og da de understøttes af alle de store browsere, bør du overveje at bruge kolonner fra nu af.
Stil du kolonner med CSS3, eller holder dig til floats og positionering? Hvilke tip har du til håndtering af ældre browsere? Lad os vide i kommentarerne.
Fremhævet billede / miniaturebillede, kolonner billede via Shutterstock.