Odjeljci stranice
Izbor urednika:
- Što učiniti ako na vašem računalu nema D pogona?
- Kako pravilno dodati novu particiju na tvrdi disk?
- Recenzija JBL Flip3 Bluetooth zvučnika
- Formati knjiga
- Povezivanje i postavljanje interaktivne televizije od Rostelecoma
- Kako izbrisati svoj Instagram račun
- Android tablet ili iPad - što odabrati?
- Kako pravilno oblikovati nastavak tablice u Wordu
- Što učiniti ako se razvijate izvan mreže
- Ispitivanje pregrijavanja procesora
Oglašavanje
Centrirajte element na css stranice. Centriranje diva i druge suptilnosti pozicioniranja |
Okomito centriranje elemenata pomoću CSS-a zadatak je koji programerima predstavlja određene poteškoće. Međutim, postoji nekoliko metoda za njegovo rješavanje, koje su prilično jednostavne. Ova lekcija predstavlja 6 opcija za okomito centriranje sadržaja. Počnimo s općim opisom problema. Problem okomitog centriranjaHorizontalno centriranje je vrlo jednostavno i lako. Kada je centrirani element u liniji, koristimo svojstvo poravnanja u odnosu na nadređeni element. Kada je element na razini bloka, postavljamo njegovu širinu i automatsko postavljanje lijeve i desne margine. Većina ljudi, kada koristi svojstvo text-align:, poziva se na svojstvo vertical-align za okomito centriranje. Sve izgleda sasvim logično. Ako ste koristili predloške tablica, vjerojatno ste intenzivno koristili atribut valign, koji učvršćuje uvjerenje da je okomito poravnanje pravi način za rješavanje problema. Ali atribut valign radi samo na ćelijama tablice. A svojstvo okomitog poravnanja vrlo mu je slično. Također utječe na ćelije tablice i neke ugrađene elemente. Vrijednost svojstva vertical-align relativna je u odnosu na nadređeni inline element.
No, nažalost, svojstvo okomitog poravnanja ne radi na elementima na razini bloka (na primjer, odlomci unutar elementa div). Ova situacija može navesti na pomisao da nema rješenja za problem okomitog poravnanja. Ali postoje i druge metode za centriranje blok elemenata, čiji izbor ovisi o tome što se centrira u odnosu na vanjski spremnik. Metoda visine linijeOva metoda radi kada želite okomito centrirati jedan redak teksta. Sve što trebate učiniti je postaviti visinu retka da bude veća od veličine fonta. Prema zadanim postavkama, bijeli prostor će biti ravnomjerno raspoređen na vrhu i dnu teksta. I linija će biti centrirana okomito. Često je visina linije jednaka visini elementa. HTML:
Obavezan tekst
CSS:#child (line-height: 200px;) Ova metoda radi u svim preglednicima, iako se može koristiti samo za jedan redak. Vrijednost 200 px u primjeru odabrana je proizvoljno. Možete koristiti bilo koju vrijednost veću od veličine fonta teksta. Centriranje slike pomoću visine linijeŠto ako je sadržaj slika? Hoće li gornja metoda funkcionirati? Odgovor leži u još jednom retku CSS koda. HTML:
CSS:#parent ( line-height: 200px; ) #parent img ( vertical-align: middle; ) Vrijednost svojstva line-height mora biti veća od visine slike. Metoda CSS tabliceGore je spomenuto da se svojstvo vertikalnog poravnanja koristi za ćelije tablice, gdje odlično funkcionira. Naš element možemo prikazati kao ćeliju tablice i upotrijebiti svojstvo vertikalnog poravnanja na njemu za okomito centriranje sadržaja. Bilješka: CSS tablica nije isto što i HTML tablica. HTML:
Sadržaj
CSS:#parent (display: table;) #child ( display: table-cell; vertical-align: middle; ) Postavljamo izlaz tablice na nadređeni div element i ispisujemo ugniježđeni div element kao ćeliju tablice. Sada možete koristiti svojstvo vertikalnog poravnanja na unutarnjem spremniku. Sve u njemu bit će centrirano okomito. Za razliku od gornje metode, u ovom slučaju sadržaj može biti dinamičan jer će div element mijenjati veličinu u skladu sa svojim sadržajem. Nedostatak ove metode je što ne radi u starijim verzijama IE-a. Morate koristiti svojstvo display: inline-block za ugniježđeni spremnik. Apsolutno pozicioniranje i negativne maržeOva metoda također radi u svim preglednicima. Ali zahtijeva da se elementu koji se centrira dodijeli visina. Primjer koda izvodi vodoravno i okomito centriranje u isto vrijeme: HTML:
Sadržaj
CSS:#roditelj (položaj: relativan;) #dijete (položaj: apsolutni; gore: 50%; lijevo: 50%; visina: 30%; širina: 50%; margina: -15% 0 0 -25%; ) Prvo postavljamo vrstu pozicioniranja elementa. Zatim postavljamo svojstva gornje i lijeve strane ugniježđenog div elementa na 50%, što odgovara središtu nadređenog elementa. Ali središte je gornji lijevi kut ugniježđenog elementa. Stoga ga morate podići (polovica visine) i pomaknuti ulijevo (polovica širine), a tada će se središte podudarati sa središtem nadređenog elementa. Dakle, poznavanje visine elementa u ovom slučaju je neophodno. Zatim postavljamo element s negativnim gornjim i lijevim marginama jednakima polovici visine odnosno širine. Ova metoda ne radi u svim preglednicima. Apsolutno pozicioniranje i rastezanjePrimjer koda izvodi okomito i vodoravno centriranje. HTML:
Sadržaj
CSS:#roditelj (položaj: relativno;) #dijete (položaj: apsolutni; vrh: 0; dno: 0; lijevo: 0; desno: 0; širina: 50%; visina: 30%; margina: auto; ) Ideja iza ove metode je rastegnuti ugniježđeni element na sve 4 granice nadređenog elementa postavljanjem svojstava top, bottom, right i left na 0. Postavljanje margina za automatsko generiranje na svim stranama postavit će jednake vrijednosti na sve 4 strane i centrirati naš ugniježđeni div element na njegov nadređeni element. Nažalost, ova metoda ne radi u IE7 i starijim verzijama. Jednaki prostori iznad i ispodU ovoj metodi, jednako ispunjavanje je eksplicitno postavljeno iznad i ispod nadređenog elementa. HTML:
Sadržaj
CSS:#parent ( padding: 5% 0; ) #child ( padding: 10% 0; ) Primjer CSS koda postavlja gornje i donje ispune za oba elementa. Za ugniježđeni element, postavljanje ispune poslužit će za okomito centriranje. I ispuna nadređenog elementa centrirat će ugniježđeni element unutar njega. Relativne mjerne jedinice koriste se za dinamičku promjenu veličine elemenata. A za apsolutne mjerne jedinice morat ćete napraviti izračune. Na primjer, ako nadređeni element ima visinu od 400 piksela, a ugniježđeni element 100 piksela, tada je potrebno 150 piksela ispune na vrhu i dnu. 150 + 150 + 100 = 400 Korištenje % omogućuje vam da izračune prepustite pregledniku. Ova metoda radi posvuda. Loša strana je potreba za izračunima. Bilješka: Ova metoda funkcionira postavljanjem vanjskog ispuna elementa. Također možete koristiti margine unutar elementa. Odluka o korištenju margina ili ispuna mora se donijeti ovisno o specifičnostima projekta. plutajući divOva metoda koristi prazan div element koji pluta i pomaže kontrolirati položaj našeg ugniježđenog elementa u dokumentu. Imajte na umu da se plutajući div nalazi ispred našeg ugniježđenog elementa u HTML kodu. HTML:
Sadržaj
CSS:#parent (visina: 250px;) #floater (float: lijevo; visina: 50%; širina: 100%; margin-bottom: -50px; ) #child (jasno: oboje; visina: 100px; ) Pomaknemo prazan div ulijevo ili udesno i postavimo mu visinu na 50% nadređenog elementa. Na taj način ispunit će gornju polovicu nadređenog elementa. Budući da je ovaj div plutajući, uklonjen je iz normalnog tijeka dokumenta i moramo razmotati tekst na ugniježđenom elementu. Primjer koristi clear: both , ali sasvim je dovoljno koristiti isti smjer kao pomak plutajućeg praznog div elementa. Gornja granica ugniježđenog div elementa je neposredno ispod donje granice praznog div elementa. Moramo pomaknuti ugniježđeni element prema gore za pola visine plutajućeg praznog elementa. Da biste riješili problem, upotrijebite negativnu vrijednost svojstva margin-bottom za plutajući prazan div element. Ova metoda također radi u svim preglednicima. Međutim, njegovo korištenje zahtijeva dodatni prazan div element i poznavanje visine ugniježđenog elementa. ZaključakSve opisane metode jednostavne su za korištenje. Poteškoća je u tome što nijedan od njih nije prikladan za sve slučajeve. Morate analizirati projekt i odabrati onaj koji najbolje odgovara zahtjevima. Analiziramo poravnanje blok elemenata u CCS. Stavljamo nekoliko u središte DIV ili LI elementi. Nudim nekoliko svojih opcija za većinu slučajeva. Ovaj članak nema za cilj navesti sve mogućnosti poravnanja i prepisati ono što već negdje postoji. Ne sjećam se zašto, ali često nisam bio zadovoljan ponuđenim opcijama. Ili su postojali fiksni blokovi, ili se sve raspalo tijekom adaptivnog izgleda ili neki drugi nedostaci. Ponekad je za poravnanje prema središtu dovoljno dodati nekoliko atributa i ne treba vam ništa komplicirano. Na primjer, i ja sam. Ispod je nekoliko opcija za prilagodljivi izgled za poravnavanje blokova u sredini, koje sam ja koristim na svojim web stranicama. I ako je prvi prilično čest, onda možda neke druge metode neće biti niti opisane na Internetu na ovaj način. Opcija 1Jednostavno poravnavanje svih blokova prema sredini stranice. Idemo u centar UL sadržaj od 4 elementa LI, koji se nalaze u bloku DIV s razredom spremnik. U ovom slučaju dovoljna su sljedeća pravila u CSS-u: Spremnik ( Kontejner ul ( Spremnik li ( Dobivamo sljedeći prikaz: Ovdje su centrirana 4 LI elementa. Kada se veličina zaslona smanji, elementi koji ne odgovaraju pomiču se prema dolje. Ako blokovi LI s tim svojstvima nisu instalirani u središtu, što znači da ih neko drugo svojstvo ometa. Na primjer, ovo bi moglo biti vlasništvo float:lijevo ili prikaz: stol; ili neki drugi. Sada možete dodati druge stilove u gornju strukturu (u osnovni okvir CSS poravnanja). Na primjer, napravite blokove fiksne veličine i međusobno uvucite: Spremnik li ( Dobivamo sljedeće: Ali postoji jedan nedostatak ove opcije. Blokovi se nalaze u središtu, ali su velike udaljenosti lijevo i desno. Mogu se smanjiti promjenom širine. Ili možete napraviti spremnike iste veličine tako da udubine budu samo između spremnika, a s lijeve i desne strane ih neće biti. Onda ćemo ukloniti margina i dodajte širinu ovoga širina tako da potpuno pokrije područje. Spremnik li ( Između blokova bit će mali prostor praznog prostora. A da biste ga učinili još većim, možete se povući unutra pomoću parametra podstava. U blokove namjerno ne dodajem ništa dodatno kako bih ostavio upravo one stilove koji izravno utječu na poravnanje. Ali ako učinite isto, nećete dobiti takve blokove. Barem zato što, prvo, trebate dodati boju bloku, a drugo, ako je prazan, stavite visina: 100px;. Ostali atributi su po vašoj želji. Konačna verzija je: Na gornjoj snimci zaslona ostavio sam druga područja stranice tako da je jasno gdje su granice blokova, jer ako su uz rub, tada se sam rub više ne vidi. A na slici su bijeli rubovi lijevo i desno različito poravnanje koje nema ništa zajedničko s dotičnim primjerom. Ponavljam, sami blokovi su uz rubove, koji nisu vidljivi, jer ih blokovi potpuno prekrivaju. opcija 2Postoji mnogo načina za centriranje blokova. Ali ako trebate napraviti poravnanje pametnije, morate razbiti mozak. Srećom, došao sam do zanimljive metode za sljedeće svrhe: Kako centrirati sve divove tako da blok u sljedećem retku bude lijevo poravnat? Imamo sljedeću strukturu: Blok 1 Blok 2 blok 3 Blok 4 blok 5 Za njih pišemo tečajeve:
Arhiva-članak ( Širina: calc(33,3333% - (0,666666666667 * 36px)); Imajte na umu da ako promijenite veličine kalk, tada morate eksperimentalno prilagoditi dimenzije margina. Inače blokovi neće biti centrirani. Ovo poravnanje mora se izvršiti na oko. Ali ako ima manje blokova u novom retku nego u retku iznad, ovaj usamljeni blok bit će uz lijeva strana. I izgleda puno ljepše nego kada se u susjednoj liniji jedan jedini blok nalazi u centru. Primjenom gornje tehnike dobit ćemo prilagodljiv izgled, sa svim rubovima jednakim, koji se neće pogoršati pri promjeni veličina zaslona. A ako želimo da mobilna verzija nema 3 bloka, već 2, tada ćemo u ccs za razlučivost od 768 piksela blokove podijeliti drugačije: @medijski zaslon i (maksimalna širina: 768px) ( Uzmimo iste blokove u mobilnoj verziji, ali s dva bloka po retku: Opcija 3Sada ćemo poravnati pomoću savijati. Ovo se može činiti kao idealan način za izravnavanje, jer zapravo radi vrlo jednostavno. Međutim, FLEX se ne nosi sa zadatkom opisanim u opciji 2. Barem ja nisam uspio postići iste rezultate. Na sljedeći odjeljak: Dodavanje stilova: #cssmenu ( #cssmenu ul ( #cssmenu > ul > li ( Dobivamo: U navedenom primjeru: flex-wrap: omot; Premješta blokove u sljedeći redak ako popune spremnik. Inače će ići dalje izvan prozora preglednika. justify-content: centar; Poravnavamo sadržaj blokova prema sredini. Opcija 4Još jedna mogućnost poravnanja pomoću flex tehnologije. Imamo kontejner s dva bloka unutra. Potrebna su nam ova 2 bloka da podijelimo širinu na dvije jednake strane. Blok 1 Blok 2 Da bismo to učinili, zapisat ćemo sljedeća svojstva u stilovima: Spremnik ( Blokiraj ( Opcija 5Postoji još jedna opcija za centriranje blokova, ako je njihov broj strogo jednak. Na primjer: postoji 9 blokova, 3 za svaki red. I znaš da će tako uvijek ostati. Na primjer, stvarate odredišnu stranicu i sigurno znate da ništa nepotrebno neće biti dodano na web mjesto između ovih blokova. Dakle, imamo 9 blokova sljedećeg tipa (nisam duplicirao linije 9 puta, ali imajte na umu da postoji 9 blokova): Blok 1 Blok 2 blok 3 Primijenite stilove za njih: Arhivski spremnik-za-članke ( Arhiva-članak ( Arhiva-članak:nth-child(1), Arhiva-članak:nth-child(2), Arhiva-članak:nth-child(3), Dobit ćemo i prilagodljivi izgled. Kada se zaslon smanji, blok koji ne stane ići će dolje u sredinu Prednost ove vrste centriranja je u tome što možete jasno i jasno napraviti udubljenja između blokova. Glavni nedostatak je što se ništa ne može staviti unutar blokova. Bilo koji element: budi to div ili str ili nešto drugo, smatrat će se unutarnjim elementom n-to dijete. Kao rezultat toga, CSS stilovi će biti superponirani na njega i sve uvlake napravljene korištenjem margine će pomaknuti blokove drugačije nego što je izvorno predviđeno. Postoji nekoliko bitno različitih načina okomitog centriranja objekta pomoću CSS-a, ali odabir pravog može biti težak. Pogledat ćemo neke od njih, te izraditi malu web stranicu koristeći stečeno znanje. Okomito središnje poravnanje nije lako postići pomoću CSS-a. Postoji mnogo načina i ne rade svi u svim preglednicima. Pogledajmo 5 različitih metoda te prednosti i nedostatke svake od njih. Primjer. 1. metodaOva metoda pretpostavlja da smo postavili neki element metodu prikaza kao tablicu, nakon toga u njoj možemo koristiti svojstvo vertical-align (koje radi različito u različitim elementima).
Neke korisne informacije koje bi trebale biti centralno smještene.
Pros
Protiv
2. metodaOva metoda koristi apsolutno pozicioniranje diva, s vrhom postavljenim na 50% i marginom na vrhu minus pola visine sadržaja. To podrazumijeva da objekt mora imati fiksnu visinu, koja je definirana u CSS stilovima. Budući da je visina fiksna, možete postaviti overflow:auto; za div koji sadrži sadržaj, dakle, ako sadržaj ne stane, pojavit će se trake za pomicanje.
Sadržaj ovdje #sadržaj ( položaj: apsolutni; vrh: 50%; visina: 240 px; margin-top: -120 px; /* minus pola visine */ )Pros
Protiv
3. metodaU ovoj metodi, omotat ćemo div sadržaja s drugim divom. Postavimo njegovu visinu na 50% (height: 50%;), a donju marginu na polovicu visine (margin-bottom:-contentheight;). Sadržaj će nestati plutajući i biti centriran.
evo sadržaja
Pros
Protiv
4. metoda.Ova metoda koristi svojstvo position:apsolute; za div s fiksnim dimenzijama (širina i visina). Zatim postavljamo njegove koordinate top:0; dno:0; , ali budući da ima fiksnu visinu, ne može se rastegnuti i poravnat je prema sredini. Ovo je vrlo slično dobro poznatoj metodi horizontalnog centriranja blok elementa fiksne širine (margina: 0 auto;).
Važne informacije. #content( pozicija: apsolutna; vrh: 0; dno: 0; lijevo: 0; desno: 0; margina: auto; visina: 240px; širina: 70%; )Pros
Protiv
5. metodaPomoću ove metode možete centrirati jedan redak teksta. Jednostavno postavimo visinu teksta (line-height) jednaku visini elementa (height). Nakon toga, linija će biti prikazana u sredini.
Neki redak teksta #sadržaj (visina: 100 px; visina linije: 100 px; )Pros
Protiv
Ova metoda je vrlo korisna za male elemente, kao što je centriranje teksta u gumbu ili tekstualnom polju. Sada znate kako postići okomito središnje poravnanje, napravimo jednostavnu web stranicu koja će na kraju izgledati ovako: Korak 1Uvijek je dobro započeti sa semantičkim označavanjem. Naša stranica bit će strukturirana na sljedeći način:
|
Pročitajte: |
---|
Novi
- Kako pravilno dodati novu particiju na tvrdi disk?
- Recenzija JBL Flip3 Bluetooth zvučnika
- Formati knjiga
- Povezivanje i postavljanje interaktivne televizije od Rostelecoma
- Kako izbrisati svoj Instagram račun
- Android tablet ili iPad - što odabrati?
- Kako pravilno oblikovati nastavak tablice u Wordu
- Što učiniti ako se razvijate izvan mreže
- Ispitivanje pregrijavanja procesora
- Što su Yesia javne usluge