CSS poskytuje možnosti umístění prvků, což znamená, že můžeme umístit prvek na konkrétní místo na stránce.
Hlavní vlastností, která ovládá umístění v CSS, je vlastnost position. Tato vlastnost může nabývat jedné z následujících hodnot:
static : standardní umístění prvku, výchozí hodnota
absolutní : prvek je umístěn vzhledem k hranicím prvku kontejneru, pokud jeho vlastnost position není statická
relativní : Prvek je umístěn relativně ke své výchozí poloze. Hlavním účelem relativního umístění obvykle není přesunout prvek, ale vytvořit nový kotevní bod pro absolutní umístění jeho vnořených prvků.
pevné : prvek je umístěn vzhledem k oknu prohlížeče, což vám umožňuje vytvářet pevné prvky, které při rolování nemění polohu
Na prvek byste neměli současně aplikovat vlastnost float a jakýkoli jiný typ umístění než statický (tj. výchozí typ).
Absolutní umístění
Zobrazovací oblast prohlížeče má horní, spodní, pravý a levý okraj. Každá z těchto čtyř hran má odpovídající vlastnost CSS: left, right, top a bottom. Hodnoty těchto vlastností jsou specifikovány v pixelech, ems nebo procentech. Není nutné nastavovat hodnoty pro všechny čtyři strany. Zpravidla se nastavují pouze dvě hodnoty - odsazení od horního okraje nahoře a odsazení od levého okraje vlevo.
Blokové rozložení v HTML5
AHOJ SVĚTE
Absolutně umístěný div zde bude 100 pixelů vlevo od okraje výřezu a 50 pixelů zdola.
Není tak důležité, aby po tomto prvku div byly nějaké další prvky. Tento blok div bude v každém případě umístěn relativně k hranicím výřezu prohlížeče.
Pokud je prvek s absolutním umístěním umístěn v jiném kontejneru, který má naopak hodnotu vlastnosti position nerovnající se static , pak je prvek umístěn relativně k hranicím kontejneru:
Umístění v HTML5
Relativní umístění
Relativní umístění je také specifikováno pomocí relativní hodnoty. Pro určení konkrétní pozice, do které je prvek posunut, se použijí stejné vlastnosti nahoře, vlevo, vpravo, dole:
Umístění v HTML5
vlastnost z-index
Ve výchozím nastavení, když dva prvky mají stejné ohraničení, prvek, který je naposledy definován v html značce, se zobrazí nad druhým. Vlastnost z-index vám však umožňuje změnit pořadí prvků, když jsou překryty. Vlastnost bere jako hodnotu číslo. Prvky s vyšší hodnotou z-indexu se zobrazí nad prvky s menší hodnotou z-indexu.
Například:
Umístění v HTML5
Nyní přidáme nové pravidlo do stylu bloku redBlock:
Zde je z-index 100. Ale nemusí to být číslo 100. Vzhledem k tomu, že druhý blok má nedefinovaný z-index a je ve skutečnosti nulový, pro redBlock můžeme nastavit vlastnost z-index na libovolnou hodnotu větší než nula.
A nyní bude první blok překrývat druhý, a ne naopak, jak tomu bylo na začátku.
Představte si, že webový vývojář nemusí vůbec přemýšlet o tom, jak bude hotová stránka vizuálně vypadat. Jednoduše napíše kód, samotné prvky se na stránce seřadí, shora dolů (blok) a zleva doprava (inline). Čím výše v dokumentu je kód napsán, tím výše se na stránce objeví.
Obecně uvidíme přirozené chování prvků a pořadí, v jakém jsou zobrazeny na stránce - tok dokumentu. Ale s tímto pořadím nejsme vůbec spokojeni, chceme umístit logo do levého horního rohu a tlačítko trochu doprava. Potřebujeme úplnou kontrolu nad všemi prvky, rozhodujeme o tom, kde a co bude umístěno. A k tomu potřebujete nástroj (vlastnost), který změní normální chování prvků v toku. Co je to za nemovitost?
V CSS styly se tomu říká umístění (pozice), který může být obyčejný (statický), relativní (relativní) a absolutní (absolutní).
Relativní umístění v CSS
Na relativní umístění, blok se posune vzhledem ke své původní poloze. Nicméně po zapsání do bloku:
Pozice: relativní;
nic se nestane, zůstane na místě. A souřadnicový systém posune blok (nahoře, dole, vlevo, vpravo) s kladnými i zápornými hodnotami.
Jak to funguje?
Uvnitř žlutého bloku s třídou blokově žluté je tam červený blok s třídou blokově relativní. V normálním toku červený blok překrývá žlutý, protože je zapsán jako poslední v kódu.
začáteční pozice
relativní pozice
Potřebujeme posunout červený blok o 10 pixelů dolů. To lze provést pouze násilnou změnou polohy červeného bloku. Tak to píšeme nahoře: 10px, ale musíte uvést, odkud se má těchto 10 pixelů počítat?
Po registraci poloha: relativní, objasníme, že počet je relativní k jeho aktuální pozici.
Na obrázku vidíme, jak se červený blok posunul dolů, o 10 pixelů dolů ze své původní pozice.
Pokud odstraníte z kódu poloha: relativní, pak blok zůstane na místě. Co když místo toho relativní, napsat absolutní, pak se standardně těchto 10 pixelů bude počítat od okraje okna prohlížeče a v důsledku toho se náš blok naopak zvedne nahoru a dosáhne spodního okraje prohlížeče. A to nebylo součástí našich plánů.
Absolutní umístění v CSS
Na obrázku je blok absolutně umístěný, to je, když se souřadnicový systém počítá od okraje prohlížeče, nahrazením jediného slova jsme změnili polohu bloku.
Pozice: absolutní;
Je tu jedna zvláštnost. Absolutní umístění ovlivňuje také inline prvky. Pokud je zadán vložený prvek pozice: absolutní, pak se bude chovat jako bloková. To je analogie nemovitosti - displej: blok.
To není vše, "absolutní" prvek umístěný uvnitř "relativního" rodiče změní svůj souřadnicový referenční bod a začne být umístěn pryč od rodiče.
poloha: relativní
pozice: absolutní;
Blok s třídou blok-absolutní být uvnitř rodiče blokově žluté.
Při rolování stránky blok s poloha: pevná, zůstane na místě, tato metoda se obvykle používá k opravě navigační lišty.
z-index
Řeší pořadí překrývajících se "absolutních" bloků. Potřebujeme, aby červený blok byl nahoře nad žlutým, pak naznačíme z-index: 2 pro červenou a z-index: 1 pro žlutou.
Jednou z nejlepších věcí na CSS je, že styly nám dávají možnost umístit obsah a prvky na stránku téměř jakýmkoliv představitelným způsobem. To dodává našemu návrhu strukturu a pomáhá tomu, aby byl obsah vizuálnější.
V CSS existuje několik různých typů umístění, každý z těchto typů má svůj vlastní rozsah. V této kapitole se podíváme na několik různých případů použití – vytváření opakovaně použitelných rozvržení a jedinečné umístění jednorázových prvků – a popíšeme několik metod, jak toho dosáhnout.
Polohování pomocí plováku
Jedním ze způsobů umístění prvků na stránku je vlastnost float. Tato vlastnost je poměrně univerzální a lze ji využít mnoha různými způsoby.
Vlastnost float v podstatě vezme prvek, odebere ho z normálního toku stránky a umístí jej vlevo nebo vpravo od jeho nadřazeného prvku. Všechny ostatní prvky na stránce se kolem takového prvku zalomí. Odstavce se například obtékají kolem obrázku, pokud prvek je nastavena vlastnost float.
Když je vlastnost float aplikována na více prvků najednou, umožňuje vytvořit rozvržení s plovoucími prvky vedle sebe nebo naproti sobě, jak je znázorněno na rozvržení s více sloupci.
Vlastnost float nabývá několika hodnot, z nichž dvě nejoblíbenější jsou left a right, které umožňují prvku plout vlevo nebo vpravo od svého rodiče.
Img ( plovoucí: vlevo; )
plavat v praxi
Vytvořme obecné rozložení stránky se záhlavím nahoře, dvěma sloupci uprostřed a zápatím dole. V ideálním případě by tato stránka měla být označena prvky
,
,
Pro referenci jsou plovoucí prvky umístěny podél okraje nadřazeného prvku. Pokud neexistuje žádný rodič, plovoucí prvek bude umístěn podél okraje stránky.
Když nastavíme prvek jako plovoucí, odstraníme jej z normálního toku dokumentu HTML. To způsobí, že výchozí šířka tohoto prvku se stane šířkou jeho obsahu. Někdy, například když vytváříme sloupce pro opakovaně použitelné rozvržení, je toto chování nežádoucí. To lze opravit přidáním vlastnosti width s pevnou hodnotou pro každý sloupec. Navíc, abychom zabránili tomu, aby se plovoucí prvky vzájemně dotýkaly a způsobily, že obsah jednoho prvku bude sedět vedle druhého, můžeme použít vlastnost margin k nastavení mezery mezi prvky.
Níže rozšiřujeme předchozí blok kódu přidáním okraje a šířky pro každý sloupec, abychom lépe tvarovali požadovaný výsledek.
U plovoucího prvku je také důležité pochopit, že prvek je odstraněn z normálního toku stránky a že se výchozí hodnota zobrazení prvku může změnit. Vlastnost float závisí na tom, že hodnota zobrazení prvku je nastavena na blok a může změnit výchozí hodnotu zobrazení prvku, pokud již není vykreslen jako prvek bloku.
Například prvek, jehož zobrazení je zadáno jako inline , například inline , ignoruje všechny vlastnosti výšky nebo šířky. Pokud však zadáte float pro vložený prvek, hodnota zobrazení se změní na blok a prvek již může mít vlastnosti výšky nebo šířky.
Když prvek plovoucí, musíme být opatrní, jak to ovlivňuje hodnotu vlastnosti display.
Pro dva sloupce můžete nastavit plovoucí, jeden sloupec jako levý a druhý jako pravý, ale pro více sloupců budeme muset změnit náš přístup. Řekněme, že bychom například chtěli mít mezi našimi prvky řadu tří sloupců A
......
...
...
Uspořádat tyto tři prvky v třísloupcové řadě musíme pro všechny prvky nastavit float jako vlevo. Musíme také upravit šířku zohlednění dalších sloupců a jejich umístění jeden vedle druhého.
Zde máme tři sloupce, všechny se stejnou šířkou a hodnotou okraje a plovoucí lištu nastavenou doleva .
Ukázka třísloupového rozložení s plovákem
Vymazání a plavení obsahu
Vlastnost float byla původně navržena tak, aby umožnila obsahu obtékat obrázky. Obrázek může mít plovoucí vlastnosti a veškerý obsah kolem něj přirozeně proudí kolem něj. I když to funguje skvěle pro obrázky, vlastnost float ve skutečnosti nebyla určena k použití pro účely rozvržení a umístění, a proto přichází s několika úskalími.
Jedním z těchto úskalí je, že se někdy správné styly neobjeví na prvku, který sousedí s plovoucím prvkem nebo je jeho rodičem. Když je prvek nastaven jako plovoucí, je odstraněn z normálního toku stránky a v důsledku toho mohou být styly prvků kolem tohoto plovoucího prvku negativně ovlivněny.
Hodnoty vlastností margin a padding jsou často interpretovány nesprávně, což způsobuje, že splývají s plovoucím prvkem. Mohou být ovlivněny i další vlastnosti.
Další chybou je, že někdy se kolem prvku float začne nabalovat nežádoucí obsah. Odstranění prvku z toku dokumentu umožňuje všem prvkům kolem plovoucího prvku jej obejít a zabírat veškerý dostupný prostor kolem plovoucího prvku, což je často nežádoucí.
V našem předchozím příkladu se dvěma sloupci poté, co jsme k prvkům přidali float A
Ukázka rozložení bez čištění plováku
Aby se obsah neobtékal kolem plovoucích prvků, musíme uvolnit plovoucí prvek a vrátit stránku do normálního toku. Podíváme se, jak vyčistit plováky a pak se podíváme na jejich obsah.
Čištění plováků
K vymazání floatu dochází pomocí vlastnosti clear, která nabývá několika různých hodnot: nejčastěji používané hodnoty jsou left , right a both .
Div (vymazat: vlevo; )
Hodnota vlevo vymaže levé plovoucí body, zatímco hodnota vpravo vymaže plovoucí pravé. Hodnota both však vymaže levou a pravou plovoucí hodnotu a je často tou nejideálnější možností.
Vraťme se k našemu předchozímu příkladu, pokud použijeme vlastnost clear s hodnotou obou na prvku
Zápatí (jasné: obojí; )
Ukázka rozložení s čištěním plováku
Plovoucí obsah
Namísto vymazání float je další možností nastavit obsah na float. Výsledek bude v podstatě stejný, ale plovoucí obsah skutečně zajišťuje, že se všechny naše styly zobrazí správně.
Chcete-li nastavit plovoucí obsah, plovoucí prvky musí být uvnitř nadřazeného prvku, bude fungovat jako kontejner a tok dokumentu zůstane zcela normální mimo něj. Styl tohoto nadřazeného prvku je reprezentován třídou skupiny, jak je znázorněno zde:
Tady se toho moc neděje, ale v podstatě vše, co CSS udělá, je vymazat všechny plovoucí prvky uvnitř elementu skupiny a vrátit dokument do normálního toku.
Přesněji řečeno, pseudoprvky ::before a ::after, jak je uvedeno v lekci 4, dynamicky generují prvky nad a pod prvkem s class group . Tyto prvky nezahrnují žádný obsah a jsou vykresleny jako prvky tabulky, podobně jako prvky bloku. Dynamicky generovaný prvek po prvku skupiny vymaže plovoucí hladinu uvnitř prvku skupiny, stejně jako to dělalo dříve. Nakonec prvek group také vymaže všechny plovoucí hodnoty, které se před ním mohou objevit v případě, že existuje plovoucí hodnota s hodnotou left nebo right . Součástí je také malý trik, díky kterému budou starší prohlížeče hrát pěkně.
Je zde více kódu než jen příkaz clear: both, ale může být docela užitečný.
S ohledem na naše dvousloupcové rozložení stránky bychom mohli zalomit A
Zde zobrazená technika je známá jako "clearfix" a je často k vidění na jiných stránkách s názvem třídy clearfix nebo cf. Rozhodli jsme se použít název třídy group, protože představuje skupinu prvků a lépe vyjadřuje obsah.
Když jsou prvky nastaveny na plovoucí, je důležité sledovat, jak ovlivňují tok stránky, a zajistit, aby se tok stránky resetoval vymazáním nebo prostřednictvím plovoucího obsahu, jak bylo zamýšleno. V opačném případě může sledování plovoucích položek způsobit spoustu starostí, zejména na stránkách, které obsahují více řádků, každý s více sloupci.
Na praxi
Vraťme se na web Styles Conference a vyzkoušíme přidání plovoucích prvků k nějakému obsahu.
Za prvé, než použijeme float na jakýkoli prvek, poskytněme těmto plovoucím prvkům obsah přidáním clearfix do našeho CSS. V souboru main.css, hned pod naše styly mřížky, přidáme clearfix pod názvem třídy skupiny, stejně jako předtím. /* ================================================== ====== Clearfix ============================================* / .group::before, .group::after ( content: " "; display: table; ) .group::after ( clear: both; ) .group ( clear: both; *zoom: 1; )
Nyní, když můžeme použít float, pojďme jej definovat pro hlavní
vnitřní prvek jako vlevo a zbytek obsahu v záhlaví nechte stékat doprava.
Chcete-li to provést, přidejte do prvku třídu loga
. Dále do našeho CSS přidáme novou sekci stylů pro hlavní záhlaví. V této části vybereme prvek
Když už jsme tady, pojďme přidat trochu více detailů k našemu logu. Začněme umístěním prvku nebo zalomení řádku mezi slovy „Styly“ a „Konference“, aby se text našeho loga zobrazil na dvou řádcích.
V CSS přidáme okraj podél horní části našeho loga a nějaké svislé vycpávky, aby logo mohlo volně „dýchat“.
Logo ( okraj-horní: 4px plné #648880; odsazení: 40px 0 22px 0; plovoucí: vlevo; )
Protože jsme vytvořili prvek
zjednodušené, chceme nastavit obsah jako plovoucí . Bezprostřední rodič pro
je prvkem tak k tomu přidáme skupinovou třídu. Tím se na něj použijí styly clearfix, které jsme nastavili dříve.
...
Živel nabývá tvar, pojďme se tedy na prvek podívat
Na rozdíl od prvku třídu však nebudeme aplikovat přímo na prvek float. Tentokrát přidáme třídu do rodiče prvku float a pomocí jedinečného selektoru CSS prvek vybereme a poté mu udělíme float .
Začněme přidáním třídy primární zápatí k prvku
Nyní, když je primární třída zápatí nastavena na prvek
/* ========================================= Hlavní suterén ====== ===================================== */ .primary-footer small (float: left; )
Pro kontrolu - zde vybereme prvek , který by měl být uvnitř prvku s hodnotou atributu class primární zápatí, jako je náš prvek
Nakonec přidáme malou výplň do horní a spodní části prvku.
Kromě použití float je dalším způsobem, jak můžeme umístit obsah, pomocí vlastnosti display v kombinaci s hodnotou inline-block. Metoda inline-block, jak si probereme později, je primárně užitečná pro rozvržení stránek nebo pro umístění prvků do řádku vedle sebe.
Připomeňme, že hodnota inline-block pro vlastnost display zobrazuje prvky v řádku a umožňuje jim převzít všechny vlastnosti krabicového modelu, včetně výšky , šířky , odsazení , ohraničení a okraje . Použití inline-block nám umožňuje plně využít blokový model, aniž bychom se museli starat o odstranění jakýchkoliv plováků.
inline-blok v praxi
Podívejme se na náš třísloupcový příklad úplně od začátku. Začneme uložením našeho HTML takto:
......
...
...
Nyní místo plováku pro naše tři prvky změníme jejich zobrazovanou hodnotu na inline-block , přičemž vlastnosti okraje a šířky zůstanou stejné jako dříve. V důsledku toho bude naše CSS vypadat takto:
Bohužel tento kód sám o sobě nestačí k provedení triku a posledního prvku je posunut na nový řádek. Pamatujte si, že protože prvky vloženého bloku se objevují na řádku vedle sebe, obsahují mezi sebou jednu mezeru. Když se velikost každého jednotlivého prostoru přičte k šířce a hodnotě horizontálního okraje všech prvků v řadě, celková šířka bude příliš velká a vytlačí se poslední prvek na nový řádek. Pro zobrazení všech položek na jednom řádku byste měli odstranit prázdné místo mezi každým
.
Ukázka prvků inline-block s prostorem
Odstranění mezery mezi prvky vkládaných bloků
Existuje několik metod pro odstranění mezery mezi prvky vložených bloků a některé jsou složitější než jiné. Zaměříme se na dvě nejjednodušší metody, které se obě vyskytují v HTML.
Prvním řešením je umístit každý nový tag úvodního prvku na stejném řádku jako uzavírací značka předchozího prvku . Namísto použití nového řádku pro každý prvek skončíme tak, že prvky začneme na stejném řádku. Naše HTML může vypadat takto:
...
...
...
...
Zápis prvků inline-block tímto způsobem zajišťuje, že mezi takovými prvky v HTML nebude mezera. Mezera se tedy při zobrazení stránky nezobrazí.
Ukázka prvků inline-block bez mezer
Další metodou pro odstranění mezery mezi prvky inline-block je otevření komentáře HTML bezprostředně za uzavírací značkou prvku. Poté komentář zavřete těsně před úvodní značkou dalšího prvku. To umožňuje prvkům vložených bloků začínat a končit na samostatných řádcích v HTML a „komentovat“ jakýkoli potenciální prostor mezi prvky. Výsledný kód bude vypadat takto:
...
...
...
...
Žádná z těchto možností není dokonalá, ale jsou užitečné. Mám tendenci upřednostňovat používání komentářů pro lepší organizaci, ale kterou možnost si vyberete, je čistě na vás.
Vytvořte znovu použitelná rozvržení
Při vytváření webu je vždy nejlepší napsat modulární styly, které lze znovu použít jinde, a znovu použitelná rozvržení jsou na vrcholu seznamu opakovaně použitelného kódu. Rozvržení lze vytvořit pomocí prvků float nebo inline-block, ale které fungují nejlépe a proč?
Otázka, zda jsou pro strukturu stránky lepší prvky float nebo inline-block, je otevřená k diskusi. Můj přístup spočívá v použití prvků inline-block k vytvoření mřížky nebo rozvržení stránky a poté použití float, když chci, aby obsah obtékal prvek (k čemuž byly plováky navrženy při práci s obrázky). Obecně se mi také zdá jednodušší pracovat s prvky inline-block.
Použijte však to, co vám nejlépe vyhovuje. Pokud znáte jeden přístup více než jiný, použijte jej.
Připravují se nové specifikace CSS – konkrétně vlastnosti ohybu a mřížky – které vám pomohou rozhodnout, jak nejlépe rozmístit stránky. Sledujte tyto metody, když se začnou objevovat.
Na praxi
S pevným pochopením opakovaně použitelných rozvržení je čas implementovat jedno na našem webu Styles Conference.
Pro web Styles Conference vytvoříme třísloupcový layout s použitím prvků inline-block. Uděláme to tak, že dostaneme tři stejně široké sloupce nebo dva sloupce s celkovou šířkou rozdělenou mezi ně jako 2/3 pro jeden a 1/3 pro druhý.
Nejprve vytvoříme třídy, které definují šířku těchto sloupců. Tyto dvě třídy budeme nazývat col-1-3 pro jednu třetinu a col-2-3 pro dvě třetiny. V sekci Grid našeho souboru main.css pojďme vpřed a definujme tyto třídy a jejich odpovídající šířky.
Chceme, aby se oba sloupce objevily jako prvky vloženého bloku. Musíme se také ujistit, že jejich vertikální zarovnání je nastaveno na vrchol každého sloupce.
Pojďme vytvořit dva nové selektory, které sdílejí zobrazení a vertikální zarovnání .
Podívejte se znovu na CSS. Vytvořili jsme dva selektory tříd col-1-3 a col-2-3 oddělené čárkou. Čárka na konci prvního voliče znamená, že za ním následuje další volič. Za druhým selektorem je otevírací složená závorka, která označuje, že začíná popis stylu. Použitím čárky k oddělení selektorů můžeme svázat jeden styl s několika selektory současně.
Chceme mezi sloupce vložit určitou mezeru, která pomůže rozdělit obsah. To lze provést přidáním vodorovného odsazení do každého sloupce.
To funguje dobře, ale když se umístí dva sloupce vedle sebe, šířka mezery mezi nimi bude dvakrát větší než prostor od vnějšího okraje. Abychom to vyvážili, dáme všechny naše sloupce do mřížky a přidáme do ní stejnou výplň.
Použijme třídu mřížky k definování naší mřížky a potom dáme stejné horizontální odsazení třídám mřížka, col-1-3 a col-2-3. Naše selektory opět oddělují čárkami a naše CSS vypadá takto:
Když nastavujeme horizontální odsazení, musíme být opatrní. Pamatujte, že v minulé lekci jsme vytvořili kontejner s třídou kontejner, abychom vystředili veškerý náš obsah na stránku o šířce 960 pixelů. V současné době, pokud bychom vložili prvek mřížky do prvku kontejneru, jejich vodorovné odsazení by se zhroutilo a naše sloupce by se nezdály úměrné šířce zbytku stránky.
Uděláme to rozdělením staré sady pravidel kontejneru na následující:
Nyní bude jakýkoli prvek s třídou kontejneru nebo mřížky široký 960 pixelů a bude umístěn ve středu stránky. Kromě toho jsme zachovali stávající horizontální odsazení pro jakýkoli prvek s třídou kontejneru tím, že jsme jej přesunuli do nové samostatné sady pravidel.
Dobře, veškerá těžká část nastavení sítě je dokončena. Nyní je čas pracovat s naším HTML a podívat se, jak tyto třídy fungují.
Začneme upoutávkami na domovské stránce, v souboru index.html, zarovnanými do tří sloupců. Aktuálně jsou upoutávky zabalené do elementu s třídou kontejneru. Chceme změnit třídu kontejneru na grid, abychom dovnitř mohli začít umísťovat sloupce.
...
...
...
...
A konečně, protože každý z našich sloupců je vložený blokový prvek, musíme se ujistit, že mezi nimi odstraníme všechny prázdné mezery. K tomu použijeme komentáře a do každé sekce přidáme nějakou dokumentaci, abychom lépe uspořádali náš kód.
...
...
...
Pro kontrolu jsme na řádku 3 zanechali komentář identifikující sekci „Reproduktory“, která za ním následuje. Na konci řádku 7 otevřeme komentář bezprostředně za uzavírací značkou. Uvnitř tohoto komentáře na řádku 9 definujeme následující sekci "Rozvrh". Poté zavřete komentář na začátku řádku 11, těsně před úvodní značkou . Podobná struktura komentáře se objeví na řádcích 13 až 17 mezi těmito dvěma prvky , přímo před sekcí Místo konání. Obecně jsme zakomentovali jakékoli potenciální prázdné místo mezi sloupci a současně jsme použili stejné komentáře k identifikaci našich sekcí.
Nyní máme znovu použitelnou třísloupcovou mřížku, která podporuje různá rozvržení s použitím 1/3 a 2/3 šířky sloupců. Naše domovská stránka nyní obsahuje tři sloupce oddělující všechny upoutávky.
Rýže. 5.02. Domovská stránka Konference stylů nyní obsahuje rozvržení ve třech sloupcích
Demo a zdrojový kód
Níže si můžete prohlédnout web Styles Conference v aktuálním stavu a také si stáhnout aktuální zdrojový kód webu.
Jedinečné umístění prvku
Dříve nebo později bude chtít každý prvek přesně umístit, ale prvky typu float nebo inline-block takový trik neumožňují. Plovoucí prvky, které odebírají prvek z toku stránky, často vedou k nežádoucím výsledkům, protože okolní prvky se obtékají kolem plovoucího prvku. Inline prvky bloku, pokud nevytváříme sloupce, mohou být docela nešikovné, pokud jde o správné umístění. Pro situace, jako je tato, můžeme použít vlastnost position v kombinaci s vlastnostmi offsetu bloku.
Vlastnost position určuje, jak je prvek umístěn na stránce a zda bude zobrazen v normálním toku dokumentu. Používá se ve spojení s vlastnostmi odsazení bloku top , right , bottom a left , které přesně určují, kde bude prvek umístěn pohybem prvku v různých směrech.
Ve výchozím nastavení je hodnota pozice každého prvku nastavena na static , což znamená, že prvek existuje v normálním toku dokumentu a nepřebírá žádné vlastnosti k jeho umístění. Hodnota static se nejčastěji přepisuje hodnotou relativní nebo absolutní , na kterou se podíváme příště.
Relativní umístění
Nastavení vlastnosti position na relativní umožňuje, aby se prvky objevily v normálním toku stránky, čímž se vyhradí místo pro prvek, jak bylo zamýšleno, a zabrání se tomu, aby kolem něj proudily jiné prvky. Umožňuje však také upravit polohu prvku pomocí vlastností odsazení. Zvažte například následující HTML a CSS:
s třídou offsetu je hodnota pozice nastavena na relativní, stejně jako dvě vlastnosti offsetu – vlevo a nahoře. Tím se zachová původní poloha prvku a ostatní prvky se do této oblasti nebudou moci přesunout. Vlastnosti offsetu navíc posunou prvek jeho posunutím 20 pixelů zleva a 20 pixelů shora od původního umístění.
U relativně umístěných prvků je důležité vědět, že vlastnosti odsazení bloku určují, kam bude prvek posunut vzhledem k jeho původní poloze. Takže vlastnost left s hodnotou 20 pixelů ve skutečnosti posune prvek o 20 pixelů doprava. Horní vlastnost s hodnotou 20px pak posune prvek dolů o 20px.
Když umístíme prvek pomocí vlastností offsetu, prvek překryje prvek pod ním, místo aby jej tlačil dolů, jako to dělají vlastnosti margin nebo padding.
Absolutní umístění
Absolutní hodnota vlastnosti position se liší od relativní hodnoty v tom, že absolutně umístěný prvek se neobjeví v normálním toku dokumentu a původní prostor a pozice absolutně umístěného prvku nejsou vyhrazeny.
Absolutně umístěné prvky se navíc pohybují vzhledem k jejich nejbližšímu relativně umístěnému rodičovskému prvku. Pokud relativně umístěný rodič neexistuje, bude absolutně umístěný prvek umístěn relativně k prvku
. Toto je malá informace; pojďme se podívat, jak to funguje uvnitř nějakého kódu:
V tomto příkladu prvek je umístěn relativně k, ale nezahrnuje žádné vlastnosti odsazení. Jeho poloha se tedy nemění. Živel
s třídou offsetu zahrnuje hodnotu pozice jako absolutní. Od prvku je relativně nejblíže k rodičovskému prvku
, pak prvek
bude umístěn vzhledem k prvku
.
U relativně umístěných prvků určují vlastnosti odsazení, kterým směrem bude prvek vůči sobě posunut. U absolutně umístěných prvků určují vlastnosti odsazení, kterým směrem se prvek posune vzhledem k jeho nejbližšímu relativně umístěnému rodičovi.
V důsledku vlastností right a top, element
se zobrazí 20 pixelů zprava a 20 pixelů shora uvnitř
.
Od prvku
umístěn absolutně, není umístěn v normálním toku stránky a překrývá všechny prvky, které ji obklopují. Navíc výchozí pozice
se neuloží a toto místo mohou převzít jiné prvky. Obecně lze většinu polohování provést bez použití vlastností polohy a offsetu, ale v některých případech mohou být mimořádně užitečné.
souhrn
Naučit se umísťovat obsah v HTML a CSS je obrovským krokem ke zvládnutí těchto jazyků. Přidejte k tomu blokový model a jsme na dobré cestě stát se front-endovými vývojáři.
V HTML lze všechny prvky rozdělit na blokové a vložené. Blokové prvky jsou obvykle reprezentovány jako obdélníkové oblasti s určitým množstvím informací. S jejich pomocí se vytvoří mřížka stránky. Takové prvky zabírají na šířku veškerý prostor, který mají k dispozici, a před nimi a za nimi je obvykle zalomení řádku. Bloky mohou mít odsazení, horizontální a vertikální rozměry.
Vlastnosti blokových prvků
Blokové značky zahrnují značky, které zvýrazňují velké množství textových informací: