Dlouho jsem se snažil dosáhnout dokonalé vizuální kompozice na webových stránkách. Měl jsem spoustu bolesti s CSS zarážkami v mé každodenní práci a nikdy nebyl spokojen se společnými způsoby manipulace s reagujícím uspořádáním. Nedávno jsem objevil velmi chladný Reagovat web design Trik, který dělá vše jednoduché, konzistentní a logické, a já jsem s vámi sdílet.
Tento článek je především o kreativním vývoji, takže je to pro oba: předních koncových vývojářů, kteří by mohli najít tuto techniku užitečnou a web designéři, kteří by měli mít obecné chápání webové produkce a jak zlepšit konečný výstup. Předpokládám, že už víte o CSS, zarážkách a mediálních dotazech.
Přenosná zařízení převezují svět. Řada všech druhů zařízení mění způsob, jakým vytváříme webové stránky. "Responzivá webová stránka" většina lidí předpokládá pouze stolní a mobilní verze (někdy pracovní plocha, tablet, mobilní). Tak to funguje tradičně:
H1 {
Velikost písma: 80px;
}
.container {
šířka: 980px;
marže: 0 auto;
}
@Media (max-šířka: 1023px) {
H1 {
Velikost písma: 48px;
}
.container {
Šířka: Auto;
Polstrování: 0 30px;
}
}
Ve skutečnosti, obvykle rozložení webových stránek Vidíme, že to není pro naše zařízení. Podívejme se například, jak upravíme velikost písma & lt; H1 & gt; titul:
Vidíte, náš & lt; h1 & gt; Název má "velikost písma: 48px" na šířce 320px a 800px a "velikost písma: 80px" na 1024px a 2560Px.
Samozřejmě můžeme přidat více zarážek, ale počet různých zařízení je nespočet! To bude dělat design specifikace velmi komplikované a matoucí, protože je těžké vědět, která hodnota je aplikována na kterou obrazovku.
To, co opravdu potřebujeme, je to:
Řešení tohoto problému zahrnuje výhledové jednotky VW a VH. Jedná se o délkové jednotky představující 1/100 šířky / výšky výřezu (široce podporované prohlížeči z IE9 +).
Můžeme tyto přizpůsobit vlastnosti webové stránky podle jeho velikosti. Situace bude trochu lepší, ale bolest je stále stejná:
H1 {
Velikost písma: Calc (80/10020) * 100VW;
}
.container {
Šířka: 80VW;
marže: 0 auto;
}
@Media (max-šířka: 1023px) {
H1 {
Velikost písma: Calc (48/375) * 100VW;
}
.container {
Šířka: 90VW;
}
}
Nikdy nevíme, jestli je to příliš velké nebo příliš malé.
Jak můžeme vytvořit správný adaptivní rozložení systému? Jak navrhujeme citlivou webovou stránku, která funguje nativně od 320px do 2560px?
V ideálním případě by vaše maketa měla vysvětlit logiku za rozvržením a jak se přizpůsobí z menšího rozlišení k většímu:
Chceme neustále upravovat vlastnosti z malé obrazovky na velký. Žádné zarážky a žádné mediální dotazy. To, co chceme, je jedna hodnota, která funguje pro každý displej.
Klíčem je matematická funkce se dvěma proměnnými. Pokud například chceme upravit velikost písma titulů, funkce by měla vypadat takto:
1920x + y = 80
375x + y = 48
1920 - Výchozí šířka desktopu v designu maketa (rovná se 100vw)
375 - Výchozí mobilní šířka v designu maketa (rovná se 100vw)
80 - Požadovaný název písma H1 na ploše
48 - Požadovaný velikost písma H1 název na mobilu
Jedná se o hodnoty X a Y:
X = (80 - 48) / (1920 - 375)
X = 0.0207.
Y = 80 - 1920 * 0.0207
Y = 40,256.
Chcete-li použít tyto hodnoty, budete potřebovat funkci CACK CSS pro provádění výpočtů na webové stránce (široce podporované prohlížeči z IE9 +). Měli bychom počítat x * 100 krát (protože 1vw jednotka = 1 / 100. šířka výřezu).
Vezmeme naši původní funkci:
1920x + y = 80
375x + y = 48
Nahradit 1920 se 100VW:
100VW * x + y = požadovaná hodnota
Vyměňte x a y s hodnotami:
100VW * 0.0207 + 40.256 = požadovaná hodnota
Dostáváme finální styl CSS:
H1 {Velikost písma: Calc (2.07VW + 40,25px)}
Překvapivě dost, který konečně funguje, jak jsme chtěli!
Jen jeden majetek pro všechny displeje. Není třeba přepsat hodnoty znovu a znovu. Můžete nastavit a vypočítat všechny druhy vlastností: šířka, velikost písma, polstrování, okraj atd.
Pokusme se vytvořit skutečný rozvržení pomocí této techniky:
Ale tento přístup má jednu nevýhodu: Je těžké pochopit, jakou hodnotu stojí za tímto funkcí Calc. Jak to můžeme zjednodušit?
Pokud kódujete HTML denně, jste pravděpodobně obeznámeni s pre-procesory SASS / SCSS. Tady je malá pomoc pro vás: Udělejme "mixin" a učinit všechny tyto výpočty automaticky, a stále udržovat naše původní hodnoty.
Je to stejná funkce, jak je popsáno výše, ale vyráběná jako Sass Mixin:
$ Zobrazit-široký: 1920
$ Display-úzký: 375
@Mixin tekutina ($ nemovitost, $ minvalue, $ maxvalue)
$ x: ($ maxvalue - $ minvalue) / ($ displej-široký - $ displej-úzký)
$ y: $ maxvalue - $ displej-široký * $ x
# {$ nemovitost}: Calc (# {100 * $ x} VW + # # {$ y} px)
H1.
@include tekutina ("velikost písma", 48,80)
.kontejner
@include tekutinu ("šířka", 315.1580)
@include tekutinu ("polstrování", 30,60)
Tato technika Poskytuje velmi sofistikované řešení konečně budovat skutečně citlivé webové rozložení. Podporuje většinu prohlížečů, zajišťuje váš projekt, který má být správně zobrazen návštěvníka, zjednodušuje strukturu stylů a nejdůležitější je vaše webové rozložení konzistentní a logické. Doufám, že vám to může pomoci spustit některé úžasné webové projekty.
Související články:
Tam je tolik, že lze dosáhnout nativně v prohlížeči pomocí CSS3 nebo webových animací API v JavaScriptu. Jednoduché ani..
Přes následující krátké videa pro zachycení obrazovky, Charlie Davis. , londýnský ilustrátor, pokrývá,..
V tomto tutoriálu vám ukážeme, jak vytvořit textový efekt závady. Speciální efekty a animace mohou pomoci webovým stránkám vyniknout, vytvářet okamžitý vliv na uživatele dř�..
Při pojetí tvorů v Zbrushu, prezentující váš nápad jako greyscale, unponed kus 3D umění Může to být t..
Skvělé umělci, jako je Rembrandt a Caravaggio injekce jejich umělecká díla s trochou dramatu a intenzity, vytváří kusy p..
Dělat si vlastní plátno desky je zábavné, rychlé a může ušetřit peníze. Dává také vynikající produkt a flexibilit..
Při navrhování značky, ať už je to zavedený jeden nebo spuštění, na které užíváte kreativní vedení, konzistence napříč všemi dotykovými body je klíčová. ..
Po celá léta jsem byl zastrašován digitálně. Něco o plastu na plastovém povrchu se mi cítilo příliš dobře. Miluji š..