Cum se pot face coloane
Mai întâi, să ne uităm la câteva moduri în care puteți crea coloane, apoi vom trece peste câteva exemple.
Folosind blocuri plutitoare. Astăzi, acesta este cel mai popular mod de a face difuzoare, deși flexbox începe încet să-l aglomereze. În mod implicit, două blocuri în flux normal nu pot fi pe aceeași linie, dar acest comportament poate fi ușor modificat prin setarea atât a proprietății float: left | dreapta. Vor începe să se ghemuiască până la marginea stângă sau dreaptă. Pentru ca blocul care îi urmărește să perceapă blocurile plutitoare și să le plaseze corect, trebuie scris clar: ambele.
Cu ajutorul plutitoarelor se fac cel mai adesea 2 sau 3 coloane. Dispunerea unui site cu blocuri plutitoare nu este foarte dificilă, trebuie doar să cunoașteți câteva dintre nuanțele comportamentului lor. De exemplu, dacă trebuie să faceți o zonă pentru afișarea articolelor, iar în dreapta - o bară laterală cu un meniu, blocurile plutitoare implementează foarte ușor acest aranjament.
Folosind tabele. Tabelele au fost în general create pentru a afișa un număr mare de celule și coloane, așa că a face coloane în ele este o simplă simplă. Tabelul poate avea cel puțin 20 de coloane. Întreaga sa structură este setată în cod html, așa că codul se dovedește a fi destul de greoi.
Deoarece celulele din tabel pot fi setate la orice dimensiune, aproape toate site-urile erau folosite pentru aspect. De exemplu, pentru a implementa cel mai simplu aspect (header, content, sidebar, footer), au fost realizate trei rânduri în tabel (rândul tabelului este format din eticheta tr). Fiecare rând conține două celule, deoarece conținutul și bara laterală trebuie păstrate separate unul de celălalt. Și în antet și subsol, aceste celule au fost pur și simplu conectate folosind atributul colspan al etichetei td, dacă este necesar.
Puteți elimina cu ușurință chenarul din celule, ceea ce a făcut ca dezvoltatorii web să formeze cu ușurință șabloane cu structură complexă.
Cu flexbox. Aceasta este o tehnologie modernă care a început să se răspândească în 2014, deși a existat înainte. Esența sa este următoarea: se creează un bloc container general, în care sunt plasate alte blocuri, care vor trebui realizate sub formă de coloane, apoi afișați: flex trebuie să fie atribuit acestui container.
Apoi, de obicei setați proprietatea flex-direction, care determină direcția axei principale de-a lungul căreia vor fi poziționate casetele. Valorile pot fi setate la: rând și coloană. Prima valoare va direcționa blocurile orizontal de la dreapta la stânga, a doua - în jos. De asemenea, puteți seta inversul: flex-direction: row-reverse. Blocurile vor fi amplasate de la dreapta la stânga.
Există, de asemenea, un set de proprietăți separate pentru blocurile copii ale containerului flexibil. Practic, aceste proprietăți vă permit să setați dimensiunea blocului și comportamentul acestuia în raport cu alte elemente.
Avantajul flexbox este că este mult mai flexibil. Dacă, în aspectul bloc, dezvoltatorii web trebuiau adesea să calculeze totul pixel cu pixel, setând indentările corecte, adăugând diverse trucuri la cod, astfel încât totul să nu se destrame, atunci elementele flex stau cu ușurință într-o coloană, într-un rând și în general necesită mult mai puține calcule matematice din exterior.dezvoltator.
Împărțirea textului în coloane
Cu toate acestea, nu am atins încă cel mai important subiect. CSS oferă astăzi posibilitatea de a împărți textul într-o casetă principală fără a fi nevoie de casete flotante, tabele sau casete flexibile. Adică, un bloc obișnuit rămâne în html, iar textul este împărțit în coloane exclusiv datorită css.
Deci, proprietățile enumerate mai jos se aplică unui bloc în care textul trebuie împărțit în mai multe coloane.
Număr de coloane - proprietatea stabilește numărul de coloane în care trebuie împărțit textul. Este recomandat să setați valoarea de la 2 la 4, în funcție de cum vă place.
Lățimea coloanei - setează numărul de caractere text dintr-o coloană. Subliniez că lățimea coloanei în acest caz este stabilită nu de pixeli, ci de numărul de caractere. Optimal: 30-50 de caractere într-o coloană. De asemenea, această proprietate nu poate fi numită în niciun fel cross-browser, deoarece setați doar numărul dorit de caractere, dar încă nu se știe dacă browserul va acționa în conformitate cu dorințele dumneavoastră.
Column-gap - definește distanța dintre coloane. Poate fi setat în pixeli.
Regulă-coloană - Desenează o linie care separă coloanele. Sintaxa proprietății este identică cu proprietatea border. În primul rând, se înregistrează grosimea liniei, apoi tipul acesteia și apoi culoarea.
De asemenea, aș dori să menționez că toate aceste proprietăți css sunt relativ noi. De exemplu, Internet Explorer le acceptă doar din a zecea versiune. Acestea sunt proprietăți din standardul CSS3, așa că dacă urmează să le folosiți pe site-ul dvs., atunci trebuie să aveți grijă de compatibilitatea între browsere, altfel nu vor exista coloane în versiunile mai vechi de Opera și IE.
Exemple de
Blocuri plutitoare. Aspectul unui site în două coloane se face cel mai adesea foarte simplu folosind blocuri plutitoare. În css, este implementat astfel:
Float-block1 (float: stânga) .float-block2 (float: stânga) bloc care ar trebui să fie sub floats (clear: stânga | ambele)
Adică blocul inferior trebuie specificat cu această proprietate, astfel încât să fie poziționat corect. Astfel, cutiile plutitoare vor deveni o singură linie dacă sunt suficient de largi în elementul părinte. Desigur, trebuie să specificați și lățimea, înălțimea și chenarul blocurilor, astfel încât să arate ca în această captură de ecran:
Acum hai să facem partea distractivă. Să adăugăm mult text aleatoriu în blocul principal și să încercăm să-l afișam acolo în trei coloane, ca într-un ziar sau o revistă. Pentru a face acest lucru, trebuie să adăugați astfel de reguli la codul acestui bloc.
În articolul de astăzi, vreau să vorbesc despre o nouă modalitate de a crea coloane de înălțime egală folosind CSS. Nu mai trebuie să utilizați Javascript pentru a face înălțimile coloanelor la fel pentru toată lumea. Esența acestei metode este să folosim o nouă proprietate CSS3 care ne oferă mult mai multe opțiuni decât simpla creare a coloanelor de aceeași înălțime. Dar în această lecție ne vom uita la cât de ușor este să rezolvi această problemă dureroasă.
Aranjament în pagină
Partea HTML
Să definim două coloane, pe care în viitor le vom face aceeași înălțime folosind CSS:
1 2 3 4 5 6 7 8 | id = "pagina"> <div id = "principal"> </ div> |
Adică trebuie să facem blocul Să definim o casetă flexibilă pentru containerul principal, care conține două casete: Amenda! Acum rămâne să setați lățimea pentru blocul central cu conținutul principal și pentru bara laterală: Explicatii: Pagina noastră este aproape de finalizare. Dar când blocul de conținut principal se micșorează, pagina devine foarte lungă. Prin urmare, la o anumită lățime a ecranului, putem face ca bara laterală să treacă sub blocul cu conținutul principal și să fie ușor de vizualizat pe dispozitivele mobile: Iată codul fără prefixe astfel încât să nu ocupe mult spațiu și să nu pară greoi. Puteți avea un exemplu complet funcțional folosind butonul de la începutul articolului. De asemenea, trebuie să spuneți despre unde funcționează această metodă. Deoarece această proprietate este destul de nouă, funcționează în browserele moderne Firefox, Chrome, Safari, Opera și IE 11. În acest articol, ați învățat cum să faceți coloane de înălțime egală folosind CSS. Dar acestea nu sunt toate posibilitățile acestei proprietăți CSS. Proprietatea flex vă permite să faceți cutiile fluide, să aranjați automat articolele în mai multe coloane sau rânduri, ocupând întreaga zonă liberă și multe altele. Dar cea mai de bază și, cel mai important, soluția des folosită pentru aspectul paginii, am luat-o în considerare în acest articol. Această pagină conține exemple pentru a vă ajuta coloane de aceeași înălțimeîn machete cu aspect bloc. Pentru mulți designeri de layout începători, aceasta este o anumită problemă, deoarece dacă înălțimea nu este indicată în mod explicit în coloanele aspectului, atunci se întind suficient pentru a se adapta conținutului lor. În consecință, se dovedește că, în loc de aceeași înălțime, fiecare coloană din aspect are propria sa, care nu arată foarte frumos. Pentru claritate, toate exemplele folosesc layout-uri cu subsol apăsat... Prin urmare, vă atrag atenția asupra faptului că unele blocuri sau proprietăți CSS care sunt implicate în crearea coloanelor de aceeași înălțime sunt deja prezente inițial în layout-uri. Adică, în cele din urmă, îndeplinesc funcții duble - apasă subsolul în jos și trag coloanele. Cu toate acestea, pentru o mai mare comoditate, vor fi furnizate numai acele proprietăți care trag coloanele Comentarii CSSși nu contează dacă sunt folosite sau nu în alt scop. Acest exemplu se bazează pe principiul pseudo-coloanelor suplimentare și al poziționării absolute. Pentru aceasta, sunt create mai multe blocuri (după numărul de coloane), care sunt întinse la toată înălțimea paginii și plasate sub coloanele reale. Pentru ca efectul coloanelor de aceeași înălțime să apară, aceste pseudo-coloane sunt setate la culoarea de fundal necesară. Deoarece Internet Explorer 6 are probleme cu această metodă de a crea coloane de aceeași înălțime, mai multe hack-uri: Acest exemplu este cel mai ușor de implementat și constă în faptul că se creează o imagine mică „orizontală”, formată din mai multe culori (după numărul de coloane), care este apoi „înmulțită” pe verticală, imitând coloanele. Din păcate, această metodă este potrivită doar pentru layout-uri fixe, în plus, nu uitați că nu vor exista coloane într-un browser cu imagini dezactivate.
Imaginea de fundal folosită în exemplu poate fi văzută. Cu ajutorul acestuia a fost creat aspectul unor coloane de aceeași înălțime. Acest exemplu folosește o tehnică destul de neobișnuită. În primul rând, tuturor coloanelor li se oferă marje inferioare foarte mari, datorită cărora se întind, iar apoi marginile inferioare au aceeași dimensiune, dar negative ca valoare. Până la urmă, tot ce este „de prisos” este pur și simplu tăiat.
Această metodă este cross-browser și toată lumea o înțelege, inclusiv Internet Explorer 6. Dar împreună cu modul în care a fost apăsat subsolul, refuză să funcționeze corect. Nu am venit cu mai multe cârje pentru acest bătrân, ci, dimpotrivă, am eliminat câteva proprietăți care îl ajută să apese în jos pe subsol. Prin urmare, atunci când adăugați conținut la coloane - în IE6 totul se trage așa cum era de așteptat. Odată cu apariția atâtor dimensiuni și rezoluții diferite ale ecranului, a devenit incredibil de nepractic să creați modele cu blocuri fixe de text care se întind pe întreaga lățime a ecranului. Abordarea tradițională este împărțirea textului în două coloane, iar acest lucru se face adesea manual și necesită timp. Sau textul este împărțit folosind javascript, care nu este potrivit pentru toate situațiile. De asemenea, ar trebui să putem face acest lucru cu CSS fără a apela la sisteme grid sau float, nu-i așa? CSS3 vă oferă de fapt capacitatea de a împărți textul în mai multe coloane, precum și de a mări canelurile (spațierea dintre coloane), astfel încât să puteți avea control deplin asupra coloanelor, în loc să utilizați un cadru sau un sistem de grilă. În plus, CSS3 oferă soluții excelente în cazul în care utilizatorul folosește, de exemplu, Netscape Navigator - aspectul site-ului tău va arăta în continuare grozav. Suport pentru browser
Este important de reținut că, în timp ce practic toate browserele moderne acceptă mai multe coloane în CSS3 (da, chiar și IE10), multe browsere mai vechi, cum ar fi IE9, nu oferă acest suport. Deși suportul este destul de bun, ar putea fi necesar să utilizați prefixele browserului pentru webkit (-webkit-) și mozilla (-moz-). Cu toate acestea, nu trebuie să utilizați -ms- sau -o- pentru IE și Opera, deoarece acestea vin cu suport complet sau parțial. Această proprietate CSS vă oferă câteva opțiuni pentru a controla modul în care conținutul dvs. este afișat în fereastra browserului și să aruncăm o privire la aceste opțiuni: * număr-coloană: aici puteți specifica numărul de coloane care vor fi afișate în element. Cu toate aceste opțiuni, nu simțim că avem nevoie de mai mult pentru a controla coloanele. Desigur, pentru funcționarea normală a mai multor difuzoare, nu avem neapărat nevoie de toți acești parametri. Mai mult decât atât, practic, avem nevoie doar de parametrul column-count, dar probabil că veți folosi întotdeauna și column-gap, astfel încât textul coloanei să nu se îmbine cu marginile acesteia. Pentru a pune acest lucru în practică, avem nevoie doar de câteva linii de cod: / * Aceasta va produce un aspect cu 3 coloane cu un spațiu de 20 pixeli între fiecare coloană * / / * Aceasta va produce un aspect cu 3 coloane și un spațiu de 20 px între fiecare coloană și o regulă de 1 px negru solid * / Cols3 ( / * Acest h1 va ocupa spațiul celor 3 coloane * / Și acum vrem să vă oferim codul complet pentru acest efect: Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam quis risus eget urna mollis ornare vel eu leo. Nullam id dolor id nibh ultricies vehicula ut id elit. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean lacinia bibendum nulla sed consectetur. Cras mattis consectetur purus sit amet fermentum. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Etiam porta sem malesuada magna mollis euismod. Etiam porta sem malesuada magna mollis euismod. Nullam quis risus eget urna mollis ornare vel eu leo. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nullam quis risus eget urna mollis ornare vel eu leo. Aenean lacinia bibendum nulla sed consectetur. Curabitur blandit tempus porttitor. Cras mattis consectetur purus sit amet fermentum. Aenean lacinia bibendum nulla sed consectetur. Donec id elit non mi porta gravida at eget metus. Curabitur blandit tempus porttitor. Trecerea la crearea de coloane folosind CSS, în opinia noastră, ne oferă multe avantaje - nu mai trebuie să facem niciun fel de calcule matematice, să creăm elemente plutitoare și nu trebuie să suportăm refracția conținutului atunci când utilizatorii redimensionăm fereastra browserului. De asemenea, puteți scrie cod într-o manieră mai semantică și, deoarece această metodă este acceptată de toate browserele moderne, puteți trece la ea astăzi. Stilați coloanele cu CSS3 sau încă folosiți floats și poziționare? Ce metode folosiți pentru a rezolva problemele cu browserele mai vechi? Distribuie cu noi în comentarii. Vlad Merjevici O grilă modulară cu două coloane este adesea folosită pe site-uri, în timp ce, de regulă, o coloană conține materialul principal (textul unui articol, de exemplu), iar a doua conține link-uri către secțiuni ale site-ului și alte informații. Pentru a crea un astfel de aspect, tabelele sunt destul de convenabile - fiecare celulă acționează ca o coloană separată, ceea ce face ușoară ajustarea diferiților parametri ai afișajului documentului. Pentru început, să luăm în considerare cea mai simplă opțiune, când lățimea coloanei din stânga este codificată în pixeli, iar lățimea coloanei din dreapta variază în funcție de dimensiunea ferestrei browserului. Pentru a face acest lucru, trebuie să setați lățimea totală a întregului tabel în procente prin atributul lățime al etichetei Coloane de aceeași înălțime
Partea CSS
Ieșire
Coloane de înălțime egală folosind poziționare
Descrierea exemplului
Coloane de aceeași înălțime cu o imagine de fundal
Descrierea exemplului
Coloane de înălțime egală folosind margini și umplutură
Descrierea exemplului
Opțiuni
* lățimea coloanei: lățimea unei coloane individuale. Fiți pregătiți pentru faptul că uneori browserele schimbă singure această valoare.
* coloane-decalaj: lățimea canelurii dintre coloane.
* coloană-regula-lățime: Acesta este ca și marginile coloanelor dvs. și aici trebuie să specificați lățimea chenarului.
* coloană-regulă-stil: de asemenea, un fel de chenar dacă trebuie să setați stilul.
* coloană-regula-culoare: Acest parametru este folosit pentru a specifica o culoare.
* coloană-span: Această valoare îi spune browserului câte coloane doriți să concatenați - este bine să utilizați pentru anteturi și funcționează ca colspan și rowspan pe tabele.
.cols3 (
număr de coloane: 3;
coloane-decalaj: 20px;
}
Dacă doriți să aplicați și o regulă coloanelor, atunci va trebui să adăugați acești parametri:
.cols3 (
număr de coloane: 3;
coloane-decalaj: 20px;
coloană-regula-lățime: 1px;
coloană-regulă-stil: solid;
coloană-regula-culoare: # 000;
}
Ca și în cazul binecunoscutului parametru de chenar, puteți aplica culoarea, stilul și lățimea după cum urmează:
număr de coloane: 3;
coloane-decalaj: 20px;
regulă-coloană: 1px solid # 000;
}
Dacă aveți un antet și doriți ca acesta să acopere toată lățimea tuturor coloanelor, atunci trebuie să adăugați următoarea linie de cod:
.cols3 h1 (
coloana-span: toate;
}
Puteți aplica această tehnică la aproape orice cod HTML, de la un singur paragraf la mai multe div-uri. Să vedem o demonstrație:
Integer posuere erat a ante
Completare
Lățimea coloanei