css3 polohovanie. Absolútne umiestnené prvky ignorujú vlastnosť float. Relatívne umiestnenie css prvkov
26.05.2019
Jeden z najlepších strany css spočíva v tom, že štýly nám dávajú možnosť umiestniť obsah a prvky na stránku takmer akýmkoľvek možným spôsobom. To prináša štruktúru do nášho dizajnu a pomáha urobiť obsah vizuálnejší.
Je tam niekoľko odlišné typy polohovanie v CSS, každý z týchto typov má svoj vlastný rozsah. V tejto kapitole sa na niektoré pozrieme rôznych príležitostiach aplikácie - vytváranie opakovane použiteľných rozložení a jedinečného umiestnenia jednorazových prvkov, ako aj popis niekoľkých spôsobov, ako to urobiť.
Polohovanie cez plavák
Jedným zo spôsobov umiestnenia prvkov na stránke je cez float majetok. Táto vlastnosť je pomerne všestranná a dá sa použiť mnohými spôsobmi.
Vlastnosť float v podstate vezme prvok, odstráni ho z normálneho toku stránky a umiestni ho naľavo alebo napravo od nadradeného prvku. Všetky ostatné prvky na stránke budú obopínať takýto prvok. Napríklad odseky budú obtekať okolo obrázka, ak má prvok vlastnosť float je nastavená.
Keď je vlastnosť float aplikovaná na viacero prvkov súčasne, umožňuje to vytvoriť rozloženie s pohyblivými prvkami vedľa seba alebo oproti sebe, ako je znázornené na rozložení s viacerými stĺpcami.
Vlastnosť float má niekoľko hodnôt, pričom dve najobľúbenejšie sú vľavo a vpravo , ktoré umožňujú umiestniť prvok naľavo alebo napravo od rodiča.
Img ( float: left; )
plávať v praxi
Vytvorme všeobecné rozloženie stránky s hlavičkou hore, dvoma stĺpcami v strede a pätou dole. V ideálnom prípade by táto stránka mala byť označená prvkami
,
,
......
Ukážka rozloženia bez plaváka
Tu sú prvky a
Sekcia ( plavák: ľavá; ) strana ( plavák: pravá; )
Na porovnanie, plávajúce prvky sú umiestnené na okraji nadradeného prvku. Ak neexistuje žiadny rodič, plávajúci prvok bude umiestnený na okraji stránky.
Keď prvok vznášame, odstránime ho z normálneho toku dokumentu HTML. To spôsobí, že šírka tohto prvku bude predvolená na šírku jeho obsahu. Niekedy, napríklad keď vytvárame stĺpce pre opakovane použiteľné rozloženie, toto správanie nie je žiaduce. Dá sa to opraviť pridaním vlastnosti šírky pevnej hodnoty pre každý stĺpec. Okrem toho, aby sme zabránili tomu, aby sa plávajúce prvky navzájom dotýkali, čo by viedlo k tomu, že obsah jedného prvku je vedľa druhého, môžeme použiť vlastnosť margin na nastavenie medzery medzi prvkami.
Nižšie rozširujeme predchádzajúci blok kódu pridaním okraja a šírky pre každý stĺpec, aby sme lepšie tvarovali požadovaný výsledok.
V prípade plávajúceho prvku je tiež dôležité pochopiť, že prvok sa odstraňuje z normálneho toku stránky a že predvolená hodnota zobrazenia prvku sa môže zmeniť. Vlastnosť float sa spolieha na to, že hodnota zobrazenia prvku je nastavená na blokovanie a môže zmeniť predvolenú hodnotu zobrazenia prvku, ak ešte nie je vykreslený ako prvok bloku.
Napríklad prvok, ktorého zobrazenie je nastavené na inline , ako napríklad inline , ignoruje všetky vlastnosti výšky alebo šírky. Ak však zadáte float pre vložený prvok, hodnota zobrazenia sa zmení na blok a prvok už môže nadobudnúť vlastnosti výšky alebo šírky.
Keď prvok plávame, musíme si uvedomiť, ako to ovplyvňuje hodnotu vlastnosti display.
Pre dva stĺpce môžete plávať , jeden stĺpec ako ľavý a druhý ako pravý , ale pre viacero stĺpcov budeme musieť zmeniť náš prístup. Povedzme, že by sme napríklad chceli mať medzi našimi prvkami rad troch stĺpcov a
......
...
...
Na usporiadanie týchto troch prvkov do trojstĺpcového radu, musíme plávať všetky prvky ako vľavo. Musíme tiež upraviť šírku berúc do úvahy ďalšie stĺpce a umiestnite ich jeden vedľa druhého.
Tu máme tri stĺpce, všetky s rovnakou šírkou a hodnotou okraja a s pohyblivou čiarou nastavenou doľava .
Ukážka trojstĺpcového rozloženia s plavákom
Vyčistenie a vyplavenie obsahu
Vlastnosť float bola pôvodne navrhnutá tak, aby umožnila obsahu obtekať obrázky. Obrázok sa môže vznášať a všetok obsah okolo neho sa prirodzene zalomí okolo neho. Aj keď to funguje skvele pre obrázky, vlastnosť float v skutočnosti nebola určená na použitie na účely rozloženia a umiestnenia, a preto prichádza s niekoľkými úskaliami.
Jedným z týchto úskalí je, že niekedy sa správne štýly nevykreslia na prvku, ktorý je vedľa alebo nadradený prvku plávajúceho prvku. Keď je prvok plávajúci, je odstránený z normálneho toku stránky a v dôsledku toho môžu byť nepriaznivo ovplyvnené štýly prvkov okolo tohto plávajúceho prvku.
Hodnoty vlastností okraja a výplne sú často nesprávne interpretované, čo spôsobuje, že splývajú s plávajúcim prvkom. Môžu byť ovplyvnené aj iné vlastnosti.
Ďalšou chybou je, že niekedy sa okolo prvku float zalomí nechcený obsah. Odstránenie prvku z toku dokumentu umožňuje všetkým prvkom okolo plávajúceho prvku, aby ho obišli a využili akýkoľvek dostupný priestor okolo plávajúceho prvku, čo je často nežiaduce.
V našom predchádzajúcom dvojstĺpcovom príklade potom, čo sme prvky vznášali a
Ukážka rozloženia bez vyčistenia plaváka
Aby sme zabránili obtekaniu obsahu okolo plávajúcich prvkov, musíme vyčistiť plávajúci objekt a vrátiť stránku do normálneho toku. Pozrieme sa, ako vyčistiť plaváky a potom sa pozrieme na ich obsah.
Čistenie plaváka
Vymazanie floatu sa vykonáva pomocou vlastnosti clear, ktorá má niekoľko rôznych hodnôt: najčastejšie používané hodnoty sú vľavo , vpravo a obe .
Div (clear: left; )
Ľavá hodnota vymaže ľavé plaváky, zatiaľ čo pravá hodnota vymaže pravé plaváky. Hodnota oboch však vymaže ľavý a pravý plavák a je často najideálnejšou voľbou.
Vráťme sa k nášmu predchádzajúcemu príkladu, ak na element použijeme vlastnosť clear s hodnotou oboch
Päta (jasné: obe; )
Ukážka rozloženia s vyčistením plaváka
float obsah
Namiesto vyčistenia plaváka je ďalšou možnosťou nastavenie obsahu plaváka. Výsledok je takmer rovnaký, ale plávajúci obsah skutočne zaisťuje, že všetky naše štýly sa vykreslia správne.
Ak chcete nastaviť obsah na plávajúci , prvky typu float musia byť vo vnútri nadradeného prvku, bude fungovať ako kontajner, pričom tok dokumentu zostane mimo neho úplne normálny. Štýly pre tento nadradený prvok predstavujú triedu skupiny, ako je znázornené tu:
Veľa sa tu toho nedeje, ale v podstate všetko, čo CSS robí, je vymazať všetky plávajúce prvky vo vnútri elementu skupiny a vrátiť dokument do normálneho toku.
Presnejšie povedané, pseudoprvky ::before a ::after, ako je uvedené v lekcii 4, dynamicky generujú prvky nad a pod prvkom s class group . Tieto prvky nezahŕňajú žiadny obsah a zobrazujú sa ako prvky tabuľky, podobne ako prvky bloku. Dynamicky generovaný prvok za prvkom skupiny vymaže plavák vo vnútri prvku skupiny, rovnako ako predtým. Nakoniec prvok skupiny tiež vymaže všetky plaváky, ktoré sa pred ním môžu objaviť, v prípade, že existuje ľavý alebo pravý plavák. Zahrnutý je aj malý trik, vďaka ktorému sa staršie prehliadače dobre hrajú.
Je tu viac kódu ako jeden príkaz clear: both, ale môže to byť celkom užitočné.
Vzhľadom na naše rozloženie stránky s dvoma stĺpcami by sme mohli zalomiť a
Technika zobrazená v tomto dokumente je známa ako „clearfix“ a často sa nachádza na iných stránkach s názvom triedy clearfix alebo cf. Rozhodli sme sa použiť názov triedy group, pretože predstavuje skupinu prvkov a lepšie vyjadruje obsah.
Keď sú prvky nastavené na plávajúce, je dôležité sledovať, ako ovplyvňujú tok stránky, a uistiť sa, že tok stránky je resetovaný vymazaním alebo cez plávajúci obsah podľa potreby. V opačnom prípade môže pohyblivé sledovanie spôsobiť veľa starostí, najmä na stránkach, ktoré obsahujú viacero riadkov, každý s viacerými stĺpcami.
Na praxi
Vráťme sa na stránku Konferencie štýlov a vyskúšajme pridanie plavákov do nejakého obsahu.
Po prvé, pred použitím float na akýkoľvek prvok, poďme poskytnúť obsah pre tieto floatované prvky pridaním clearfix do nášho CSS. V súbore main.css, hneď pod naše štýly mriežky, pridáme jasnú opravu pod názov triedy skupiny, ako predtým. /* ======================================= Clearfix ========= ============================== */ .group::before, .group::after ( content: " "; zobrazenie : tabuľka; ) .skupina::po ( vymazať: obe; ) .skupina ( vymazať: obe; *zoom: 1; )
Teraz, keď môžeme použiť float , nastavíme ho na main
vnútri prvku ako vľavo a nechajte zvyšok obsahu v hlavičke, aby sa okolo nej obtočil doprava.
Ak to chcete urobiť, pridajte do prvku triedu loga
. Potom do nášho CSS pridajte novú sekciu štýlu pre hlavný nadpis. V tejto časti vyberieme prvok
Keď už sme tu, pridajme k nášmu logu trochu viac detailov. Začnime umiestnením prvkov alebo zalomenie riadku medzi slovami „Styles“ a „Conference“, aby sa text nášho loga rozložil na dva riadky.
V CSS pridajte orámovanie do hornej časti nášho loga a nejaké vertikálne vypchávky, aby logo mohlo voľne dýchať.
Logo ( orámovanie hore: 4px plné #648880; výplň: 40px 0 22px 0; plávajúce: vľavo; )
Keďže sme vytvorili prvok
floated, chceme nastaviť obsah na float . najbližšieho príbuzného
je prvkom , tak k tomu pridáme skupinová trieda. Tým sa naň použijú štýly clearfix, ktoré sme nastavili predtým.
...
Prvok nadobúda tvar, tak sa poďme pozrieť na prvok
Na rozdiel od prvku triedu však nebudeme aplikovať priamo na plávajúci prvok. Tentoraz pridáme triedu k rodičovi plávajúceho prvku a použijeme jedinečný Selektor CSS vyberte prvok a potom ho nastavte na plávajúci .
Začnime pridaním triedy Primary-footer k prvku
Teraz, keď je na prvku nastavená trieda primárnej päty
/* ======================================= Hlavný suterén ====== == =============================== */ .primárna päta malá (plávajúca: vľavo; )
Na testovanie - tu vyberieme prvok , ktorý musí byť vo vnútri prvku s hodnotou atribútu triedy Primary-footer , ako je napríklad náš prvok
Nakoniec pridáme malú výplň do hornej a spodnej časti prvku.
Okrem použitia float je ďalším spôsobom, ako môžeme umiestniť obsah, pomocou vlastnosti display v kombinácii s hodnotou inline-block. Metóda inline-block, ako si povieme neskôr, je predovšetkým užitočná na rozloženie stránky alebo na umiestnenie prvkov v riadku vedľa seba.
Pripomeňme, že hodnota inline-block pre vlastnosť display vykresľuje prvky do čiary a umožňuje im prevziať všetky vlastnosti krabicového modelu vrátane výšky , šírky , výplne , okraja a okraja . Použitie inline-block nám umožňuje plne využiť model boxu bez toho, aby sme sa museli starať o vyčistenie akýchkoľvek plavákov.
inline-blok v praxi
Pozrime sa na náš trojstĺpcový príklad od začiatku. Začneme tým, že ponecháme naše HTML takto:
......
...
...
Teraz namiesto plávania pre naše tri prvky zmeníme ich zobrazovanú hodnotu na inline-block , pričom opustíme vlastnosti okrajov a šírku tých, ktoré boli predtým. V dôsledku toho bude náš CSS vyzerať nasledujúcim spôsobom:
Bohužiaľ tento kód sám o sebe nestačí na vykonanie tohto triku a posledný prvokposunutý na nový riadok. Pamätajte, že prvky vnorených blokov sa vykresľujú na rovnakom riadku jeden po druhom, zahŕňajú jediný priestor medzi nimi. Keď sa veľkosť každého jednotlivého priestoru pripočíta k šírke a hodnote horizontálneho okraja všetkých prvkov v rade, celková šírka bude príliš veľká a posledný prvok sa vytlačí na nový riadok. Na zobrazenie všetkých položiek na jednom riadku vymazať prázdne miesto medzi každým
.
Ukážka prvkov inline-block s priestorom
Odstránenie medzery medzi prvkami inline bloku
Existuje niekoľko metód na odstránenie medzery medzi prvkami vloženého bloku a niektoré sú zložitejšie ako iné. Najviac sa zameriame na dve jednoduché metódy, z ktorých každý sa vyskytuje vo vnútri HTML.
Prvým riešením je vložiť otváraciu značku každého nového prvku na rovnakom riadku ako uzatváracia značka predchádzajúceho prvku . Namiesto použitia Nový riadok pre každý prvok skončíme tak, že prvky začneme na rovnakom riadku. Náš kód HTML môže vyzerať takto:
...
...
...
...
Inline písanie - blokové prvkyčím sa zabezpečí, že medzi týmito prvkami v HTML nebude žiadna medzera. Preto sa priestor pri vykreslení stránky nezobrazí.
Ukážka prvkov inline-block bez medzier
Ďalším spôsobom odstránenia priestoru medzi prvkami inline bloku je otvorenie HTML komentár priamo za koncovou značkou prvku. Potom zatvorte komentár tesne pred úvodnou značkou ďalší prvok. To umožňuje, aby vložené prvky začínali a končili na samostatných riadkoch v HTML a "komentovali" všetky potenciálne medzery medzi prvkami. V dôsledku toho bude kód vyzerať takto:
...
...
...
...
Žiadna z týchto možností nie je dokonalá, ale sú užitočné. Prikláňam sa k používaniu komentárov pre najlepšia organizácia ale ktorú možnosť si vyberiete, je len na vás.
Vytvorte opakovane použiteľné rozloženia
Pri vytváraní lokality je vždy najlepšie napísať modulárne štýly, ktoré sa dajú znova použiť inde, a opakovane použiteľné rozloženia sú na začiatku zoznamu opakovane použiteľných kódov. Rozloženia môžu byť vytvorené pomocou prvkov float alebo inline-block, ale ktoré fungujú najlepšie a prečo?
Otázka, či sú pre štruktúru stránky lepšie plávajúce alebo vložené prvky, je na diskusiu. Môj prístup spočíva v použití prvkov vložených blokov na vytvorenie mriežky alebo rozloženia stránky a potom sa vznášať, keď chcem, aby sa obsah zalomil daný prvok(na čo boli plaváky určené pri práci s obrázkami). Vo všeobecnosti sa mi tiež ľahšie pracuje s prvkami inline-block.
Použite však to, čo vám najlepšie vyhovuje. Ak poznáte jeden prístup viac ako druhý, použite ho.
V súčasnosti sa pracuje na nových špecifikáciách CSS – konkrétne na vlastnostiach ohybu a mriežky –, ktoré vám pomôžu rozhodnúť sa, ako najlepšie rozložiť stránky. Dávajte pozor na tieto metódy, keď sa začnú objavovať.
Na praxi
Keďže dobre rozumiete opakovane použiteľným rozloženiam, je čas predstaviť jeden na našej stránke Konferencie štýlov.
Pre webovú stránku Styles Conference vytvoríme trojstĺpcový layout s použitím prvkov inline-block. Urobíme to týmto spôsobom, aby sme dostali tri stĺpce rovnakej šírky alebo dva stĺpce s celkovou šírkou rozdelenou medzi ne ako 2/3 pre jeden a 1/3 pre druhý.
Na začiatok si vytvoríme triedy, ktoré definujú šírku týchto stĺpcov. Tieto dve triedy nazveme col-1-3 pre jednu tretinu a col-2-3 pre dve tretiny. V sekcii Grid nášho súboru main.css poďme ďalej a definujme tieto triedy a ich zodpovedajúce šírky.
Chceme, aby sa obidva stĺpce zobrazovali ako prvky inline-block. Musíme sa o to tiež uistiť vertikálne zarovnanie sú uvedené v hornej časti každého stĺpca.
Vytvorme dva nové selektory, ktoré zdieľajú zobrazenie a vertikálne zarovnanie .
Pozrite sa znova na CSS. Vytvorili sme dva selektory tried stĺpec-1-3 a stĺpec-2-3 oddelené čiarkou. Čiarka na konci prvého voliča znamená, že za ním nasleduje ďalší volič. Po druhom voliči prichádza otvorenie ortéza, ktorý hovorí, že popis štýlu začína. Pomocou čiarok oddeľujúcich selektory môžeme spojiť jeden štýl s viacerými selektormi súčasne.
Chceme dať medzi stĺpce určitý priestor, aby sme pomohli rozdeliť obsah. To sa dá dosiahnuť pridaním horizontálnej výplne do každého stĺpca.
Funguje to dobre, keď sú však dva stĺpce vedľa seba, šírka priestoru medzi nimi bude dvakrát väčšia ako priestor od vonkajšieho okraja. Aby sme to vyvážili, dáme všetky naše stĺpce do mriežky a pridáme do nej rovnakú výplň.
Použime triedu mriežky na definovanie našej mriežky a potom dajme rovnaké horizontálne odsadenie triedam mriežka , col-1-3 a col-2-3. Keď naše selektory opäť oddeľujú čiarkami, náš CSS vyzerá takto:
Keď nastavujeme vodorovnú výplň, musíme byť opatrní. Pamätajte, že v minulom návode sme vytvorili kontajner s triedou kontajnera vycentrovanou na celý náš obsah na stránke so šírkou 960 pixelov. AT tento moment, ak by sme umiestnili prvok mriežky do prvku kontajnera, ich vodorovné výplne by sa nahromadili a naše stĺpce by sa nezobrazovali proporcionálne k šírke zvyšku stránky.
Urobíme to tak, že starú sadu pravidiel kontajnera rozdelíme na nasledujúce:
Teraz bude každý prvok s kontajnerom triedy alebo mriežkou široký 960 pixelov a bude vycentrovaný na stránke. Okrem toho sme zachovali existujúce horizontálne odsadenie pre akýkoľvek prvok kontajnera jeho presunutím do novej samostatnej sady pravidiel.
Dobre, všetka ťažká potrebná časť nastavenia mriežky je hotová. Teraz je čas pracovať s naším HTML a zistiť, ako tieto triedy fungujú.
Začneme upútavkami na hlavnej stránke, v súbore index.html, zarovnanými do troch stĺpcov. Upútavky sú momentálne zabalené do prvku s kontajnerovou triedou. Chceme zmeniť triedu kontajnera na mriežku, aby sme do nej mohli začať umiestňovať stĺpce.
...
...
...
...
A nakoniec, keďže každý z našich stĺpcov je vložený blokový prvok, musíme sa uistiť, že sme medzi nimi odstránili prázdne miesto. Na tento účel použijeme komentáre a do každej sekcie pridáme nejakú dokumentáciu, aby sme lepšie organizovali náš kód.
...
...
...
Pre overenie sme na riadku 3 nechali komentár označujúci sekciu „Reproduktory“, ktorá nasleduje za ním. Na konci riadku 7 otvoríme komentár hneď za uzatváracou značkou. Vo vnútri tohto komentára na riadku 9 definujeme ďalšiu časť „Rozvrh“. Potom komentár zatvoríme na začiatku riadku 11, tesne pred úvodnou značkou . Podobná štruktúra komentárov sa objavuje na riadkoch 13 až 17 medzi dvoma prvkami , priamo pred sekciou Miesto konania. Vo všeobecnosti sme zakomentovali všetky potenciálne prázdne miesta medzi stĺpcami a zároveň sme použili rovnaké komentáre na identifikáciu našich sekcií.
Teraz máme znovu použiteľnú 3-stĺpcovú mriežku, ktorá podporuje rôzne rozloženia pomocou 1/3 a 2/3 šírky stĺpca. Naša hlavná stránka teraz obsahuje tri stĺpce oddeľujúce všetky upútavky.
Ryža. 5.02. Hlavná stránka Konferencia štýlov teraz obsahuje rozloženie v troch stĺpcoch
Demo a zdrojový kód
Nižšie si môžete pozrieť stránku Styles Conference v jej aktuálnom stave, ako aj stiahnuť aktuálny zdrojový kód stránky.
Jedinečné umiestnenie prvkov
Skôr či neskôr bude chcieť každý presne umiestniť prvok, ale plávajúce prvky alebo prvky vložené do bloku vám tento trik neumožňujú. Plávajúce prvky, ktoré odstraňujú prvok z toku stránky, často prinášajú nežiaduce výsledky, pretože okolité prvky plávajú okolo plávajúceho prvku. Vložené prvky bloku, pokiaľ nevytvárame stĺpce, môžu byť dosť nepríjemné, pokiaľ ide o správne umiestnenie. Pre situácie, ako je táto, môžeme použiť vlastnosť position v spojení s vlastnosťami odsadenia boxu.
Vlastnosť position určuje, ako je prvok umiestnený na stránke a či sa bude zobrazovať v normálnom toku dokumentu. Používa sa v spojení s vlastnosťami odsadenia boxu top , right , bottom a left , ktoré presne určujú, kde bude prvok umiestnený pohybom prvku v rôznych smeroch.
V predvolenom nastavení má každý prvok hodnotu pozície nastavenú na static , čo znamená, že prvok existuje v bežnom toku dokumentu a nemá žiadne vlastnosti, ktoré by ho kompenzovali. Statická hodnota je najčastejšie prepísaná relatívnou alebo absolútnou hodnotou, na ktorú sa pozrieme ďalej.
Relatívne umiestnenie
Relatívna hodnota vlastnosti position umožňuje, aby sa prvky zobrazovali v bežnom toku stránky, pričom sa vyhradzuje priestor pre prvok tak, ako bolo zamýšľané, a bráni sa tomu, aby okolo neho prúdili iné prvky. Umožňuje však tiež upraviť polohu prvku pomocou vlastností odsadenia. Zvážte napríklad nasledujúce HTML a CSS:
s posunom triedy nastaveným na pozíciu ako relatívny a dvoma vlastnosťami posunu, vľavo a hore. Tým sa zachová pôvodná poloha prvku a ostatné prvky sa do tejto oblasti nebudú môcť pohybovať. Okrem toho vlastnosti posunu posúvajú prvok tak, že ho posúvajú o 20 pixelov zľava a 20 pixelov zhora od jeho pôvodného umiestnenia.
Pri relatívne umiestnených prvkoch je dôležité vedieť, že vlastnosti odsadenia boxu určujú, kam sa prvok posunie vzhľadom na jeho pôvodnú polohu. Takže ľavá vlastnosť 20 pixelov v skutočnosti posúva prvok doprava o 20 pixelov. Horná vlastnosť 20 pixelov potom posunie prvok nadol o 20 pixelov.
Keď umiestnime prvok pomocou vlastností odsadenia, prvok prekryje prvok pod ním namiesto toho, aby ho stlačil nadol, ako to robia vlastnosti okraja alebo výplne.
Absolútna poloha
Absolútna hodnota vlastnosti position sa líši od relatívnej hodnoty v tom, s akou má prvok absolútne umiestnenie nezobrazuje sa v bežnom toku dokumentov, pôvodný priestor a poloha absolútne umiestneného prvku nie je vyhradená.
Absolútne umiestnené prvky sa tiež posúvajú vzhľadom na ich najbližšie relatívne umiestnené rodičovské prvky. Ak neexistuje žiadny relatívne umiestnený rodič, potom absolútne umiestnený prvok bude umiestnený relatívne k prvku
. Toto je malá informácia; pozrime sa, ako to funguje vo vnútri nejakého kódu:
V tomto príklade prvok je umiestnený relatívne, ale nezahŕňa žiadne ofsetové vlastnosti. Jeho postavenie sa preto nemení. Prvok
s offsetom triedy zahŕňa hodnotu pozície ako absolútnu. Vzhľadom k tomu, prvok je relatívne najbližšie umiestnený rodičovský prvok
, potom prvok
budú umiestnené vzhľadom na prvok
.
Pri relatívne umiestnených prvkoch určujú vlastnosti posunu, ktorým smerom sa prvok voči sebe samému posunie. V prípade absolútne umiestnených prvkov vlastnosti posunu určujú, ktorým smerom sa prvok posunie vzhľadom na jeho najbližšie relatívne umiestneného rodiča.
V dôsledku pravých a vrchných vlastností prvok
sa vo vnútri objaví 20 pixelov sprava a 20 pixelov zhora
.
Vzhľadom k tomu, prvok
sú umiestnené absolútne, nie sú umiestnené v normálnom toku stránky a prekrývajú všetky okolité prvky. Okrem toho východisková pozícia
sa neuloží a toto miesto môžu nahradiť iné prvky. Vo všeobecnosti možno väčšinu polohovania vykonať bez použitia vlastností polohy a posunu, ale v niektorých prípadoch môžu byť mimoriadne užitočné.
Zhrnutie
Naučiť sa umiestniť obsah v HTML a CSS je obrovským krokom k zvládnutiu týchto jazykov. Pridajte k tomu blokový model a teraz s istotou kráčame po ceste stať sa front-end vývojármi.
Vlad Merževič
Polohovanie je poloha prvku v súradnicovom systéme. Existujú štyri typy polohovania: normálne, absolútne, pevné a relatívne. V závislosti od typu, ktorý sa nastavuje prostredníctvom vlastnosti position, sa mení aj súradnicový systém.
Vďaka kombinácii vlastností position , left , top , right a bottom možno prvok prekrývať jeden na druhý, zobrazovať v bode s určitými súradnicami, pevne stanovenými v určené miesto, určiť polohu jedného prvku voči druhému atď. Rovnako ako ostatné vlastnosti Ovládanie CSS polohovanie je dostupné prostredníctvom skriptov. Takto môžete dynamicky meniť polohu prvkov bez opätovného načítavania stránky, vytvárania animácií a rôznych efektov.
Normálne polohovanie
Ak vlastnosť position prvku nie je nastavená alebo jeho hodnota je statická , prvok sa v toku dokumentu vykreslí ako normálne. Inými slovami, prvky sú zobrazené na stránke v poradí, v akom sa zobrazujú zdrojový kód HTML.
Vlastnosti left , top , right , bottom, ak sú definované, sa ignorujú.
Absolútna poloha
Pri absolútnom umiestnení prvok v toku dokumentu neexistuje a jeho poloha je vzhľadom na okraje prehliadača. Tento typ môžete nastaviť prostredníctvom absolútnej hodnoty vlastnosti position. Súradnice sú špecifikované relatívne k okrajom okna prehliadača, ktoré sa nazývajú „viditeľná oblasť“ (obr. 3.42).
Ryža. 3.42. Hodnoty vlastností vľavo, vpravo, hore a dole pre absolútne umiestnenie
Režim má nasledujúce funkcie.
Šírka vrstvy, ak nie je explicitne nastavená, sa rovná šírke obsahu plus hodnoty okraja, okraja a výplne.
Vrstva nemení svoju pôvodnú polohu, pokiaľ nemá vlastnosti right , left , top a bottom.
Vlastnosti vľavo a hore majú prednosť pred vlastnosťami vpravo a dole. Ak si ľavica a pravica navzájom odporujú, potom sa hodnota pravice ignoruje. To isté platí pre dno.
Ak je ľavý nastavený na zápornú hodnotu, vrstva presiahne ľavý okraj prehliadača a posuvník sa nezobrazí. Toto je jeden zo spôsobov, ako skryť prvok z pohľadu. To isté platí pre vlastnosť top, len vrstva bude presahovať horný okraj.
Ak je doľava nastavená na hodnotu väčšiu ako je šírka viditeľnej oblasti alebo doprava so zápornou hodnotou, vodorovná lišta rolovať. Podobné pravidlo funguje aj s top , len o tom budeme hovoriť vertikálny pruh rolovať.
Vlastnosti vľavo a vpravo zadané súčasne tvoria šírku vrstvy, ale iba ak šírka nie je špecifikovaná. Oplatí sa pridať vlastnosť width a hodnota right bude ignorovaná. To isté sa stane s výškou vrstvy, už sú zahrnuté iba vlastnosti top , bottom a height.
Absolútne umiestnený prvok sa pri posúvaní pohybuje spolu s dokumentom.
Vlastnosť position, nastavená na absolútnu, možno použiť na vytvorenie efektu snímok. Okrem absolútneho umiestnenia musia mať prvky priradenú vlastnosť overflow s hodnotou auto . Potom, keď obsah presiahne výšku viditeľnej oblasti, zobrazí sa posuvník. Výška a šírka "rámčekov" sa tvorí automaticky o súčasné použitie vlastnosti vľavo , vpravo pre šírku a hore , dole pre výšku (príklad 3.31).
Príklad 3.31. Vytváranie analógových rámcov
Absolútna poloha
Plov národov sveta
Pilaf vo Fergane
uzbecký pilaf
sibírsky pilaf
taliansky pilaf
Estónsky pilaf
Pilaf v americkom štýle
Indický pilaf
Pilaf vo Fergane
Vložte do kotla nakrájané mäso a opečte ho, kým sa nevytvorí kôra. Nakrájané kolieska cibule opečte spolu s mäsom dočervena, potom pridajte mrkvu nakrájanú na pásiky. Vložte polovicu soli, všetko premiešajte a smažte, kým sa mrkva nestane zlatohnedou. Potom zalejeme polovicou požadovaného množstva vody a necháme zovrieť.
Nalejte ryžu do rovnomernej vrstvy, zvýšte oheň a okamžite nalejte vodu tak, aby pokrývala ryžu o 1–1,5 cm, povrch šiel ku dnu. Potom pilaf prikryte a nechajte 20-25 minút odpočívať.
Hotový pilaf dôkladne premiešajte, preneste do veľkej misky a položte mäso na vrch.
Výsledok tento príklad znázornené na obr. 3.43. Vrstva hlavičky sa vykreslí v toku ako zvyčajne a vrstvy bočného panela a obsahu sú nastavené na absolútne umiestnenie.
Ryža. 3.43. Použitie absolútnej polohy
V IE6 nemôžu mať absolútne umiestnené prvky súčasne nastavené vlastnosti left , right a top , bottom.
Na tvorbu sa používa aj absolútne polohovanie rôzne efekty, ako sú napríklad popisy fotografií. Na rozdiel od atribút názvu tag ktorý zobrazuje aj text popisku, prostredníctvom štýlov môžete pomocou skriptu ovládať vzhľad zobrazeného textu.
Najprv vytvorte prázdnu vrstvu s ID floatTip a definujte jej štýl. Musia byť vyžadované tri vlastnosti štýlu – pozícia nastavená na absolútnu , nastavenie zobrazenia na žiadne skryje vrstvu a šírka nastavuje šírku vrstvy s popisom. Zostávajúce vlastnosti sa používajú na žiadosť vývojára a sú určené na zmenu dizajnu vrstvy (príklad 3.32).
Príklad 3.32. Štýl popisku
#floatTip ( pozícia: absolútna; /* Absolútne umiestnenie */ šírka: 250px; /* Šírka bloku */ zobrazenie: žiadne; /* Skrytie pred pohľadom */ orámovanie: 1px plné #000; /* Možnosti orámovania */ výplň: 5px ; /* Okraj okolo textu */ font-family: sans-serif; /* Zúbkované písmo */ font-size: 9pt; /* Veľkosť písma */ farba: #333; /* Farba textu */ pozadie: #ECF5E4; /* Farba pozadia */ )
Samotný skript pozostáva z dvoch funkcií – moveTip() sleduje pohyb myši a mení polohu vrstvy podľa súradníc kurzora a toolTip() riadi viditeľnosť vrstvy a zobrazuje v nej požadovaný text (príklad 3.33).
Príklad 3.33. Výstupný skript vrstvy
document.onmousemove = moveTip; function moveTip(e) ( floatTipStyle = document.getElementById("floatTip").style; w = 250; // Šírka vrstvy // Pre IE if (document.all) ( x = event.x + document.body.scrollLeft ; y = event.y + document.body.scrollTop; // Pre iné prehliadače ) else ( x = e.pageX; // Súradnica X kurzora y = e.pageY; // Súradnica kurzora Y ) // Zobraziť vrstvu vpravo kurzora if ((x + w + 10)< document.body.clientWidth) {
floatTipStyle.left = x + "px";
// Показывать слой слева от курсора
} else {
floatTipStyle.left = x - w + "px";
}
// Положение от верхнего края окна браузера
floatTipStyle.top = y + 20 + "px";
}
function toolTip(msg) {
floatTipStyle = document.getElementById("floatTip").style;
if (msg) {
// Выводим текст подсказки
document.getElementById("floatTip").innerHTML = msg;
floatTipStyle.display = "block"; // Показываем слой
} else {
floatTipStyle.display = "none"; // Прячем слой
}
}
Pre pohodlie a všestrannosť by mal byť skript presunutý do samostatného súboru a pripojený prostredníctvom atribútu src značky
Objektív "+": Canon EF 24-105 f/4L IS USM „+“ Blesk: Canon Speedlite 580 EX "+" Rýchlosť uzávierky: 1/125 Clona: 5,6")" onmouseout="toolTip()" />
Výsledok tohto príkladu je znázornený na obr. 3.44. Upozorňujeme, že zalamovanie textu pri volaní funkcie toolTip() je vytvorené kvôli čitateľnosti a má Syntax JavaScriptu. V Safari skript niekedy nefunguje pri zalamovaní textu, v takom prípade by mal byť text napísaný na jeden riadok. Do štýlov bola pridaná vlastnosť opacity CSS3, ktorá vrstve pridáva trochu priehľadnosti. Pred IE 9.0 táto vlastnosť nie je podporovaná.
Ryža. 3.44. Popis vykreslený pomocou JavaScriptu
Pevná poloha
Pevná poloha vrstvy je nastavená hodnotou vlastnosti position fixed a je podobná absolútnemu umiestneniu. Na rozdiel od neho je však pripevnený k bodu na obrazovke určenému vlastnosťami left , top , right a bottom a nemení svoju polohu pri posúvaní webovej stránky. Ďalším rozdielom od absolútneho je, že keď pevná vrstva presahuje viditeľnú oblasť vpravo alebo pod ňou, nezobrazujú sa žiadne posuvníky.
Tento typ polohovania sa používa na vytváranie ponúk, kariet, hlavičiek, vo všeobecnosti akýchkoľvek prvkov, ktoré by mali byť na stránke fixované a vždy viditeľné pre návštevníka. Príklad 3-35 ukazuje pridanie päty, ktorá zostane na rovnakom mieste bez ohľadu na množstvo informácií na stránke.
Príklad 3.35. Pevný suterén
XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx
Pevný suterén
Všetky spôsoby odchytu leva uvedené na stránke sú teoretické a založené na výpočtových metódach. Autor neručí za vašu bezpečnosť pri ich používaní a zrieka sa akejkoľvek zodpovednosti za výsledok. Pamätajte, že lev je dravec a nebezpečné zviera!
Výsledok príkladu je znázornený na obr. 3.45. Pretože pevná pivnica prekryje text a skryje ho, pridaná spodná výplň pre selektor BODY. IE6 nepodporuje pevnú hodnotu, takže tento príklad nebude v tomto prehliadači fungovať správne.
Ryža. 3.45. Päta v spodnej časti stránky
Relatívne umiestnenie
Nastavením vlastnosti position na relatívne sa nastaví poloha prvku vzhľadom na jeho pôvodnú polohu. Pridaním vlastností left , top , right a bottom sa zmení poloha prvku a presunie sa na jednu alebo druhú stranu z pôvodnej polohy. Kladná hodnota vľavo definuje posun vpravo od ľavého okraja prvku, záporná hodnota určuje posun vľavo. Kladná hodnota top nastavuje posun prvku nadol (obr. 3.46), záporná hodnota posun nahor.
Ryža. 3.46. Vľavo a hore hodnoty vlastností pre relatívne umiestnenie
Vlastnosti spodnej a pravej strany majú opačný efekt. Ak je hodnota kladná, doprava posúva prvok doľava od jeho pravého okraja, ak je záporná, posúva sa doprava (obr. 3.47). Kladná spodná hodnota posunie prvok nahor a záporná hodnota ho posunie nadol.
Ryža. 3.47. Pravé a spodné hodnoty vlastností pre relatívne umiestnenie
Relatívna poloha má nasledujúce vlastnosti.
Tento typ umiestnenia nie je použiteľný pre prvky tabuľky, ako sú bunky, riadky, stĺpce atď.
Keď je prvok odsadený vzhľadom na východisková pozícia, priestor obsadený prvkom zostáva prázdny a nie je vyplnený prvkami pod alebo nad.
Príklad 3-36 ukazuje text nadpisu posunutý nadol, aby mal odlišný štýl.
Príklad 3.36. Názov textu
XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx
hlavička
Veda o písme az a buki
Písmo je prostriedkom na vyjadrenie dizajnu, nie nejakým banálnym čítaním.
Výsledok tohto príkladu je znázornený na obr. 3.48.
Ryža. 3.48. Posunúť text vzhľadom na pôvodnú pozíciu
Vnorené vrstvy
Samotné relatívne umiestnenie sa zvyčajne často nepoužíva, pretože existuje množstvo vlastností, ktoré v skutočnosti vykonávajú rovnakú úlohu, napríklad rovnaký okraj . Ale kombinácia rôznych typov polohovania pre vnorené vrstvy je jednou z pohodlných a praktických techník rozloženia. Ak je pre nadradený prvok nastavený relatívny a pre potomka absolútny, potom sa zmení súradnicový systém a je indikovaná poloha podriadeného prvku vzhľadom k jeho rodičovi (obr. 3.49).
Ryža. 3.49. Hodnoty vlastností vľavo, vpravo, hore a dole vo vnorených vrstvách
Súradnice sa počítajú od vnútorného okraja hranice, hodnoty poľa sa neberú do úvahy. Nasledujúci príklad umiestni text do pravého dolného rohu vrstvy blízko okraja, pričom ignoruje vlastnosť padding.
Text
Použitím štyroch vlastností left , right , top , bottom na ovládanie polohy vnútornej vrstvy nie je potrebné poznať veľkosť materskej vrstvy. To rozširuje rozsah polohovania, takže poloha sa pomerne aktívne používa pri rozmiestnení rôznych prvkov. Ako príklad si vezmime uloženie rôznych informácií na fotografiu: počet komentárov k nej, odkazy „Pridať komentár“, „Informácie o autorovi“ a „Pridať medzi obľúbené“. Vo všeobecnosti by mal byť výsledok približne rovnaký ako na obr. 3,50.
Ryža. 3,50. Fotografia s prekrývajúcimi sa prvkami
Samotný kód je zobrazený v príklade 3.37. Vrstva fotografie je umiestnená relatívne, zatiaľ čo vnútorné vrstvy img (výstup fotografie), komentár (počet komentárov) a nástroj (odkazy v spodnej časti fotografie) sú nastavené na absolútnu polohu.
Príklad 3.37. Umiestnenie vrstvy
XHTML 1.0 CSS 2.1 CSS 3 IE 7+ IE 9+ Cr Op Sa Fx
Umiestnenie vrstvy
134
Blokový prvok v HTML je taký, ktorý štandardne zaberá celú šírku svojho nadradeného prvku. Nadradeným prvkom môže byť iný prvok bloku alebo okno prehliadača. Pomocou vlastností CSS môžete nastaviť šírku (šírku) a výšku (výšku) prvku bloku. Umiestňovanie prvkov na úrovni bloku je proces ich umiestňovania v okne prehliadača a relatívneho priateľa pomocou vlastností CSS position , left , top , right a bottom . Vlastnosť CSS position je navrhnutá na nastavenie jedného zo štyroch dostupných typov polohovania: statické (predvolené), absolútne (absolútne), pevné (pevné) a relatívne (relatívne). Ostatné vlastnosti CSS, menovite left , top , right a bottom , sú určené na nastavenie vzdialeností vzhľadom na ľavý, horný, pravý a spodný okraj nadradeného prvku. Taktiež sa pri nastavovaní určitých vlastností môžu prvky blokov navzájom prekrývať a túto funkciu je možné použiť aj na stránkach.
Predvolené umiestnenie (statické)
Ak neurčíte polohu na prvku bloku alebo zadáte static , čo je to isté, prvky bloku sú v poradí. Okrem toho sa ďalší blok (napríklad: červený) nachádza na novom riadku. Toto umiestnenie nie je ovplyvnené ani nastavením vzdialeností vľavo, hore, vpravo a dole.
Absolútna poloha (absolútna)
Pri absolútnom umiestnení sa poloha prvku nastavuje vzhľadom na okraje okna prehliadača pomocou vzdialeností určených vlastnosťami left , top , right a bottom. Ak zadáte ľavú a pravú vzdialenosť súčasne a navzájom si odporujú, uprednostňuje sa ľavá, to isté platí pre hornú a spodnú časť , kde má prednosť horná vzdialenosť. Absolútne polohovanie sa používa veľmi často v spojení s relatívnym polohovaním pre účely dizajnu, keď je potrebné umiestniť rôzne prvky voči sebe, možno ho použiť aj na vytváranie rozbaľovacích ponúk, rozloženie stránok atď.
Pevné umiestnenie (pevné)
Pevné umiestnenie sa líši od iných typov umiestňovania a pri posúvaní stránky sa nepohybuje s obsahom. Prvky bloku s pevnou polohou sú ukotvené pomocou vlastností left , top , right a bottom k okrajom okna prehliadača. Pevné umiestnenie sa používa na vytváranie rozhraní rámcov (okno prehliadača je rozdelené na niekoľko oblastí), pevné menu, pevná päta stránky a „trvalé“ bloky (zoznam odkazov, sociálne tlačidlá atď.).
Relatívna poloha (relatívna)
Relatívne umiestnenie je určené zadaním vzdialeností vľavo , hore , vpravo a dole vzhľadom k aktuálnej polohe.
Takúto blokovú pozíciu je však možné vytvoriť aj pomocou vlastnosti margin (indents).
Relatívne polohovanie nie je zábavné používať samo o sebe, väčšinou sa používa v spojení s absolútnym polohovaním.
Zvážte možnosti:
Umiestnenie v CSS sa zdá byť celkom jednoduché. Zadajte, ktorý blok a kde sa má nachádzať. Všetko však nie je také jednoduché, ako sa na prvý pohľad zdá. Existuje niekoľko bodov, ktoré môžu začiatočníkov zmiasť. Z polohovania môžete vyťažiť oveľa viac, ak podrobne pochopíte, ako to funguje.
Box-model v CSS a typy polohovania.
Skôr ako začnete, odporúčam vám prečítať si článok Box model v CSS. Stručne povedané: každý prvok v html je obdĺžnik, pre ktorý môžete zadať hodnoty výplne a výplne, ako aj okraj, ktorý ich oddeľuje.
Schémy umiestnenia určujú, kde by mal byť tento obdĺžnik umiestnený, ako aj to, ako by mal ovplyvniť prvky okolo neho.
Vlastnosť position v CSS môže mať päť hodnôt:
absolútne
príbuzný
pevné
statické
dediť
Predvolene sa používa statická hodnota. Každý prvok so statickým umiestnením je vo všeobecnom toku dokumentu. Pravidlá pre jeho umiestnenie určuje model Box. V prípade takýchto prvkov budú vlastnosti top , right , bottom a left ignorované. Aby bolo možné použiť tieto vlastnosti, poloha prvku musí byť absolútna (absolútna), relatívna (relatívna) alebo pevná (pevná).
Zdediť hodnotu, rovnako ako všetky ostatné vlastnosti CSS, sa používa na prinútenie prvku použiť rovnakú hodnotu ako nadradený prvok.
Absolútna poloha
Absolútne umiestnenie odstraňuje prvok z všeobecný tok dokument. Čo sa týka prvkov naokolo, v tomto prípade jednoducho ignorujú ten, ktorý hľadajú, ako keby zobrazenie: nebola preň nastavená žiadna vlastnosť; . Ak nechcete, aby sa priestor pre takýto prvok zaplnil inými prvkami, potom musíte prísť s iným prístupom.
Polohu absolútne umiestneného prvku nastavíte pomocou vlastností top , left , right a bottom. Stačí zadať dve z nich, hornú alebo spodnú a ľavú alebo pravú. Ak nie sú špecifikované žiadne vlastnosti, potom sa pre ľavý horný pár nastaví 0.
Kľúčom k absolútnemu umiestneniu je pochopenie toho, čo je referenčný bod. Ak je horná vlastnosť nastavená na 20 pixelov, odkiaľ sa majú počítať.
Odpoveď je jednoduchá: takéto prvky sú umiestnené relatívne k najbližšiemu rodičovskému prvku, ktorý je umiestnený inak ako statický . Ak takýto prvok neexistuje, prvok je umiestnený vzhľadom na hlavný dokument. To znamená, že pri nastavovaní absolútneho umiestnenia CSS povie prehliadaču, aby sa pozrel na nadradený prvok a ak jeho umiestnenie nie je statické, potom je potrebné zarovnať aktuálny prvok voči nemu.
Relatívna poloha.
Relatívne umiestnené prvky sú umiestnené na základe ich vlastnej polohy, len odsadené od svojej normálnej polohy. Je to podobné, ako by ste pridali okraje k prvku pomocou vlastnosti margin. Je tu však jeden podstatný rozdiel: susedné prvky v prípade použitia polohovania tento posun nezohľadňujú.
Predstavte si to takto: určitý obraz sa posunie a na jeho mieste zostane „duch“, všetky prvky sú umiestnené vo vzťahu k tomuto „duchovi“. To nám umožňuje prekrývať prvky na seba.
Relatívne umiestnené prvky sú teda prevzaté z normálneho toku prvku, ale stále majú vplyv na umiestnenie susedných prvkov, ktoré sa správajú tak, že pôvodný prvok je stále v toku dokumentu.
V tomto prípade si nemusíme klásť otázku, o aký prvok sa tu jedná. Odpoveď je vždy: normálny tok dokumentov. Je to veľmi podobné, ako keby ste k prvku pridali výplň, no zároveň ste neovplyvnili susediace prvky.
Pevné polohovanie
Pevné polohovanie funguje ako absolútne polohovanie s niekoľkými rozdielmi.
Po prvé, prvok s pevnou polohou je vždy umiestnený relatívne k oknu prehliadača a nadradené prvky sa ignorujú.
Druhý rozdiel pochádza z jeho názvu. Na stránke sú upevnené pevné prvky. Pri rolovaní sa nepohybujú.
Z-index
Stránka lokality je dvojrozmerná. Má šírku a výšku. Z-index pridáva tretí rozmer, hĺbku.
Čím vyšší je tento index, tým vyššie je prvok umiestnený na stránke. Pomocou neho môžeme dosiahnuť, že jeden prvok je umiestnený nad druhým. Štandardne je jeho hodnota nula. Povolené sú aj záporné hodnoty.
V skutočnosti je z-index oveľa komplikovanejší, ako ho tu popisujem, ale to je téma na samostatný článok. Nateraz je hlavnou vecou, ktorú si treba zapamätať, myšlienka tretej dimenzie a to, že túto vlastnosť môžu využívať iba umiestnené prvky.
problémy s polohovaním.
Poďme sa pozrieť na niektoré bežné problémy s polohovaním a pár slov o tom, ako ich vyriešiť.
Nemôžete použiť vlastnosť position a float v rovnakom čase na rovnakom prvku. Obe tieto vlastnosti ovplyvňujú polohu prvku, takže sa použije posledná špecifikovaná vlastnosť.
Z komentárov:
Môžete použiť position:relative a float súčasne.
Keď sú zadané obe polohy: absolútna aj plávajúca, nie je to posledná špecifikovaná vlastnosť, ktorá sa použije. V tomto prípade sa bez ohľadu na poradie týchto štýlov použije position:absolute a konečná (alebo vypočítaná) hodnota vlastnosti float je nastavená na žiadnu, bez ohľadu na počiatočnú hodnotu, t.j. ignoroval.
Okraje sa "nezrútia" na absolútne umiestnených prvkoch. Povedzme, že stránka má odsek so spodným okrajom 20px. Za ním nasleduje obrázok s horným okrajom 30px. Vzdialenosť medzi obrázkom a textom nebude 50px (20px + 30px), ale 30px (30px > 20px). Toto správanie sa nazýva zrútenie okrajov. Dve zarážky sú spojené do jednej. Absolútne umiestnené prvky nemajú okraje na „zbalenie“, takže výsledok nemusí byť taký, ako očakávate.
IE a z-index. V IE6 sa výber prvkov vždy vyskytuje v hornej časti zásobníka, bez ohľadu na jeho z-index , z-index s okolitých prvkov.
IE6 a IE7 majú ďalší problém so z-indexom. IE sa pozerá na nadradený prvok, aby určil, v ktorej skupine prvkov je vrchol zásobníka, iné prehliadače používajú globálny kontext. Napríklad:
Očakávame, že odsek bude vyšší ako obrázok, pretože jeho z-index je vyšší. IE6 a IE7 však umiestňujú obrázok vyššie, pretože sú na rôznych stohoch dokumentov. Jeden zásobník pre div , jeden pre img a obrázok má vyšší z-index ako div .
Záver
Vlastnosť position nastavuje správanie prvku pri polohovaní podľa jednej zo schém polohovania. Dostupné hodnoty vlastností sú absolútne, relatívne, pevné, statické (predvolené) a zdediť.
Schémy umiestnenia definujú pravidlá umiestnenia prvku na webovú stránku, ako aj vplyv na polohu susedných prvkov.
Vlastnosť z-index možno použiť len na prvky s nastavenou vlastnosťou position. Pridáva na stránku tretí rozmer a nastavuje poradie zásobníka prvkov.
Vlastnosť polohy sa zdá byť ľahko pochopiteľná, ale funguje trochu inak, ako sa na prvý pohľad zdá. Vývojári si často myslia, že potrebujú relatívne umiestnenie, keď by s najväčšou pravdepodobnosťou mali použiť absolútne umiestnenie. V zásade sa pri rozložení používa vlastnosť float a vlastnosť position je nevyhnutná pre prvky, ktoré chcete „vytiahnuť“ zo všeobecného toku dokumentu.
Predstavte si, že webový vývojár nemusí vôbec premýšľať o tom, ako bude vyzerať vizuálne. hotová stránka. Len napíše kód, samotné prvky sa na stránke zoradia zhora nadol (blok) a zľava doprava (inline). Čím vyššie je kód napísaný v dokumente, tým vyššie sa na stránke zobrazí.
Vo všeobecnosti uvidíme prirodzené správanie prvkov a poradie, v ktorom sú zobrazené na stránke - tok dokumentu. Ale s týmto poradím nie sme vôbec spokojní, logo chceme umiestniť vľavo hornom rohu a tlačidlo trochu doprava. Potrebujeme plnú kontrolu nad všetkými prvkami, my rozhodujeme, kde a čo bude. A na to potrebujete nástroj (vlastnosť), ktorý zmení obvyklé správanie prvkov v prúde. Čo je to za nehnuteľnosť?
AT cssštýlov sa to nazýva polohovanie (pozícia), čo môže byť normálne (statický), príbuzný (príbuzný) a absolútne (absolútne).
Relatívne umiestnenie v CSS
O relatívne umiestnenie, blok sa posunie vzhľadom na jeho pôvodnú polohu. Avšak napísaním do bloku:
poloha: relatívna;
nic sa nedeje, ostane tam kde je. A posúva blokový súradnicový systém (hore, dole, vľavo, vpravo) s kladnými aj zápornými hodnotami.
Ako to funguje?
Vnútri žltého bloku s triedou blokovo žltá je tam červený blok s triedou blok relatívne. V normálnom toku červený blok prekrýva žltý, pretože je posledný v kóde.
východisková pozícia
relatívna poloha- relatívna
Musíme posunúť červený blok nadol o 10 pixelov. To sa dá urobiť iba násilnou zmenou polohy červeného bloku. Takto píšeme hore: 10px, ale treba upresniť, od čoho sa má počítať týchto 10 pixelov?
Predpisovanie poloha: relatívna, dávame jasne najavo, čo sa má počítať vzhľadom na jeho aktuálnu pozíciu.
blokovo žltá ( farba pozadia: #ffe70f;
}
blok relatívne ( poloha: relatívna; hore: 10px; farba pozadia: #ed5b77;
}
Na obrázku môžeme vidieť, ako sa červený blok posunul nadol, o 10 pixelov nadol, zo svojej pôvodnej pozície.
Ak sa odstráni z kódu poloha: relatívna, potom blok zostane na mieste. A ak namiesto toho príbuzný, píšte absolútne, potom sa štandardne týchto 10 pixelov bude počítať od okraja okna prehliadača a v dôsledku toho sa náš blok naopak zdvihne a vytiahne sa k spodnému okraju prehliadača. A toto nebolo súčasťou našich plánov.
Absolútna poloha v CSS
blok na obrázku umiestnený absolútne, to je, keď sa súradnicový systém počíta od okraja prehliadača, keď sa nahradí iba jedno slovo, zmenili sme polohu bloku.
pozícia: absolútna;
Je tu jedna vlastnosť. Absolútna poloha ovplyvňuje aj inline prvky. Ak je zadaný vložený prvok pozícia: absolútna, potom sa bude správať ako blok. Toto je analogické s nehnuteľnosťou - displej:blok.
To nie je všetko, „absolútny“ prvok, ktorý sa nachádza vo vnútri „relatívneho“ rodiča, zmení svoj súradnicový referenčný bod a začne polohovať od rodiča.
poloha: relatívna
pozícia: absolútna;
Blok s triedou blokovo-absolútny byť vnútri rodiča blokovo žltá.
Pri rolovaní stránky sa blok s poloha: pevná, zostane na svojom mieste, čo je bežná metóda používaná na pripnutie navigačnej lišty.
z-index
Rieši poradie prekrývania „absolútnych“ blokov. Potrebujeme, aby červený blok bol na vrchu žltého, potom špecifikujeme z-index: 2 pre červenú a z-index: 1 pre žltú.
Profesionálny športový simulátor Athletics 2 pre Android bol vytvorený pre sebavedomých mladých ľudí, ktorí sa pripravujú stať sa svetovými športovcami....
Za polovicu roka 2017 sa spoločnosti Sony Mobile podarilo vydať celý rad smartfónov. Ktoré sú však tie najrelevantnejšie na nákup? A oplatí sa vyberať z...