Az elemek vízszintes és függőleges igazítása többféleképpen történhet. A módszer megválasztása függ az elem típusától (blokk vagy inline), elhelyezésének típusától, méretétől stb.

1. Vízszintes igazítás a blokk/oldal közepéhez

1.1. Ha a blokknak szélessége van:

div (szélesség: 300 képpont; margó: 0 automatikus; /*az elem vízszintes középre helyezése a szülőblokkon belül*/)

Ha egy soron belüli elemet így akarunk igazítani, akkor be kell állítani, hogy megjelenítse: blokk;

1.2. Ha egy blokk egy másik blokkba van beágyazva, és nincs beállítva szélessége:

.wrapper(text-align:center;)

1.3. Ha a blokk szélességű, és a szülőblokk közepén kell rögzíteni:

.wrapper (pozíció: relatív; /*állítsa be a szülődobozt relatív pozícióba, hogy a későbbiekben feltétlenül el tudjuk helyezni a dobozt*/) .box ( szélesség: 400px; pozíció: abszolút; bal: 50%; margó-bal: - 200 képpont; / *a blokkot balra tolja a szélességének felével egyenlő távolsággal*/ )

1.4. Ha nincs beállítva szélesség a blokkokhoz, középre állíthatja a szülő burkolóblokkot:

.wrapper (text-align: center; /*a blokk tartalmának középre helyezése*/) behúzás a blokkok között*/ )

2. Függőleges igazítás

2.1. Ha a szöveg egy sort foglal el, például gomboknál és menüelemeknél:

.button ( magasság: 50 képpont; vonalmagasság: 50 képpont; )

2.2. Egy blokk függőleges igazítása a szülőblokkon belül:

.wrapper (pozíció: relatív;) .box ( magasság: 100px; pozíció: abszolút; felső: 50%; margó: -50px 0 0 0; )

2.3. Függőleges igazítás táblázattípus szerint:

.wrapper ( kijelző: táblázat; szélesség: 100%; ) .box ( kijelző: táblázatcella; magasság: 100 képpont; szöveg igazítása: középre; függőleges igazítás: középre; )

2.4. Ha a doboz szélessége és magassága be van állítva, és a szülődoboz közepére kell helyezni:

.wrapper ( pozíció: relatív; ) .box ( magasság: 100 képpont; szélesség: 100 képpont; pozíció: abszolút; felül: 0; jobbra: 0; alul: 0; balra: 0; margó: automatikus; túlcsordulás: automatikus; /*to a tartalom nem terjedt el */ )

2.5. Abszolút pozicionálás az oldal/blokk közepére CSS3 transzformációval:

ha az elemnek vannak méretei

div ( szélesség: 300 képpont; /*blokk szélességének beállítása*/ magasság: 100 képpont; /*blokk magasságának beállítása*/ transzformáció: translate(-50%, -50%); pozíció: abszolút; felül: 50%; balra: 50% ;)

ha az elemnek nincsenek méretei és nem üres

Itt egy kis szöveg

h1 ( margó: 0; átalakítás: fordítás (-50%, -50%); pozíció: abszolút; felül: 50%; bal: 50%; )

Nagyon gyakran az a feladat, hogy a blokkot az oldal / képernyő közepéhez igazítsák, és még úgy is, hogy java szkript nélkül, kemény méretek vagy negatív behúzások beállítása nélkül, hogy a görgetősávok működjenek a szülőn, ha a blokk meghaladja a méretét. Elég sok monoton példa van a neten arra, hogyan kell egy blokkot a képernyő közepéhez igazítani. Általában ezek többsége ugyanazokon az elveken alapul.

Az alábbiakban bemutatjuk a probléma megoldásának fő módjait, azok előnyeit és hátrányait. A példák lényegének megértéséhez azt javaslom, hogy csökkentse az Eredmény ablak magasságát / szélességét a példákban a feltüntetett hivatkozásokon.

1. lehetőség. Negatív padding.

Elhelyezés Blokk felső és bal attribútumokat 50%-kal, és a blokk magasságának és szélességének előzetes ismeretében állítson be negatív margót, amely egyenlő a méret felével Blokk. Hatalmas mínusz ezt a lehetőséget az, hogy meg kell számolni a negatív behúzásokat. Ugyanilyen módon Blokk nem egészen megfelelően viselkedik a görgetősávok környezetében – egyszerűen le van vágva, mert negatív behúzásai vannak.

Szülő (szélesség: 100%; magasság: 100%; pozíció: abszolút; felül: 0; bal: 0; túlcsordulás: automatikus; ) .block (szélesség: 250 képpont; magasság: 250 képpont; pozíció: abszolút; felül: 50%; bal : 50%; margó: -125px 0 0 -125px; img (max. szélesség: 100%; magasság: automatikus; kijelző: blokk; margó: 0 automatikus; szegély: nincs; ) )

2. lehetőség: Automatikus behúzás.

Kevésbé gyakori, de hasonló az elsőhöz. Mert Blokkállítsa be a szélességet és a magasságot, állítsa a jobb felső bal alsó attribútumokat 0-ra, és állítsa be a margót auto. Ennek az opciónak az előnye a működő görgetősávok szülő, ha az utóbbi 100%-os szélességgel és magassággal rendelkezik. Ennek a módszernek a hátránya a merev méretezés.

Szülő (szélesség: 100%; magasság: 100%; pozíció: abszolút; felül: 0; bal: 0; túlcsordulás: automatikus; ) .block ( szélesség: 250 képpont; magasság: 250 képpont; pozíció: abszolút; felül: 0; jobbra: 0; alsó: 0; bal: 0; margó: automatikus; img (max. szélesség: 100%; magasság: automatikus; kijelző: blokk; margó: 0 automatikus; szegély: nincs; ) )

3. lehetőség Táblázat.

Kérünk szülő táblázatstílusok, cella szülő Szöveg igazításának beállítása középre. DE blokkállítsa be az inline blokk modellt. A hátrányok nem működő görgetősávok, és általában nem a táblázat "emulációjának" esztétikája.

Szülő ( szélesség: 100%; magasság: 100%; kijelző: asztal; pozíció: abszolút; felül: 0; bal: 0; > .inner ( kijelző: táblázatcella; szöveg igazítása: középen; függőleges igazítás: középen; ) ) .block ( display: inline-block; img ( display: block; border: none; ) )

Ha görgetést szeretne hozzáadni ehhez a példához, még egy elemet kell hozzáadnia a szerkezethez.
Példa: jsfiddle.net/serdidg/fk5nqh52/3 .

4. lehetőség. Pszeudoelem.

Ez az opció mentes az előző módszerekben felsorolt ​​összes problémától, és megoldja az eredeti feladatokat is. A lényeg, hogy legyen szülő stílusok beállítása pszeudo elem előtt, nevezetesen 100%-os magasság, középre igazítás és soros dobozos modell. Ugyanazzal Blokk helyezze be a soros blokk modelljét, középre igazítást. Nak nek Blokk nem esett alá pszeudo elem amikor az első méretei nagyobbak, mint szülő, adja meg szülő white-space: nowrap és font-size: 0, utána y Blokk törölje ezeket a stílusokat a következővel - szóköz: normál. NÁL NÉL ezt a példát font-size: 0 szükséges a kapott szóköz eltávolításához szülőés Blokk kódformázással kapcsolatban. A rést más módon is el lehet távolítani, de a legjobbnak tartják, ha egyszerűen nem engedjük meg.

Szülő (szélesség: 100%; magasság: 100%; pozíció: abszolút; felül: 0; bal: 0; túlcsordulás: automatikus; szóköz: törlés nélkül; szövegigazítás: középre; betűméret: 0; &:before ( magasság: 100%; kijelző: soron belüli blokk; függőleges igazítás: középen; tartalom: ""; ) ) .block ( kijelző: soron belüli blokk; szóköz: normál; függőleges igazítás: középen; szöveg igazítása: balra ; img ( kijelző: blokk; szegély: nincs; ) )

Vagy ha azt szeretné, hogy a szülő csak az ablak magasságát és szélességét foglalja el, ne a teljes oldalt:

Szülő (pozíció: rögzített; felül: 0; jobb: 0; lent: 0; bal: 0; túlcsordulás: automatikus; szóköz: nincs tördelve; szöveg igazítása: középen; betűméret: 0; &:before ( magasság: 100%; kijelző: soron belüli blokk; függőleges igazítás: középen; tartalom: ""; ) ) .block ( kijelző: inline-block; szóköz: normál; függőleges igazítás: középen; szöveg igazítása: balra; img ( kijelző: blokk; szegély: nincs; ) )

5. lehetőség Flexbox.

Az egyik legegyszerűbb és legelegánsabb módja a flexbox használata. Nem igényel felesleges testmozgásokat, elég világosan leírja a történések lényegét, és nagy rugalmassággal rendelkezik. Az egyetlen dolog, amit emlékezni kell a választás során ez a módszer- IE támogatása a 10-es verziótól kezdve. caniuse.com/#feat=flexbox

Szülő (szélesség: 100%; magasság: 100%; pozíció: rögzített; felül: 0; bal: 0; kijelző: hajlító; elemek igazítása: középre; tartalom igazítása: középre; igazítás-tartalom: középen; túlcsordulás: automatikus; ) .block ( háttér: #60a839; img ( kijelző: blokk; keret: nincs; ) )

6. lehetőség. Átalakítás.

Alkalmas, ha korlátoz minket a szerkezet, és nincs mód a manipulációra szülő elem, és a blokkot valahogy igazítani kell. A translate() css függvény fog segíteni. 50%-os értékkel abszolút pozicionálás pontosan középre helyezi a doboz bal felső sarkát, akkor a negatív fordítási érték elmozdítja a dobozt a saját méreteihez képest. Felhívjuk figyelmét, hogy a negatív hatások elmosódott szélek vagy betűstílus formájában jelenhetnek meg. Ezenkívül egy hasonló módszer problémákhoz vezethet a blokk helyzetének kiszámításakor java-script használatával. css használat a bal oldali tulajdonságon segíthet a blokkra beállított szabály: margó-jobb: -50%; .

Szülő (szélesség: 100%; magasság: 100%; pozíció: rögzített; felül: 0; bal: 0; túlcsordulás: automatikus; ) .block ( pozíció: abszolút; felül: 50%; bal: 50%; átalakítás: fordítás -50%, -50%); img ( kijelző: blokk; ) )

Opció 7. Gomb.

Felhasználói opció hol Blokk gombcédulába csomagolva. A gomb képes mindent középre állítani, ami benne van, nevezetesen a beépített és a blokkvonalas (inline-block) modell elemeit. A gyakorlatban nem ajánlom.

Szülő (szélesség: 100%; magasság: 100%; pozíció: abszolút; felül: 0; bal: 0; túlcsordulás: automatikus; háttér: nincs; szegély: nincs; körvonal: nincs; ) .block ( kijelző: inline-block; img ( kijelző: blokk;; keret: nincs; ) )

Bónusz

A 4. lehetőség ötletével margókat állíthat be Blokk, és egyben ez utóbbi megfelelően megjelenik a görgetősávok környezetében.
Példa: jsfiddle.net/serdidg/nfqg9rza/2 .

A képet középre is igazíthatja, és ha nagyobb a kép szülő, méretezheti méretre szülő.
Példa: jsfiddle.net/serdidg/nfqg9rza/3 .
Példa nagy képre:

Vlad Merzsevics

Tekintettel arra, hogy a táblázatcellák tartalma egyidejűleg vízszintesen és függőlegesen is igazítható, az elemek egymáshoz viszonyított helyzetének szabályozási lehetőségei bővülnek. A táblázatok segítségével beállíthatja a képek, szövegek, űrlapmezők és egyéb elemek egymáshoz és a weboldal egészéhez viszonyított igazítását. Általánosságban elmondható, hogy az igazítás elsősorban a különböző elemek közötti vizuális kapcsolat kialakításához, illetve csoportosításához szükséges.

Függőleges központosítás

Az egyik módja annak, hogy megmutassa a látogatónak a webhely fókuszát és címét, ha splash oldalt használ. Ez az első oldal, amelyen általában egy flash-intro vagy egy kép található, amely kifejezi az oldal fő gondolatát. A kép egyben link az oldal más részeire is. Ezt a képet a böngészőablak közepére kell helyezni, a monitor felbontásától függetlenül. Erre a célra használhat egy 100%-os szélességű és magasságú táblázatot (1. példa).

1. példa: Kép középre állítása

igazítás

Ebben a példában a vízszintes igazítás az align="center" címkeparaméterrel van beállítva , és a cella tartalmát nem kell függőlegesen középre igazítani, mivel alapértelmezés szerint ez a pozíció van beállítva.

Az asztal magasságának 100%-ra állításához távolítsa el, a kód már nem érvényes.

A szélesség és magasság használata a weboldal teljes elérhető területén biztosítja, hogy a táblázat tartalma szigorúan a böngészőablak közepéhez igazodjon, függetlenül annak méretétől.

Vízszintes igazítás

Az align (vízszintes igazítás) és a valign ( függőleges igazítás) címke , az elemek egymáshoz viszonyított helyzetének többféle típusa is megengedhető. ábrán. Az 1. ábra az elemek vízszintes igazítását mutatja be.

Nézzünk néhány példát a szöveg igazítására az alábbi ábra szerint.

Felső igazítás

A cella tartalmának a tetejéhez igazításának megadása a címkéhez a valign attribútumot a top értékkel kell beállítani (2. példa).

2. példa: valign használata

igazítás

1. oszlop 2. oszlop

Ebben a példában a cella jellemzőit címkeparaméterekkel szabályozzuk , de stílusokon keresztül is kényelmesebb váltani. A cellaigazítást a függőleges igazítás és a szövegigazítás tulajdonságai határozzák meg (3. példa).

3. példa: Stílusok alkalmazása az igazításhoz

igazítás

1. oszlop 2. oszlop

A kód lerövidítéséhez ez a példa választócsoportosítást használ, mivel a függőleges igazítás és a kitöltési tulajdonságok egyszerre két cellára vonatkoznak.

Az alsó igazítás ugyanúgy történik, de a felső helyett az alsót használják.

Középre igazítás

Alapértelmezés szerint egy cella tartalma a függőleges középpontjához igazodik, így eltérő oszlopmagasság esetén az igazítást a tetejére kell állítani. Néha még mindig meg kell hagynia az eredeti igazítási módszert, például képletek elhelyezésekor, amint az az ábrán látható. 2.

Ebben az esetben a képlet szigorúan a böngészőablak közepén található, a száma pedig a jobb szélen. Az elemek ilyen elrendezéséhez három cellával rendelkező táblázatra van szükség. A külső celláknak azonos méretűeknek kell lenniük, a középső cellában az igazítás középen, a jobb oldali cellában pedig a jobb szélen történik (4. példa). Ez a számú cella szükséges a képlet középre állításához.

4. példa: Képlet igazítása

igazítás

(18.6)

Ebben a példában a táblázat első cellája üresen marad, csak egy behúzás létrehozására szolgál, amit egyébként stílusok segítségével is beállíthatunk.

Űrlapelemek igazítása

A táblázatok hasznosak az űrlapmezők elhelyezéséhez, különösen akkor, ha szöveggel vannak tarkítva. Az űrlap egyik tervezési lehetősége, amely megjegyzés bevitelére szolgál, az ábrán látható. 3.

Ahhoz, hogy az űrlapmezők közelében lévő szöveg jobbra, maguk az űrlapelemek pedig balra legyenek igazítva, szükség van egy láthatatlan szegéllyel és két oszloppal rendelkező táblázatra. A bal oldali oszlop magát a szöveget tartalmazza, a jobb oldali pedig szövegmezőket (5. példa).

5. példa Űrlapmezők igazítása

igazítás

Név
Email
Megjegyzés

Ebben a példában az align="right" attribútumot hozzáadtuk a jobbra igazítást igénylő cellákhoz. Annak érdekében, hogy a „Megjegyzés” címke a többsoros szöveg felső szegélyén legyen, a megfelelő cellát a valign attribútum használatával felülre kell igazítani.

Nagyon gyakran az a feladat, hogy a blokkot az oldal / képernyő közepéhez igazítsák, és még úgy is, hogy java szkript nélkül, kemény méretek vagy negatív behúzások beállítása nélkül, hogy a görgetősávok működjenek a szülőn, ha a blokk meghaladja a méretét. Elég sok monoton példa van a neten arra, hogyan kell egy blokkot a képernyő közepéhez igazítani. Általában ezek többsége ugyanazokon az elveken alapul.

Az alábbiakban bemutatjuk a probléma megoldásának fő módjait, azok előnyeit és hátrányait. A példák lényegének megértéséhez azt javaslom, hogy csökkentse az Eredmény ablak magasságát / szélességét a példákban a feltüntetett hivatkozásokon.

1. lehetőség. Negatív padding.

Elhelyezés Blokk felső és bal attribútumokat 50%-kal, és a blokk magasságának és szélességének előzetes ismeretében állítson be negatív margót, amely egyenlő a méret felével Blokk. Ennek a lehetőségnek az a hatalmas hátránya, hogy meg kell számolnia a negatív behúzásokat. Ugyanilyen módon Blokk nem egészen megfelelően viselkedik a görgetősávok környezetében – egyszerűen le van vágva, mert negatív behúzásai vannak.

Szülő (szélesség: 100%; magasság: 100%; pozíció: abszolút; felül: 0; bal: 0; túlcsordulás: automatikus; ) .block (szélesség: 250 képpont; magasság: 250 képpont; pozíció: abszolút; felül: 50%; bal : 50%; margó: -125px 0 0 -125px; img (max. szélesség: 100%; magasság: automatikus; kijelző: blokk; margó: 0 automatikus; szegély: nincs; ) )

2. lehetőség: Automatikus behúzás.

Kevésbé gyakori, de hasonló az elsőhöz. Mert Blokkállítsa be a szélességet és a magasságot, állítsa a jobb felső bal alsó attribútumokat 0-ra, és állítsa be a margót auto. Ennek az opciónak az előnye a működő görgetősávok szülő, ha az utóbbi 100%-os szélességgel és magassággal rendelkezik. Ennek a módszernek a hátránya a merev méretezés.

Szülő (szélesség: 100%; magasság: 100%; pozíció: abszolút; felül: 0; bal: 0; túlcsordulás: automatikus; ) .block ( szélesség: 250 képpont; magasság: 250 képpont; pozíció: abszolút; felül: 0; jobbra: 0; alsó: 0; bal: 0; margó: automatikus; img (max. szélesség: 100%; magasság: automatikus; kijelző: blokk; margó: 0 automatikus; szegély: nincs; ) )

3. lehetőség Táblázat.

Kérünk szülő táblázatstílusok, cella szülő Szöveg igazításának beállítása középre. DE blokkállítsa be az inline blokk modellt. A hátrányok nem működő görgetősávok, és általában nem a táblázat "emulációjának" esztétikája.

Szülő ( szélesség: 100%; magasság: 100%; kijelző: asztal; pozíció: abszolút; felül: 0; bal: 0; > .inner ( kijelző: táblázatcella; szöveg igazítása: középen; függőleges igazítás: középen; ) ) .block ( display: inline-block; img ( display: block; border: none; ) )

Ha görgetést szeretne hozzáadni ehhez a példához, még egy elemet kell hozzáadnia a szerkezethez.
Példa: jsfiddle.net/serdidg/fk5nqh52/3 .

4. lehetőség. Pszeudoelem.

Ez az opció mentes az előző módszerekben felsorolt ​​összes problémától, és megoldja az eredeti feladatokat is. A lényeg, hogy legyen szülő stílusok beállítása pszeudo elem előtt, nevezetesen 100%-os magasság, középre igazítás és soros dobozos modell. Ugyanazzal Blokk helyezze be a soros blokk modelljét, középre igazítást. Nak nek Blokk nem esett alá pszeudo elem amikor az első méretei nagyobbak, mint szülő, adja meg szülő white-space: nowrap és font-size: 0, utána y Blokk törölje ezeket a stílusokat a következővel - szóköz: normál. Ebben a példában a font-size: 0 szükséges a kapott szóköz eltávolításához szülőés Blokk kódformázással kapcsolatban. A rést más módon is el lehet távolítani, de a legjobbnak tartják, ha egyszerűen nem engedjük meg.

Szülő (szélesség: 100%; magasság: 100%; pozíció: abszolút; felül: 0; bal: 0; túlcsordulás: automatikus; szóköz: törlés nélkül; szövegigazítás: középre; betűméret: 0; &:before ( magasság: 100%; kijelző: soron belüli blokk; függőleges igazítás: középen; tartalom: ""; ) ) .block ( kijelző: soron belüli blokk; szóköz: normál; függőleges igazítás: középen; szöveg igazítása: balra ; img ( kijelző: blokk; szegély: nincs; ) )

Vagy ha azt szeretné, hogy a szülő csak az ablak magasságát és szélességét foglalja el, ne a teljes oldalt:

Szülő (pozíció: rögzített; felül: 0; jobb: 0; lent: 0; bal: 0; túlcsordulás: automatikus; szóköz: nincs tördelve; szöveg igazítása: középen; betűméret: 0; &:before ( magasság: 100%; kijelző: soron belüli blokk; függőleges igazítás: középen; tartalom: ""; ) ) .block ( kijelző: inline-block; szóköz: normál; függőleges igazítás: középen; szöveg igazítása: balra; img ( kijelző: blokk; szegély: nincs; ) )

5. lehetőség Flexbox.

Az egyik legegyszerűbb és legelegánsabb módja a flexbox használata. Nem igényel felesleges testmozgásokat, elég világosan leírja a történések lényegét, és nagy rugalmassággal rendelkezik. Az egyetlen dolog, amit emlékezni kell a módszer kiválasztásakor, az IE támogatása a 10-es verziótól kezdve. caniuse.com/#feat=flexbox

Szülő (szélesség: 100%; magasság: 100%; pozíció: rögzített; felül: 0; bal: 0; kijelző: hajlító; elemek igazítása: középre; tartalom igazítása: középre; igazítás-tartalom: középen; túlcsordulás: automatikus; ) .block ( háttér: #60a839; img ( kijelző: blokk; keret: nincs; ) )

6. lehetőség. Átalakítás.

Alkalmas, ha korlátoz minket a szerkezet, és nincs mód a szülőelem manipulálására, de a blokkot valahogyan igazítani kell. A translate() css függvény fog segíteni. Az 50%-os abszolút pozíció érték a doboz bal felső sarkát pontosan középre helyezi, majd a negatív fordítási érték elmozdítja a dobozt a saját méreteihez képest. Felhívjuk figyelmét, hogy a negatív hatások elmosódott szélek vagy betűstílus formájában jelenhetnek meg. Ezenkívül egy hasonló módszer problémákhoz vezethet a blokk helyzetének kiszámításakor java-script használatával "a. Néha a szélesség 50%-os elvesztésének kompenzálására a használat miatt css tulajdonságait bal oldal segíthet a blokkban beállított szabályban: margó-jobb: -50%; .

Szülő (szélesség: 100%; magasság: 100%; pozíció: rögzített; felül: 0; bal: 0; túlcsordulás: automatikus; ) .block ( pozíció: abszolút; felül: 50%; bal: 50%; átalakítás: fordítás -50%, -50%); img ( kijelző: blokk; ) )

Opció 7. Gomb.

Felhasználói azproduction opció, ahol Blokk gombcédulába csomagolva. A gomb képes mindent középre állítani, ami benne van, nevezetesen a beépített és a blokkvonalas (inline-block) modell elemeit. A gyakorlatban nem ajánlom.

Szülő (szélesség: 100%; magasság: 100%; pozíció: abszolút; felül: 0; bal: 0; túlcsordulás: automatikus; háttér: nincs; szegély: nincs; körvonal: nincs; ) .block ( kijelző: inline-block; img ( kijelző: blokk;; keret: nincs; ) )

Bónusz

A 4. lehetőség ötletével margókat állíthat be Blokk, és egyben ez utóbbi megfelelően megjelenik a görgetősávok környezetében.
Példa: jsfiddle.net/serdidg/nfqg9rza/2 .

A képet középre is igazíthatja, és ha nagyobb a kép szülő, méretezheti méretre szülő.
Példa: jsfiddle.net/serdidg/nfqg9rza/3 .
Példa nagy képre:

Számos alapvetően eltérő módszer létezik egy objektum függőleges középre állítására CSS használatával, azonban a nehézséget a megfelelő kiválasztása okozhatja. Megnézünk néhányat, és a megszerzett tudás felhasználásával egy kis weboldalt is készítünk.

A függőleges középre igazítás a CSS-szel nem olyan egyszerű. Számos módszer létezik, és nem mindegyik működik minden böngészőben. Nézzük az 5 különféle módszerek, valamint mindegyik "mellett" és "ellene". Példa.

1. mód

Ez a módszer feltételezi, hogy valamilyen elemet állítunk be

táblázatként való megjelenítés módja, ezután használhatjuk benne a vertical-align tulajdonságot (ami a különböző elemeken eltérően működik).

Néhány hasznos információ, amelyet középre kell helyezni.
#wrapper( display: table; ) #cell( display: table-cell; függőleges igazítás: középen; )

profik

  • A tartalom dinamikusan változtathatja a magasságot (a magasság nincs meghatározva a CSS-ben).
  • A tartalom nem csonkolódik, ha nincs elég hely hozzá.

Mínuszok

  • Nem működik IE 7 és az alatti verziókban
  • Sok beágyazott címke

2. módszer

Ez a módszer a div abszolút pozicionálását használja, amelynek teteje 50%-ra van állítva, felső margója (margó-felül) pedig mínusz a tartalom magasságának fele. Ez azt jelenti, hogy az objektumnak fix magasságúnak kell lennie, amelyet a CSS stílusok határoznak meg.

Mivel a magasság rögzített, beállíthatja az overflow:auto; a tartalmat tartalmazó div-hez, tehát ha a tartalom nem fér bele, akkor görgetősávok jelennek meg.

Tartalom itt
#tartalom (pozíció: abszolút; felső: 50%; magasság: 240 képpont; margó-felső: -120 képpont; /* mínusz a magasság fele */ )

profik

  • Minden böngészőben működik.
  • Nincs extra befektetés.

Mínuszok

  • Ha nincs elég hely, a tartalom eltűnik (pl. a div a törzsben van, és a felhasználó összehúzza az ablakokat, ebben az esetben a görgetősávok nem jelennek meg.

3. módszer

Ennél a módszernél a tartalom div-t egy másik div-vel fogjuk becsomagolni. Állítsd a magasságát 50%-ra (magasság: 50%;) és az alsó margót a magasság felére (margin-bottom:-contentheight;). A tartalom törli az úszót és középre kerül.

itt a tartalom
#floater( lebegés: bal; magasság: 50%; margó-alsó: -120 képpont; ) #content( világos: mindkettő; magasság: 240 képpont; pozíció: relatív; )

profik

  • Minden böngészőben működik.
  • Ha nincs elég hely (például ha az ablak le van csökkentve), a tartalom nincs levágva, görgetősávok jelennek meg.

Mínuszok

  • Szerintem csak egy: hogy extra üres elemet használnak.

4. módszer.

Ez a módszer a position:absolute property; fix méretű (szélesség és magasság) divokhoz. Ezután beállítjuk a koordinátáit top:0; alsó:0; , de mivel fix magasságú, nem tud nyúlni és középre van állítva. Ez nagyon hasonlít a jól ismert módszerhez vízszintes igazítás fix szélességű blokkelem középpontjában (margó: 0 auto;).

Fontos információ.
#content( pozíció: abszolút; felül: 0; alul: 0; bal: 0; jobbra: 0; margó: automatikus; magasság: 240 képpont; szélesség: 70%; )

profik

  • Nagyon egyszerű.

Mínuszok

  • Nem működik benne internet böngésző
  • A tartalom görgetősávok nélkül lesz levágva, ha nincs elég hely a tárolóban.

5. módszer

Ezzel a módszerrel egyetlen szövegsort is középre állíthat. Csak állítsa be a szöveg magasságát (sor-height) az elem magasságára (height). Ezt követően a vonal középen jelenik meg.

Néhány szövegsor
#content( magasság: 100 képpont; sormagasság: 100 képpont; )

profik

  • Minden böngészőben működik.
  • Nem vágja ki a szöveget, ha nem fér bele.

Mínuszok

  • Csak szöveggel működik (blokk elemekkel nem).
  • Ha egynél több szövegsor van, az nagyon rosszul néz ki.

Ez a módszer nagyon hasznos kis elemekhez, például a szöveg középpontba helyezéséhez egy gombban vagy szövegmezőben.

Most, hogy tudja, hogyan lehet függőleges középre igazítást elérni, készítsünk egy egyszerű webhelyet, amely végül így fog kinézni:

1. lépés

Mindig jó szemantikai jelöléssel kezdeni. Oldalunk a következőképpen épül fel:

  • #floater (a tartalom központosításához)
  • #centred (középső elem)
    • #oldal
      • #logó
      • #nav (lista
      • #tartalom
    • #bottom (a szerzői jogokra és mindenre)

    Írjuk fel a következő html jelölést:

    Központi társaság

    Lap cím

    Folyamatközpontú együttműködés és ötletmegosztás után holisztikusan alakítsa át a hozzáadott értéket képviselő kiszervezést. Energikusan egyszerűsítse a hatásos piaci réseket az engedélyezett kényszerekkel. Holisztikusan túlsúlyban van a prémium innováció a lenyűgöző forgatókönyvek után. Zökkenőmentesen érvényesítse a humán tőke magas színvonalát a legmodernebb gyártású termékekkel. A szabványoknak megfelelő sémákat megkülönböztető módon szindikálja a robusztus vortalok előtt. Egyedülállóan felvázolja a tőkeáttételes webes készenlétet az azonnali információkkal szemben.

    2. címsor

    Hatékonyan alkalmazza a testreszabott webkészültséget az ügyfél által irányított folyamatok helyett. Magabiztosan növelje a platformok közötti követelményt a proaktív technológiákkal szemben. Kényelmesen felhatalmazza a multidiszciplináris metaszolgáltatásokat a vállalati szintű interfészek nélkül. Kényelmesen racionalizálja a versenyképes stratégiai tématerületeket fókuszált e-piacokkal. Világszínvonalú közösségek foszfofluoreszcens szindikátusa a hozzáadott értékű piacokkal szemben. Találja meg újra a holisztikus szolgáltatásokat a robusztus e-szolgáltatások előtt.

    A szerzői jogi megjegyzés ide kerül

    2. lépés

    Most írunk egyszerű CSS, az elemek elhelyezéséhez az oldalon. Ezt a kódot a style.css fájlba kell mentenie. Rajta van írva a link a html fájlban.

    Html, törzs ( margó: 0; kitöltés: 0; magasság: 100%; ) törzs ( háttér: url("page_bg.jpg") 50% 50% no-repeat #FC3; betűcsalád: Georgia, Times, serifs; ) #lebegő ( pozíció: relatív; lebegés: bal; magasság: 50%; margó-alsó: -200px; szélesség: 1px; ) #centered ( pozíció: relatív; tiszta: bal; magasság: 400px; szélesség: 80%; max. -szélesség: 800 képpont; minimális szélesség: 400 képpont; margó: 0 automatikus; háttér: #fff; szegély: 4 képpont, tömör #666; ) #lent (pozíció: abszolút; alsó: 0; jobb: 0; ) #nav (pozíció: abszolút; bal: 0; felül: 0; lent: 0; jobb: 70%; kitöltés: 20px; margó: 10px; ) #tartalom (pozíció: abszolút; bal: 30%; jobb: 0; felül: 0; lent: 0; túlcsordulás: automatikus; magasság: 340 képpont; kitöltés: 20 képpont; margó: 10 képpont; )

    Mielőtt tartalmunkat középre igazíthatnánk, a törzs- és html-magasságot 100%-ra kell állítanunk. Mivel a magasságot belső és külső padding (padding és margó) nélkül veszi figyelembe, ezeket (padding) 0-ra állítjuk, hogy ne legyenek görgetősávok.

    A "floater" elem alsó kitöltése mínusz a tartalom magasságának fele (400 képpont), azaz -200 képpont ;

    Az oldalának most valahogy így kell kinéznie:

    A #centered elem szélessége 80%. Ezáltal kis képernyőkön szűkebb, nagyobb képernyőkön pedig szélesebb lesz az oldalunk. a legtöbb oldal csúnyán néz ki a bal felső sarokban található új széles monitorokon. A min-width és max-width tulajdonságok is korlátozzák oldalunkat, hogy ne tűnjön túl szélesnek vagy szűknek. Az Internet Explorer nem támogatja ezeket a tulajdonságokat. Fix szélességűre kell állítani.

    Mivel a #centered elem pozíció:relatív értékre van állítva, használhatjuk benne az elemek abszolút pozicionálását. Ezután állítsa be az overflow:auto; a #content elemhez, így görgetősávok jelennek meg, ha nincs megfelelő tartalom.

    3. lépés

    Az utolsó dolog, amit megteszünk, az az, hogy stílust adunk hozzá, hogy az oldal vonzóbbá váljon. Kezdjük a menüvel.

    #nav ul ( listastílus: nincs; kitöltés: 0; margó: 20px 0 0 0; szöveg-behúzás: 0; ) #nav li ( kitöltés: 0; margó: 3px; ) #nav li a (megjelenítés: blokk; háttérszín: #e8e8e8; kitöltés: 7px; margó: 0; szövegdekoráció: nincs; szín: #000; szegély-alsó: 1px tömör #bbb; szövegigazítás: jobbra; ) #nav li a::after ( tartalom: """; szín: #aaa; betűsúly: vastag f8f8f8; keret-alsó szín: #777; ) #nav li a:hover::after ( margó: 0 0 0 7px; szín: #f93; ) #nav li a:active ( padding: 8px 7px 6px 7px; )

    Az első dolog, amit a menü szebbé tétele érdekében tettünk, az volt, hogy eltávolítottuk a felsorolásjeleket a list-style:none attribútum beállításával, valamint beállítottuk a kitöltést és a kitöltést is, mivel az alapértelmezett értékek böngészőnként nagyban változnak.

    Vegye figyelembe, hogy ezután meghatároztuk, hogy a hivatkozásokat blokkszintű elemekként kell megjeleníteni. Most, amikor megjelennek, azok az elem teljes szélességében ki vannak feszítve, amelyben találhatók.

    Egy másik érdekesség, amit a menükhöz használtunk, az :before és :after pszeudo-osztályok. Lehetővé teszik, hogy hozzáadjon valamit egy elem előtt és után. azt jó út adjon hozzá ikonokat vagy szimbólumokat, például nyilat az egyes hivatkozások végére. Ez a trükk nem működik az Internet Explorer 7 és régebbi verzióiban.

    4. lépés

    És végül, de nem utolsósorban, néhány fátylat adunk a dizájnhoz a még szépségesebbé.

    #centered ( -webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; ) h1, h2, h3, h4, h5, h6 ( font-family: Helvetica, Arial, sans- serif; betűsúly: normál; szín: #666; ) h1 ( szín: #f93; szegély-alsó: 1px tömör #ddd; betűköz: -0,05 em; betűsúly: félkövér; margó felső: 0; padding-top: 0; ) #bottom ( kitöltés: 10px; betűméret: 0,7em; szín: #f03; ) #logo (betűméret: 2em; szövegigazítás: középre; szín: #999; ) #logo erős ( betűsúly: normál; ) #logo span ( kijelző: blokk; betűméret: 4 em; vonalmagasság: 0,7 em; szín: #666; ) p, h2, h3 ( vonalmagasság: 1,6 em; ) a ( szín: #f03; )

    Ezekben a stílusokban lekerekített sarkokat állítunk be a #centered elemhez. A CSS3-ban ez lesz a felelős határsugár tulajdonság. Ezt néhány böngésző még nem valósítja meg, hacsak nem használja a -moz és -webkit előtagot Mozilla Firefoxés Safari/Webkit.

    Kompatibilitás

    Amint azt már sejtette, a kompatibilitási problémák fő forrása az Internet Explorer:

    • A #floater elemet szélességre kell állítani
    • Extra kitöltés a menük körül az IE 6-ban

    237152 megtekintés