Zelo pogosto je naloga poravnati blok na sredino strani/zaslona in celo tako, da brez skripta Java, brez nastavitve togih dimenzij ali negativnih zamikov in tako, da drsni trakovi delujejo za nadrejenega, če blok presega svojo velikost . Na internetu je veliko monotonih primerov, kako poravnati blok na sredino zaslona. Praviloma večina temelji na istih načelih.

Spodaj so glavni načini za rešitev težave, njihove prednosti in slabosti. Za razumevanje bistva primerov priporočam zmanjšanje višine/širine okna z rezultati v primerih na navedenih povezavah.

1. možnost: Negativni zamik.

Pozicioniranje blok z uporabo zgornjih in levih atributov za 50 % in vnaprej poznavanjem višine in širine bloka nastavite negativni rob, ki je enak polovici velikosti blok. Velika pomanjkljivost te možnosti je, da morate šteti negativne zamike. tudi blok se ne obnaša povsem pravilno, ko je obdan z drsnimi trakovi - preprosto je odrezan, ker ima negativne robove.

Nadrejeni ( širina: 100 %; višina: 100 %; položaj: absolutno; zgoraj: 0; levo: 0; preliv: samodejno; ) .block ( širina: 250 slikovnih pik; višina: 250 slikovnih pik; položaj: absolutno; zgoraj: 50 %; levo : 50 %; margin: -125px 0 0 -125px; img (največja širina: 100 %; višina: samodejno; rob: 0 samodejno; obroba: brez; ) )

Možnost 2. Samodejni zamik.

Manj pogost, vendar podoben prvemu. Za blok nastavimo širino in višino, postavimo atribute zgoraj desno spodaj levo na 0 in nastavimo samodejni rob. Prednost te možnosti so delujoči drsni trakovi starš, če ima slednji 100% širino in višino. Pomanjkljivost te metode je togo nastavljanje dimenzij.

Nadrejeni (širina: 100 %; višina: 100 %; položaj: absolutno; zgoraj: 0; levo: 0; preliv: samodejno; ) .block (širina: 250 slikovnih pik; višina: 250 slikovnih pik; položaj: absolutno; zgoraj: 0; desno: 0; dno: 0; rob: samodejno; maks. širina: samodejno; zaslon: 0; rob: brez;

Možnost 3. Tabela.

Vprašajmo starš slogi tabele, celica starš Nastavite poravnavo besedila na sredino. A blok postavimo linijski bločni model. Slabosti, ki jih dobimo, so nedelujoči drsni trakovi, na splošno pa estetika "emulacije" tabele ni.

Nadrejeni ( širina: 100 %; višina: 100 %; prikaz: tabela; položaj: absolutno; vrh: 0; levo: 0; > .notranji ( prikaz: celica tabele; poravnava besedila: sredina; navpična poravnava: sredina; ) ) .block ( display: inline-block; img ( display: block; border: none; ) )

Če želite temu primeru dodati drsnik, boste morali dizajnu dodati še en element.
Primer: jsfiddle.net/serdidg/fk5nqh52/3.

Možnost 4. Psevdoelement.

Ta možnost je brez vseh težav, navedenih v prejšnjih metodah, in rešuje tudi prvotne težave. Bistvo je v tem starš nastavite sloge psevdo element prej, in sicer 100-odstotna višina, sredinska poravnava in bločni model v vrstici. Enako je z blok linijski bločni model je postavljen na sredino. Za blok ni "padel" pod psevdo element, ko so dimenzije prvega večje od starš, navedite starš white-space: nowrap in font-size: 0, po katerem blok prekličite te sloge z naslednjim - white-space: normal. V tem primeru je potrebna velikost pisave: 0, da se odstrani nastali presledek med starš in blok zaradi oblikovanja kode. Prostor lahko odstranimo tudi na druge načine, vendar velja, da se mu je najbolje izogniti.

Nadrejeni ( širina: 100 %; višina: 100 %; položaj: absolutno; vrh: 0; levo: 0; preliv: samodejno; presledek: nowrap; poravnava besedila: sredina; velikost pisave: 0; &:pred ( višina: 100%; navpična poravnava: ""; slika: brez;

Ali pa, če želite, da nadrejeni zavzame samo višino in širino okna in ne celotne strani:

Nadrejeni (položaj: fiksno; zgoraj: 0; desno: 0; spodaj: 0; levo: 0; preliv: samodejno; presledek: nowrap; poravnava besedila: sredina; velikost pisave: 0; &:pred ( višina: 100 %; prikaz v vrstici; navpična poravnava: ""; obroba: nič; )

Možnost 5. Flexbox.

Eden najenostavnejših in najelegantnejših načinov je uporaba flexboxa. Ne zahteva nepotrebnih gibov telesa, precej jasno opiše bistvo dogajanja in je zelo prilagodljiv. Edina stvar, ki si jo je vredno zapomniti pri izbiri te metode, je podpora za IE od vključno različice 10. caniuse.com/#feat=flexbox

Nadrejeni ( širina: 100 %; višina: 100 %; položaj: fiksno; zgoraj: 0; levo: 0; zaslon: upogib; poravnava elementov: sredina; poravnava vsebine: sredina; poravnava vsebine: sredina; prelivanje: samodejno; ) .block (ozadje: #60a839; img (zaslon: blok; obroba: brez; ))

Možnost 6. Preoblikovanje.

Primerno, če smo omejeni s strukturo in ni možnosti za manipulacijo nadrejenega elementa, vendar je treba blok nekako poravnati. Na pomoč bo priskočila funkcija css translate(). Vrednost 50-odstotnega absolutnega pozicioniranja bo zgornji levi kot bloka postavila točno v sredino, nato pa bo negativna vrednost prevajanja blok premaknila glede na lastne dimenzije. Upoštevajte, da se lahko pojavijo negativni učinki v obliki zamegljenih robov ali sloga pisave. Ta metoda lahko povzroči tudi težave pri izračunu položaja bloka s pomočjo javascripta. Včasih lahko pravilo, določeno za blok, nadomesti izgubo 50 % širine zaradi uporabe lastnosti CSS. pomoč: margin-desno: -50%;

Nadrejeni (širina: 100 %; višina: 100 %; položaj: fiksen; vrh: 0; levo: 0; preliv: samodejno; ) .block ( položaj: absolutno; vrh: 50 %; levo: 50 %; transformacija: prevedi ( -50%, -50%); img ( prikaz: blok; )

Možnost 7. Gumb.

Uporabnik azproduction možnost kjer blok uokvirjena v oznako gumba. Gumb ima lastnost, da centrira vse, kar je v njem, in sicer elemente inline in block-line (inline-block) modela. V praksi ne priporočam uporabe.

Nadrejeni ( širina: 100 %; višina: 100 %; položaj: absolutno; zgoraj: 0; levo: 0; preliv: samodejno; ozadje: brez; obroba: brez; oris: brez; ) .block ( display: inline-block; img (prikaz: blok;; obroba: brez; ) )

Bonus

Z uporabo ideje 4. možnosti lahko nastavite zunanje robove za blok, slednji pa bo ustrezno prikazan obdan z drsnimi trakovi.
Primer: jsfiddle.net/serdidg/nfqg9rza/2.

Sliko lahko tudi poravnate na sredino in če je slika večja starš, prilagodite velikost starš.
Primer: jsfiddle.net/serdidg/nfqg9rza/3.
Primer z veliko sliko:

Navpično poravnajte besedilo v CSS- zelo težko delo. Videl sem dovolj ljudi, ki se borijo s tem, da kar naprej najdem "kritične" napake, ko gre za dejansko odzivno oblikovanje.

Vendar ne bojte se: če se že spopadate z navpično poravnavo CSS, ste prišli na pravo mesto.

Pogovorimo se o lastnosti navpične poravnave CSS

Ko sem se prvič začel ukvarjati s spletnim razvojem, sem se s to lastnostjo nekoliko spopadal. Mislil sem, da bi moralo delovati kot klasična lastnost" poravnava besedila" Oh, ko bi le bilo vse tako preprosto ...

lastnost CSS za navpično poravnavo odlično deluje s tabelami, ne pa z divi ali drugimi elementi. Ko ga uporabite na divu, poravna element glede na druge dive, ne pa tudi njegove vsebine. V tem primeru lastnost deluje samo z display: inline-block; .

Glej primer

Vsebino želimo postaviti v središče, ne samega diva!

Imate dve možnosti. Če imate samo elemente div z besedilom, lahko uporabite lastnost line-height. To pomeni, da morate poznati višino elementa, vendar je ne morete nastaviti. Tako bo vaše besedilo vedno v središču.

Resnica o tem pristopu Navpična poravnava CSS obstaja pomanjkljivost. Če je besedilo večvrstično, se višina vrstice pomnoži s številom vrstic. Najverjetneje boste v tem primeru na koncu imeli strašno urejeno stran.

Oglejte si ta primer

Če je vsebina, ki jo želite postaviti na sredino, sestavljena iz več kot ene vrstice, potem je bolje uporabiti tabele div. Lahko uporabite tudi tabele, vendar to ni pomensko pravilno. Če potrebujete odmore za namene odzivnosti, je bolje uporabiti elemente div.

Da bi to delovalo, mora obstajati nadrejeni vsebnik z display: table in v njem želeno število stolpcev, ki jih želite centrirati z display: table-cell in vertical-align: middle .

Glej primer

Zakaj to deluje z oznako tabele, z elementi div pa ne? Ker imajo vrstice v tabeli enako visoko. Ko vsebina celice tabele ne porabi vsega razpoložljivega višinskega prostora, brskalnik samodejno doda navpično oblazinjenje, da sredino vsebine.

položajna lastnina

Začnimo z osnovami navpične poravnave div CSS:

  • položaj: statični je privzeti. Element je upodobljen v skladu z vrstnim redom HTML;
  • položaj: absolutni - uporablja se za določitev natančnega položaja elementa. Ta položaj je vedno povezan z najbližjim sorazmerno postavljenim nadrejenim elementom (ne statična). Če ne določite natančnega položaja elementa, boste izgubili nadzor nad njim. Pojavil se bo naključno in popolnoma prezrl potek dokumenta. Privzeto se element prikaže v zgornjem levem kotu;
  • položaj: relativni - uporablja se za položaj elementa glede na njegov običajni položaj (statičen). Ta vrednost ohranja vrstni red poteka dokumenta;
  • položaj: fiksen - uporablja se za položaj elementa glede na okno brskalnika, tako da je vedno viden v vidnem polju.

Opomba: nekatere lastnosti ( vrh in z-indeks) deluje samo, če je element nastavljen na položaj (ne statična).

Pa se lotimo posla!

Ali želite izvajati CSS navpična sredinska poravnava? Najprej ustvarite element z relativnim položajem in dimenzijami. Na primer: 100 % v širino in višino.

Drugi korak se lahko razlikuje glede na ciljne brskalnike, vendar lahko uporabite eno od dveh možnosti:

  • Stara lastnost: vedeti morate natančno velikost okna, da odstranite polovico širine in polovico višine. Glej primer;
  • Nova lastnost CSS3: Dodate lahko lastnost transformacije z vrednostjo prevajanja 50 % in blok bo vedno v središču. Oglejte si primer.

V bistvu, če želite centrirati vsebino, nikoli ne uporabljaj vrha: 40% ali levo: 300 slikovnih pik. To dobro deluje na testnih zaslonih, vendar ni na sredini.

Zapomni si položaj: fiksno? Z njim lahko naredite isto kot z absolutnim položajem, vendar ne potrebujete relativnega položaja za nadrejeni element - vedno bo postavljen relativno glede na okno brskalnika.

Ste že slišali za specifikacijo flexbox?

Lahko uporabite flexbox. To je veliko boljše od katere koli druge možnosti sredinska poravnava besedila CSS navpično. S flexboxom je upravljanje elementov kot otroška igra. Težava je v tem, da je treba nekatere brskalnike zavreči, na primer IE9 in spodnje različice. Tukaj je primer, kako navpično centrirati blok:

Oglejte si primer

S postavitvijo flexbox lahko centrirate več blokov.

Če uporabite tisto, kar se naučite iz teh primerov, lahko obvladate Navpična poravnava blokov CSSčim prej.

Povezave in nadaljnje branje

Učenje oznak CSS

FlexBox Froggy

Peskovnik Flexbox

Prevod članka “ Navpična poravnava CSS za vsakogar (vključno s telebani)” je pripravila prijazna projektna ekipa.

Dober dan, naročniki in bralci te publikacije. Danes se želim poglobiti v podrobnosti in vam povedati, kako centrirati besedilo v CSS. V nekaterih prejšnjih člankih sem se posredno dotaknil te teme, tako da nekaj znanja s tega področja imate.

Vendar vam bom v tej publikaciji povedal o vseh različnih načinih poravnave predmetov in tudi razložil, kako zamikati in črtati odstavke. Pa začnimo z učenjem snovi!

HTML in njegovi potomci
in poravnajte

Ta metoda se skoraj nikoli ne uporablja, saj so jo nadomestila orodja za kaskadne slogovne liste. Vendar vam ne bo škodilo, če veste, da takšna oznaka obstaja.

Kar zadeva validacijo (ta izraz je podrobno opisan v članku ""), sama specifikacija html obsoja uporabo < center>, saj je za veljavnost treba uporabiti prehod DOCTYPE>.

Ta vrstaomogoča prehod prepovedanih elementov.

CENTER



Zdaj pa preidimo na atribut poravnati. Nastavi vodoravno poravnavo predmetov in se prilega deklaraciji oznake. Običajno se lahko uporablja za poravnavo vsebine na levo ( levo), ob desnem robu ( desno), sredinsko ( center) in po širini besedila ( utemeljiti).

Spodaj bom podal primer, v katerem bom sliko in odstavek postavil na sredino.

poravnati

Ta vsebina bo centrirana.



Upoštevajte, da ima za sliko atribut, ki ga analiziramo, nekoliko drugačen pomen.

V primeru, ki sem ga uporabil poravnaj="sredina". Zahvaljujoč temu je bila slika poravnana tako, da je bil stavek jasno na sredini slike.

Orodja za centriranje v css

Lastnosti CSS, namenjene poravnavi blokov, besedila in grafične vsebine, se uporabljajo veliko pogosteje. To je predvsem posledica priročnosti in prilagodljivosti izvajanja stilov.

Začnimo torej s prvo lastnostjo centriranja besedila – to je besedilo-poravnati.

Deluje na enak način kot poravnava v . Med ključnimi besedami lahko izberete eno s splošnega seznama ali podedujete lastnosti prednika ( dedovati).

Rad bi omenil, da lahko v css3 nastavite še 2 parametra: začetek– glede na pravila pisanja besedila (od desne proti levi ali obratno) nastavi poravnavo v levo ali desno (podobno kot pri delu levo ali desno) in konec– nasprotje od začetka (pri pisanju besedila od leve proti desni deluje kot desna, pri pisanju od desne proti levi – leva).

poravnava besedila

Stavek na desni

Stavek z uporabo konca



Povedal vam bom o majhnem triku. Pri izbiri vrednosti utemeljiti zadnja vrstica lahko neprivlačno visi z dna. Da bi ga na primer postavili v središče, lahko uporabite lastnost text-align-last.

Če želite navpično poravnati vsebino mesta ali celice tabele, uporabite lastnost navpično poravnati. Spodaj sem opisal glavne ključne besede elementa.

Ključna beseda Namen
izhodišče Podaja poravnavo s črto prednika, imenovano osnovna črta. Če objekt prednika nima takšne črte, se poravnava izvede vzdolž spodnje meje.
sredina Sredina mutiranega predmeta je poravnana z osnovno črto, ki ji je dodana višinska etaža nadrejenega elementa.
dno Dno izbrane vsebine se prilagodi dnu predmeta pod njim.
vrh Podobno dnu, vendar z zgornjim delom predmeta.
super Naredi nadnapis znaka.
sub Element naredi indeks.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 navpično poravnati
C IN E TOTO


navpično poravnati

C IN E TOTO


Vdolbine

In končno pridemo do alinej odstavkov. Jezik CSS uporablja posebno lastnost, imenovano zamik besedila.

Z njegovo pomočjo lahko naredite tako rdečo črto kot izboklino (določiti morate negativno vrednost).

zamik besedila

Če želite ustvariti rdečo črto, morate poznati samo en parameter.

To je preprosta lastnost zamika besedila.



Pohvalim tiste, ki so vsak primer preizkusili v praksi. Pošljite povezave do mojega spletnega dnevnika svojim prijateljem in se ne pozabite naročiti. vso srečo! Adijo!

Lep pozdrav, Roman Chueshov

Preberite: 675-krat

Spletni oblikovalci vsak dan uporabljajo DIV pri svojem delu. Brez podcenjevanja je to najbolj priljubljena oznaka. Odprite izvorno kodo katerega koli spletnega mesta in videli boste, da je večina, če ne kar dve tretjini predmetov zaprtih v

. Tudi s pojavom HTML5 in pojavom resnih konkurentov v obliki članka ali glave se ta še naprej povsod vstavlja v oznake. Zato predlagam, da razumete vprašanje oblikovanja in centriranja blokov div.

Kaj je DIV

Ime elementa izhaja iz angleške besede division, kar pomeni delitev. Pri pisanju oznak se uporablja za razbijanje elementov v bloke. DIV-ji zajemajo skupine vsebin na spletni strani. Na primer slike, odstavki z besedilom. Oznaka na noben način ne vpliva na prikaz vsebine in nima nobene semantične obremenitve.

DIV podpira vse globalne atribute. Toda za spletno oblikovanje potrebujete le dva - class in id. Vseh drugih se boste spomnili le v eksotičnih primerih, a to ni dejstvo. Atribut poravnave, ki se je včasih uporabljal za sredinsko ali levo poravnavo divov, je bil opuščen.

Kdaj uporabiti DIV

Predstavljajte si, da je spletno mesto hladilnik, DIV-ji pa so plastične posode, v katere morate razvrstiti vsebino. Sadja ne bi dali v isto posodo z jetrnico. Vsako vrsto izdelka boste postavili posebej. Spletna vsebina se generira na podoben način.

Odprite katero koli spletno stran in jo razdelite na smiselne bloke. Glava na vrhu, noga na dnu, glavno besedilo na sredini. Ob strani je običajno manjši stolpec z reklamno vsebino ali oblak oznak.

Dokument



Zdaj si podrobneje oglejte vsak razdelek. Začnite z glavo. Glava spletnega mesta ima ločen logotip, navigacijo, naslov prve stopnje in včasih slogan. Vsakemu semantičnemu bloku dodelite svoj vsebnik. To ne bo samo ločilo elementov v toku, ampak jih bo tudi lažje formatirati. Predmet v oznaki DIV boste veliko lažje postavili na sredino, če mu dodelite razred ali ID.

Centriranje DIV-jev z uporabo robov

Pri upodabljanju spletnih elementov brskalnik upošteva tri lastnosti: oblazinjenje, rob in rob. Oblazinjenje je prostor med vsebino in njeno obrobo. Rob - polja, ki ločujejo en predmet od drugega. Meja so črte vzdolž blokov. Lahko se dodelijo vsem naenkrat ali samo eni strani:

div(obroba: 1px polna #333; obroba-levo: brez; )

Te lastnosti dodajo prostor med predmeti in vam pomagajo poravnati in pravilno postaviti. Na primer, če je treba blok s sliko premakniti od levega roba proti sredini za 20 %, elementu dodelite margin-left z vrednostjo 20 %:

Block-with-img( margin-left: 20 %; )

Elemente je mogoče oblikovati tudi z uporabo njihovih vrednosti širine in negativnega oblazinjenja. Na primer, obstaja blok z dimenzijami 200 x 200 slikovnih pik. Najprej mu določimo absolutni položaj in ga premaknimo v sredino za 50%.

Div (položaj: absolutno; levo: 50 %; )

Zdaj, da zagotovimo, da je centriran DIV v popolnem položaju, mu damo negativni rob na levi, ki je enak 50 % njegove širine, to je -100 slikovnih pik:

Levi rob: -100px;

V CSS se to imenuje "odstranjevanje zraka". Ima pa pomembno pomanjkljivost, da je treba izvajati nenehne izračune, kar je precej težko narediti za elemente z več nivoji gnezdenja. Če sta podani vrednosti oblazinjenja in širine obrobe, bo brskalnik privzeto izračunal dimenzije vsebnika kot vsoto debeline obrob, oblazinjenja na desni in levi ter same vsebine v notranjosti, kar lahko tudi presenečenje.

Torej, ko morate centrirati DIV, uporabite lastnost box-sizing z vrednostjo border-box. To bo brskalniku preprečilo, da bi dodal vrednosti oblazinjenja in obrobe skupni širini elementa DIV. Če želite dvigniti ali znižati element, uporabite tudi negativne vrednosti. Toda v tem primeru jih je mogoče dodeliti zgornjemu ali spodnjemu polju vsebnika.

Kako centrirati blok DIV s samodejnimi robovi

To je preprost način za centriranje velikih blokov. Preprosto dodelite širino vsebnika in lastnost roba na samodejno. Brskalnik bo na sredino postavil blok z enakima robovoma na levi in ​​desni strani in vse delo opravil sam. Posledično ne tvegate, da bi se zmedli pri matematičnih izračunih in znatno prihranite čas.

Pri razvoju odzivnih aplikacij uporabite metodo samodejnega polja. Glavna stvar je, da vsebniku dodelite vrednost širine v em ali odstotkih. Koda v zgornjem primeru bo centrirala DIV in na kateri koli napravi, vključno z mobilnimi telefoni, bo zasedla 90 % zaslona.

Poravnava prek lastnosti prikaza: inline-block

Elementi DIV se privzeto štejejo za blokovne elemente, njihova prikazana vrednost pa je blok. Za to metodo boste morali preglasiti to lastnost. Primerno samo za DIV-e z nadrejenim vsebnikom:

Poljubno besedilo

Elementu z razredom outer-div je dodeljena lastnost poravnave besedila z vrednostjo center, ki centrira besedilo znotraj. Toda za zdaj brskalnik vidi ugnezdeni DIV kot blokovni objekt. Da lastnost text-align deluje, je treba inner-div obravnavati kot male črke. Torej v tabelo CSS za izbirnik notranjih divov napišete naslednjo kodo:

Inner-div( display: inline-block; )

Lastnost prikaza spremenite iz block v inline-block.

metoda transformacije/prevajanja

Kaskadni slogovni listi omogočajo poljubno premikanje, nagibanje, vrtenje in drugačno preoblikovanje spletnih elementov. Za to se uporablja lastnost transformacije. Vrednosti označujejo želeno vrsto in stopnjo transformacije. V tem primeru bomo delali s prevajalnikom:

transformacija: prevedi (50%, 50%);

Funkcija prevajanja premakne element iz trenutnega položaja levo/desno in gor/dol. V oklepaju sta podani dve vrednosti:

  • stopnja vodoravnega gibanja;
  • stopnja navpičnega gibanja.

Če je treba element premakniti vzdolž samo ene od koordinatnih osi, potem za besedo translate navedete ime osi in v oklepaju količino zahtevanega premika:

Pretvorba: translateY(-20%);

V nekaterih priročnikih lahko najdete transformacijo s predponami prodajalca:

Webkit-transform: translate(50%, 50%); -ms-transform: prevedi (50%, 50%); transformacija: prevedi (50%, 50%);

V letu 2018 ta lastnost ni več podprta v vseh brskalnikih, vključno z Edge in IE.

Da centriramo DIV, ki ga želimo, je funkcija prevajanja CSS zapisana z vrednostjo 50 % za navpično in vodoravno os. To bo povzročilo, da bo brskalnik odmaknil element od trenutnega položaja za polovico njegove širine in višine. Določiti je treba lastnosti širine in višine:

Dokument



Upoštevajte, da se element, za katerega je uporabljena lastnost transformacije, premika neodvisno od predmetov, ki ga obkrožajo. Po eni strani je to priročno, včasih pa lahko DIV s premikanjem prekriva drugo posodo. Zato se ta metoda centriranja spletnih komponent šteje za nestandardno in se uporablja le v primerih skrajne potrebe. Za animacijo so uporabljene transformacije po vseh kanonih CSS.

Delo s postavitvijo Flexbox

Flexbox velja za prefinjen način oblikovanja spletnih postavitev. Če pa ga obvladate, boste spoznali, da je veliko enostavnejši in prijetnejši od standardnih načinov oblikovanja. Specifikacija Flexbox je prilagodljiv in neverjetno močan način za ravnanje z elementi. Ime modula je iz angleščine prevedeno kot "prilagodljiva posoda". Vrednosti širine, višine in razporeditve elementov se prilagajajo samodejno, brez izračunavanja zamikov in robov.

V prejšnjih primerih smo že delali z lastnostjo display, vendar smo jo nastavili na vrednosti bloka in bloka v vrstici. Za ustvarjanje prilagodljivih postavitev bomo uporabili display: flex. Najprej potrebujemo flex posodo:



Če ga želimo pretvoriti v flex vsebnik v kaskadnih tabelah, zapišemo:

Flex-kontejner (zaslon: flex; )

Vsi ugnezdeni objekti, vendar le neposredni potomci, bodo upogljivi elementi:

najprej
drugič
Tretjič
Četrtič


Če postavite seznam v vsebnik flex, se elementi seznama li ne štejejo za elemente flex. Postavitev Flexbox bo delovala samo na ul:

Pravila za namestitev flex elementov

Za upravljanje elementov flex potrebujete justify-content in align-items. Glede na vrednosti, ki jih določite, ti dve lastnosti samodejno postavita predmete po potrebi. Če moramo centrirati vse ugnezdene DIV-e, napišemo justify-content: center, align-items: center in nič drugega. Brskalnik bo ostalo delo opravil sam:

Dokument

najprej
drugič
Tretjič
Četrtič


Za centriranje besedila na DIV-ih, ki so prilagodljivi elementi, lahko uporabite standardno tehniko poravnave besedila. Lahko pa naredite vsak ugnezdeni DIV tudi flex vsebnik in upravljate vsebino z uporabo justify-content. Ta metoda je veliko bolj racionalna, če vsebuje raznoliko vsebino, vključno z grafiko, drugimi ugnezdenimi objekti, vključno s seznami na več ravneh.

Od avtorja: Ponovno vas pozdravljam na straneh našega bloga. V današnjem članku bi rad govoril o različnih tehnikah poravnave, ki jih je mogoče uporabiti za bloke in njihovo vsebino. Zlasti, kako poravnati bloke v css, pa tudi poravnavo besedila.

Poravnava blokov na sredino

V CSS je centriranje bloka enostavno. To je mnogim najbolj znana tehnika, vendar bi o njej rad govoril najprej zdaj. To pomeni vodoravno sredinsko poravnavo glede na nadrejeni element. Kako se to naredi? Recimo, da imamo posodo in je naš poskusni subjekt v njej:

< div id = "wrapper" >

< div id = "header" > < / div >

< / div >

Predpostavimo, da je to glava spletnega mesta. Ne razteza se čez celotno širino okna in ga moramo centrirati. Pišemo takole:

#glava(

širina/največja širina: 800px;

rob: 0 samodejno;

Določiti moramo natančno oziroma maksimalno širino, nato pa zapisati ključno lastnost - margin: 0 auto. Nastavi zunanje robove naše glave, prva vrednost določa zgornji in spodnji rob, druga pa desni in levi rob. Samodejna vrednost sporoči brskalniku, naj samodejno izračuna oblazinjenje na obeh straneh, tako da je element natančno osredotočen na svojega starša. Udobno!

Poravnava besedila

Tudi to je zelo preprosta tehnika. Za poravnavo vseh elementov v vrstici lahko uporabite lastnost poravnave besedila in njene vrednosti: levo, desno, sredina. Slednji centrira besedilo, kar potrebujemo. Na enak način lahko celo poravnate sliko, ker je privzeto tudi element v vrstici.

Besedilo poravnajte navpično

Toda to je bolj zapleteno. Privzeto ni nobene preproste, dobro znane lastnosti, ki bi besedilo enostavno navpično centrirala v vsebniku bloka. Vendar pa obstaja več tehnik, ki so jih načrtovalci oblikovali skozi leta.

Nastavite višino bloka z oblazinjenjem. Način je, da ne nastavite eksplicitne višine z uporabo višine, ampak da jo ustvarite umetno z uporabo oblazinjenja na vrhu in na dnu, ki bi morala biti enaka. Ustvarimo poljuben blok in vanj zapišimo naslednje lastnosti:

div(ozadje: #ccc; oblazinjenje: 30px 0; )

div(

ozadje : #ccc;

oblazinjenje: 30px 0;

Ozadje je samo za vizualni prikaz robov in oblazinjenja. Sedaj je višina bloka sestavljena iz teh dveh alinej in same vrstice in vse izgleda takole:

Določite višino vrstice za blok. Mislim, da je to bolj pravilen način, če morate poravnati eno vrstico besedila. Z njim lahko zapišete višino glede na normalno z uporabo lastnosti višine. Po tem mora nastaviti še višino črte, enako kot višina bloka kot celote.

div(višina: 60px; višina vrstice: 60px; )

div(

višina: 60px;

višina črte: 60px;

Rezultat bo podoben zgornji sliki. Vse bo delovalo, tudi če dodate oblazinjenje. Vendar le za eno vrstico. Če potrebujete več besedila v elementu, ta metoda ne bo delovala.

Pretvori blok v celico tabele. Bistvo te metode je, da ima celica tabele lastnost vertical-align: middle, ki centrira element navpično. Zato je treba v tem primeru blok nastaviti na naslednje:

div( prikaz: celica tabele; navpična poravnava: sredina; )

div(

prikaz: tabela - celica;

navpično - poravnaj: sredina;

Ta metoda je dobra, ker lahko na sredino poravnate poljubno količino besedila. Vendar je bolje napisati display: table v blok, v katerem je ugnezden naš div, sicer morda ne bo delovalo.

No, tukaj smo pri zadnji tehniki za danes - to je navpična poravnava samih blokov. Povedati je treba, da spet ni nepremičnine, ki bi bila namenjena posebej za to, vendar je nekaj trikov, ki bi jih morali poznati.

Nastavite zamike kot odstotek. Če poznate višino nadrejenega elementa in vanj postavite drug element bloka, ga lahko centrirate z uporabo odstotnega oblazinjenja. Na primer, nadrejeni ima višino 600 slikovnih pik. Vanj postavite blok, ki je visok 300 slikovnih pik. Koliko se morate odmakniti zgoraj in spodaj, da ga središ? 150 slikovnih pik vsak, kar je 25 % višine starša.

Ta metoda omogoča poravnavo le, če dimenzije omogočajo izračune. In če je vaš starš visok 887 slikovnih pik, potem ne boste mogli ničesar natančno posneti, to je že jasno.

Vstavite element v celico tabele. Še enkrat, če nadrejeni element pretvorimo v celico tabele, bo blok, vstavljen vanjo, samodejno centriran navpično. Če želite to narediti, mora nadrejeni le nastaviti vertical-align: middle.

In če poleg tega napišemo še margin: 0 auto, bo element postal horizontalno centriran!



Ta članek je na voljo tudi v naslednjih jezikih: tajska

  • Naprej

    Najlepša HVALA za zelo koristne informacije v članku. Vse je predstavljeno zelo jasno. Zdi se, da je bilo z analizo delovanja trgovine eBay vloženega veliko dela

    • Hvala vam in ostalim rednim bralcem mojega bloga. Brez vas ne bi bil dovolj motiviran, da bi posvetil veliko časa vzdrževanju te strani. Moji možgani so tako zgrajeni: rad se poglabljam, sistematiziram razpršene podatke, preizkušam stvari, ki jih še nihče ni naredil ali pogledal s tega zornega kota. Škoda, da naši rojaki zaradi krize v Rusiji nimajo časa za nakupovanje na eBayu. Kupujejo pri Aliexpressu iz Kitajske, saj je tam blago veliko cenejše (pogosto na račun kakovosti). Toda spletne dražbe eBay, Amazon, ETSY bodo Kitajcem zlahka dale prednost pri ponudbi blagovnih znamk, vintage predmetov, ročno izdelanih predmetov in različnih etničnih izdelkov.

      • Naprej

        V vaših člankih je dragocen vaš osebni odnos in analiza teme. Ne opustite tega bloga, sem pogosto. Takšnih bi nas moralo biti veliko. Pošlji mi e-pošto Pred kratkim sem prejel e-pošto s ponudbo, da me bodo naučili trgovati na Amazonu in eBayu.

  • In spomnil sem se vaših podrobnih člankov o teh poslih. območje
    Še enkrat sem vse prebral in ugotovil, da so tečaji prevara. Ničesar še nisem kupil na eBayu. Nisem iz Rusije, ampak iz Kazahstana (Almaty). Ampak tudi dodatnih stroškov še ne potrebujemo.