Si mund të bëhen kolonat
Së pari, le të shohim vetëm disa mënyra se si mund të krijoni kolona, dhe më pas do të shqyrtojmë disa shembuj.
Përdorimi i blloqeve lundruese. Sot kjo është mënyra më e popullarizuar për të bërë altoparlantë, megjithëse flexbox po fillon ngadalë ta mbushë atë. Si parazgjedhje, dy blloqe në rrjedhën normale nuk mund të jenë në të njëjtën linjë, por kjo sjellje mund të ndryshohet lehtësisht duke vendosur të dyja vetinë float: majtas | drejtë. Ata do të fillojnë të struken në skajin e majtë ose të djathtë. Në mënyrë që blloku pas tyre të perceptojë blloqet lundruese dhe t'i vendosë saktë, duhet të shkruhet qartë: të dyja.
Me ndihmën e notave, më së shpeshti bëhen 2 ose 3 kolona. Paraqitja e një siti me blloqe lundruese nuk është shumë e vështirë, thjesht duhet të dini disa nga nuancat e sjelljes së tyre. Për shembull, nëse duhet të bëni një zonë për shfaqjen e artikujve, dhe në të djathtë - një shirit anësor me një menu, atëherë blloqet lundruese e zbatojnë shumë lehtë këtë rregullim.
Përdorimi i tabelave. Tabelat në përgjithësi u krijuan për të shfaqur një numër të madh qelizash dhe kolonash, kështu që krijimi i kolonave në to është një copë tortë. Tabela mund të ketë të paktën 20 kolona. E gjithë struktura e tij është vendosur në kodin html, kështu që kodi rezulton të jetë mjaft i rëndë.
Meqenëse qelizat në tabelë mund të vendosen në çdo madhësi, pothuajse të gjitha faqet përdoreshin për paraqitje. Për shembull, për të zbatuar paraqitjen më të thjeshtë (header, content, sidebar, footer), në tabelë u bënë tre rreshta (rreshti i tabelës formohet nga etiketa tr). Çdo rresht përmban dy qeliza sepse përmbajtja dhe shiriti anësor duhet të mbahen të ndara nga njëra-tjetra. Dhe në header dhe footer, këto qeliza thjesht u lidhën duke përdorur atributin colspan të etiketës td, nëse ishte e nevojshme.
Ju mund ta hiqni me lehtësi kufirin nga qelizat, gjë që e bëri të lehtë për zhvilluesit e uebit të shtypnin shabllone që ishin komplekse në strukturë.
Me flexbox. Kjo është një teknologji moderne që filloi të përhapet në vitin 2014, megjithëse ka ekzistuar edhe më parë. Thelbi i tij është si më poshtë: krijohet një bllok i përgjithshëm i kontejnerëve, në të cilin vendosen blloqe të tjera, të cilat do të duhet të bëhen në formën e kolonave, pastaj të shfaqin: flex duhet t'i caktohet këtij enë.
Më pas, zakonisht vendosni veçorinë flex-direction, e cila përcakton drejtimin e boshtit kryesor përgjatë të cilit do të vendosen kutitë. Vlerat mund të vendosen në: rresht dhe kolonë. Vlera e parë do t'i drejtojë blloqet horizontalisht nga e djathta në të majtë, e dyta - poshtë. Mund të caktoni edhe anasjelltas: flex-direction: row-reverse. Blloqet do të vendosen nga e djathta në të majtë.
Ekziston gjithashtu një grup karakteristikash të veçanta për blloqet e fëmijëve të kontejnerit flex. Në thelb, këto veti ju lejojnë të vendosni madhësinë e bllokut dhe sjelljen e tij në lidhje me elementët e tjerë.
Avantazhi i flexbox është se është shumë më fleksibël. Nëse, në paraqitjen e bllokut, zhvilluesve të uebit shpesh duhej të llogarisnin gjithçka piksel pas piksel, duke vendosur dhëmbëzimet e sakta, duke shtuar truke të ndryshme në kod në mënyrë që gjithçka të mos shpërbëhej, atëherë elementët e përkulur qëndrojnë lehtësisht në një kolonë, në një rresht dhe në përgjithësi. kërkojnë shumë më pak llogaritje matematikore nga jashtë.zhvilluesi.
Thyerja e tekstit në kolona
Megjithatë, ende nuk e kam prekur temën më të rëndësishme. CSS sot ofron mundësinë për të ndarë tekstin në një kuti kryesore pa pasur nevojë për kuti lundruese, tabela ose kuti fleks. Kjo do të thotë, një bllok i rregullt mbetet në html, dhe teksti ndahet në kolona ekskluzivisht falë css.
Pra, vetitë e renditura më poshtë vlejnë për një bllok në të cilin teksti duhet të ndahet në disa kolona.
Column-count - vetia përcakton numrin e kolonave në të cilat teksti duhet të ndahet. Rekomandohet të vendosni vlerën nga 2 në 4, në varësi të mënyrës se si ju pëlqen.
Column-width - vendos numrin e karaktereve të tekstit në një kolonë. Theksoj se gjerësia e kolonës në këtë rast nuk përcaktohet nga pikselët, por nga numri i karaktereve. Optimale: 30-50 karaktere në një kolonë. Gjithashtu, kjo pronë nuk mund të quhet në asnjë mënyrë ndër-shfletues, sepse ju vendosni vetëm numrin e dëshiruar të karaktereve, por nëse shfletuesi do të veprojë në përputhje me dëshirat tuaja nuk dihet ende.
Hendeku i kolonës - përcakton hendekun midis kolonave. Mund të vendoset në pixel.
Rregulla e kolonës - Vizaton një vijë që ndan kolonat. Sintaksa e vetive është identike me vetinë kufitare. Fillimisht regjistrohet trashësia e vijës, më pas lloji i saj dhe më pas ngjyra.
Gjithashtu dua të përmend se të gjitha këto prona css janë relativisht të reja. Për shembull, Internet Explorer i mbështet ato vetëm nga versioni i dhjetë. Këto janë veti nga standardi CSS3, kështu që nëse do t'i përdorni në faqen tuaj, atëherë duhet të kujdeseni për përputhshmërinë e shfletuesve, përndryshe nuk do të ketë kolona në versionet më të vjetra të Opera dhe IE.
Shembuj të
Blloqe lundruese. Paraqitja e një siti në dy kolona më së shpeshti bëhet shumë thjesht duke përdorur blloqe lundruese. Në css, ajo zbatohet si kjo:
Float-block1 (float: majtas) .float-block2 (float: majtas) blloku që duhet të jetë nën notat (e qartë: majtas | të dyja)
Kjo do të thotë, blloku i poshtëm duhet të specifikohet me këtë veti në mënyrë që të pozicionohet saktë. Kështu, kutitë lundruese do të bëhen një rresht nëse janë mjaft të gjera në elementin prind. Natyrisht, gjithashtu duhet të specifikoni gjerësinë, lartësinë dhe kufirin e blloqeve, në mënyrë që të duket si në këtë pamje të ekranit:
Tani le të bëjmë pjesën argëtuese. Le të shtojmë shumë tekst të rastësishëm në bllokun kryesor dhe të përpiqemi ta shfaqim atë atje në tre kolona, si në një gazetë ose revistë. Për ta bërë këtë, duhet të shtoni rregulla të tilla në kodin e këtij blloku.
Në artikullin e sotëm, dua të flas për një mënyrë të re për të krijuar kolona me lartësi të barabartë duke përdorur CSS. Nuk keni më nevojë të përdorni Javascript për t'i bërë lartësitë e kolonave të njëjta për të gjithë. Thelbi i kësaj metode është përdorimi i një vetie të re CSS3 që na jep shumë më tepër opsione sesa thjesht krijimi i kolonave me të njëjtën lartësi. Por në këtë mësim do të shohim se sa e lehtë është të zgjidhet ky problem i dhimbshëm.
Pamja e faqes
pjesë HTML
Le të përcaktojmë dy kolona, të cilat në të ardhmen do t'i bëjmë të njëjtën lartësi duke përdorur CSS:
1 2 3 4 5 6 7 8 | id = "faqe"> <div id = "kryesore"> </ div> |
Kjo do të thotë, ne duhet të bëjmë bllokun Le të përcaktojmë një flexbox për kontejnerin kryesor, i cili përmban dy kuti: Mirë! Tani mbetet për të vendosur gjerësinë për bllokun qendror me përmbajtjen kryesore dhe për shiritin anësor: Shpjegimet: Faqja jonë është afër përfundimit. Por kur blloku kryesor i përmbajtjes tkurret, faqja bëhet shumë e gjatë. Prandaj, në një gjerësi të caktuar të ekranit, ne mund të bëjmë që shiriti anësor të shkojë nën bllok me përmbajtjen kryesore dhe të shihet lehtësisht në pajisjet celulare: Këtu është kodi pa parashtesa që të mos zërë shumë hapësirë dhe të mos duket i rëndë. Ju mund të keni një shembull plotësisht funksional duke përdorur butonin në fillim të artikullit. Ju gjithashtu duhet të thoni se ku funksionon kjo metodë. Meqenëse kjo pronë është mjaft e re, ajo funksionon në shfletuesit modernë Firefox, Chrome, Safari, Opera dhe IE 11. Në këtë artikull, mësuat se si të bëni kolona me lartësi të barabartë duke përdorur CSS. Por këto nuk janë të gjitha mundësitë e kësaj prone CSS. Vetia flex ju lejon t'i bëni kutitë fluide, t'i rregulloni artikujt automatikisht në kolona ose rreshta të shumtë, duke zënë të gjithë zonën e lirë dhe shumë më tepër. Por zgjidhja më themelore, dhe, më e rëndësishmja, e përdorur shpesh për paraqitjen e faqeve, ne kemi shqyrtuar në këtë artikull. Kjo faqe përmban shembuj për t'ju ndihmuar kolona me të njëjtën lartësi në paraqitjet me plan urbanistik. Për shumë stilistë rishtar të paraqitjes, ky është një problem i caktuar, sepse nëse lartësia nuk tregohet në mënyrë të qartë në kolonat e paraqitjes, atëherë ato shtrihen aq sa për të akomoduar përmbajtjen e tyre. Prandaj, rezulton se në vend të së njëjtës lartësi, secila kolonë në paraqitje ka të sajën, e cila nuk duket shumë e bukur. Për qartësi, të gjithë shembujt përdorin paraqitjet me futja e shtypur... Prandaj, unë tërheq vëmendjen tuaj për faktin se disa blloqe ose veti CSS që përfshihen në krijimin e kolonave me të njëjtën lartësi janë tashmë të pranishme fillimisht në paraqitjet. Kjo do të thotë, në fund, ata kryejnë funksione të dyfishta - shtypin fundin në fund dhe tërheqin kolonat. Megjithatë, për lehtësi më të madhe, vetëm ato prona që tërheqin kolonat do të furnizohen Komentet e CSS, dhe nuk ka rëndësi nëse ato përdoren për ndonjë qëllim tjetër apo jo. Ky shembull bazohet në parimin e pseudo-kolonave shtesë dhe pozicionimit absolut. Për këtë, krijohen disa blloqe (nga numri i kolonave), të cilat shtrihen në lartësinë e plotë të faqes dhe vendosen nën kolonat reale. Në mënyrë që të shfaqet efekti i kolonave me të njëjtën lartësi, këto pseudo-kolona vendosen në ngjyrën e kërkuar të sfondit. Meqenëse Internet Explorer 6 ka probleme me këtë metodë të krijimit të kolonave me të njëjtën lartësi, disa hakerat: Ky shembull është më i thjeshti për t'u zbatuar dhe konsiston në krijimin e një imazhi të vogël "horizontal", të përbërë nga disa ngjyra (nga numri i kolonave), i cili më pas "shumohet" vertikalisht, duke imituar kolonat. Fatkeqësisht, kjo metodë është e përshtatshme vetëm për paraqitjet fikse, përveç kësaj, mos harroni se nuk do të ketë kolona në një shfletues me imazhe me aftësi të kufizuara.
Imazhi i sfondit i përdorur në shembull mund të shihet. Ishte me ndihmën e tij që u krijua pamja e kolonave me të njëjtën lartësi. Ky shembull përdor një teknikë mjaft të pazakontë. Së pari, të gjitha kolonave u jepen kufij shumë të mëdhenj të poshtëm, për shkak të të cilave ato shtrihen, dhe më pas kufijtë e poshtëm janë të njëjta në madhësi, por në vlerë negative. Në fund, gjithçka që është "e tepërt" thjesht ndërpritet.
Kjo metodë është ndër-browser dhe të gjithë e kuptojnë atë, përfshirë Internet Explorer 6. Por së bashku me mënyrën se si është shtypur footer-i, ajo refuzon të funksionojë siç duhet. Unë nuk dola me më shumë paterica për këtë plak, por përkundrazi hoqa disa veçori që e ndihmojnë atë të shtypë fundin e faqes. Prandaj, kur shtoni përmbajtje në kolona - në IE6 gjithçka zvarritet siç pritej. Me ardhjen e kaq shumë madhësive dhe rezolucioneve të ndryshme të ekranit, është bërë tepër jopraktike krijimi i modeleve me blloqe fikse teksti që shtrihen në të gjithë gjerësinë e ekranit. Qasja tradicionale është ndarja e tekstit në dy kolona, dhe kjo shpesh bëhet me dorë dhe kërkon kohë. Ose teksti ndahet duke përdorur javascript, i cili nuk është i përshtatshëm për të gjitha situatat. Gjithashtu, ne duhet të jemi në gjendje ta bëjmë këtë me CSS pa përdorur sistemet e rrjetit ose float, apo jo? CSS3 në fakt ju jep mundësinë për të ndarë tekstin në kolona të shumta, si dhe për të përmasuar brazda (hapësira ndërmjet kolonave), kështu që ju mund të keni kontroll të plotë mbi kolonat, në vend që të përdorni një kornizë ose sistem rrjeti. Përveç kësaj, CSS3 ofron kthime të shkëlqyera në rast se përdoruesi përdor, për shembull, Netscape Navigator - faqosja e faqes suaj do të vazhdojë të duket e mrekullueshme. Mbështetja e shfletuesit
Është e rëndësishme të theksohet se ndërsa praktikisht të gjithë shfletuesit modern mbështesin kolona të shumta në CSS3 (po, madje edhe IE10), shumë shfletues të vjetër si IE9 nuk e ofrojnë këtë mbështetje. Ndërsa mbështetja është mjaft e mirë, mund t'ju duhet të përdorni prefikset e shfletuesit për webkit (-webkit-) dhe mozilla (-moz-). Megjithatë, nuk keni nevojë të përdorni -ms- ose -o- për IE dhe Opera, pasi ato vijnë me mbështetje të plotë ose të pjesshme. Kjo veti CSS ju jep mjaft opsione për të kontrolluar se si shfaqet përmbajtja juaj në dritaren e shfletuesit dhe le t'i hedhim një sy këtyre opsioneve: * numërimi i kolonave: këtu mund të specifikoni numrin e kolonave që do të shfaqen në element. Me të gjitha këto opsione, ne nuk mendojmë se kemi nevojë për më shumë për të kontrolluar kolonat. Natyrisht, për funksionimin normal të altoparlantëve të shumtë, nuk na duhen domosdoshmërisht të gjitha këto parametra. Për më tepër, në thelb, ne kemi nevojë vetëm për parametrin e numërimit të kolonave, por ndoshta gjithmonë do të përdorni edhe boshllëkun e kolonës në mënyrë që teksti i kolonës të mos bashkohet me kufijtë e tij. Për ta zbatuar këtë në praktikë, na duhen vetëm disa rreshta kodi: / * Kjo do të prodhojë një plan urbanistik me 3 kolona me një hendek prej 20 px midis secilës kolonë * / / * Kjo do të prodhojë një plan urbanistik me 3 kolona dhe një hendek prej 20 px midis secilës kolonë dhe një rregull prej 1px të zezë të fortë * / Cols3 ( / * Ky h1 do të zërë hapësirën e 3 kolonave * / Dhe tani ne duam t'ju ofrojmë kodin e plotë për këtë efekt: Cum sociis natoque penatibus et magnis disparturient 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. Numri i plotë 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 disparturient 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. Kalimi në krijimin e kolonave duke përdorur CSS, sipas mendimit tonë, na jep shumë përparësi - nuk kemi më nevojë të bëjmë asnjë lloj llogaritje matematikore, të krijojmë elementë lundrues dhe nuk kemi nevojë të durojmë thyerjen e përmbajtjes kur përdoruesit ndryshojnë madhësinë e dritares së shfletuesit. Ju gjithashtu mund të shkruani kodin në një mënyrë më semantike, dhe meqenëse kjo metodë mbështetet nga të gjithë shfletuesit modernë, mund të kaloni në të sot. Jeni duke stiluar kolonat me CSS3, apo jeni ende duke përdorur notat dhe pozicionimin? Çfarë metodash përdorni për të kapërcyer problemet me shfletuesit e vjetër? Ndani me ne në komente. Vlad Merzheviç Një rrjet modular me dy kolona përdoret shpesh në sajte, ndërsa, si rregull, një kolonë përmban materialin kryesor (teksti i një artikulli, për shembull), dhe e dyta përmban lidhje me seksionet e sitit dhe informacione të tjera. Për të krijuar një paraqitje të tillë, tabelat janë mjaft të përshtatshme - secila qelizë vepron si një kolonë e veçantë, gjë që e bën të lehtë rregullimin e parametrave të ndryshëm të shfaqjes së dokumentit. Për të filluar, le të shqyrtojmë opsionin më të thjeshtë, kur gjerësia e kolonës së majtë është e koduar në piksele, dhe gjerësia e kolonës së djathtë ndryshon në varësi të madhësisë së dritares së shfletuesit. Për ta bërë këtë, ju duhet të vendosni gjerësinë totale të të gjithë tabelës në përqindje përmes atributit gjerësi të etiketës Kolona me të njëjtën lartësi
Pjesa CSS
konkluzioni
Kolonat me lartësi të barabartë duke përdorur pozicionimin
Përshkrimi i shembullit
Kolonat me të njëjtën lartësi me një imazh të sfondit
Përshkrimi i shembullit
Kolona me lartësi të barabartë duke përdorur margjina dhe mbushje
Përshkrimi i shembullit
Parametrat
* kolonë-gjerësi: gjerësia e një kolone individuale. Jini të përgatitur për faktin se ndonjëherë shfletuesit e ndryshojnë këtë vlerë vetë.
* kolonë-boshllëk: gjerësia e brazdës midis kolonave.
* kolonë-rregull-gjerësi: Kjo është si kufijtë e kolonave tuaja, dhe këtu duhet të specifikoni gjerësinë e kufirit.
* kolonë-rregull-stili: gjithashtu një lloj kufiri nëse keni nevojë të vendosni stilin.
* kolonë-rregull-ngjyrë: Ky parametër përdoret për të specifikuar një ngjyrë.
* shtyllë-hapësirë: Kjo vlerë i tregon shfletuesit se sa kolona dëshironi të bashkoni - është mirë të përdoret për titujt dhe funksionon si colspan dhe rowspan në tabela.
.cols3 (
numërimi i kolonave: 3;
boshllëk kolone: 20 px;
}
Nëse dëshironi të aplikoni gjithashtu një rregull në kolonat, atëherë do t'ju duhet të shtoni këto parametra:
.cols3 (
numërimi i kolonave: 3;
boshllëk kolone: 20 px;
kolona-rregulli-gjerësia: 1px;
kolonë-rregull-style: solid;
kolona-rregull-ngjyra: # 000;
}
Ashtu si me parametrin e njohur të kufirit, mund të aplikoni ngjyrën, stilin dhe gjerësinë si më poshtë:
numërimi i kolonave: 3;
boshllëk kolone: 20 px;
kolona-rregull: 1px solid # 000;
}
Nëse keni një titull dhe dëshironi që ai titull të përfshijë gjerësinë e plotë të të gjitha kolonave, atëherë duhet të shtoni linjën e mëposhtme të kodit:
.cols3 h1 (
shtyllë-hapësirë: të gjitha;
}
Ju mund ta aplikoni këtë teknikë në pothuajse çdo kod HTML, nga një paragraf i vetëm në div të shumëfishta. Le të shohim një demonstrim:
Numri i plotë posuere erat a ante
Përfundimi
Gjerësia e kolonës