Autor Zpráva
Jakub_Gross
Profil *
Příklad

V příkladu na stránce vidíme určitý obsah, rozdělený na dvě poloviny. Jedna bílá, druhá tmavá. Při horizontálním zmenšením okna prohlížeče se v určité délce celá stránka změní a tmavý obsah se zasune pod bílý.

Jak podobný efekt vytvořit? Pomocí scriptu, nebo něčeho podobného?
MyShare
Profil
Nazdar Jakub_Gross
Pomocou HML/CSS no vlastne HTML5/CSS3
ale na webu teraz nájdeš ohromné množstvo
napr. aj taka wikipédia
Alebo Zajtra.sk
Hlavne sa učiť a skúšať daj si na tom webe zobraziť zdrojový kód a uč sa :)
Jakub_Gross
Profil *
Díky! Mrknu na to .. ono jde o to, že ten kód té stránky, když si ho otevřu, tak je takovej zmatenej, no ...
Str4wberry
Profil
Před časem jsem o tom psal – Jak na mobilní (responsivní) web

V nejjednodušší podobě to může fungovat tak, že se do hlavičky umístí:
<meta name="viewport" content="width=device-width, initial-scale=1">

A do CSS se přidá podmínka pro určitou šířku:
@media screen and (max-width: 480px) {
  /* pravidla se aplikují jen při šířce do 480 px */
}

Do této části se potom přidají pravidla, která při požadované šířce sloupce rozlomí. Testovat to můžete tak, že si budete zmenšovat okno prohlížeče. (Při zmenšení pod zadanou šířku se pravidla aplikují.)
jefitto44
Profil
Firefox obsahuje integrovaný nástroj na tvorbu responsive designu. Stačí stlačiť F12
Jakub_Gross
Profil *
Díky, díky! Mrknu na to!
PetrVB
Profil *
Našel jsem několik postupů a ve většině z nich je i podmínka pro desktopy. Např.:

@media (min-width: 1200px)

Má nějaký význam dávat podmínku pro desktopy do media queries? Fungovat to přeci bude i když to do media queries nedám.
Taurus
Profil
Můžeš mít přeci různě široké monitory. Pro 1920*1080 se může využít prostor např. i 1600 px na šířku... A nebo úplně jinak.
PetrVB
Profil *
Jasně. Ale v těch příkladech byla vždy pro desktop jedna podmínka. Takže všechna velká rozlišení se hážou do jednoho pytle a mít to v media queries mi přijde zbytečné.
Taurus
Profil
PetrVB:
Takže všechna velká rozlišení se hážou

To se je podstatné. Házet to někdo může, někdo nemusí. Záleží na webu, rozpočtu, záměru, … Já to třeba někdy rozlišuju ještě na 1800, 1600, 1400, …
PetrVB
Profil *
A to co je nad 1800 dáváš taky do media queries nebo to máš v "běžné části" css?
Taurus
Profil
To je vlastně v obyčejném CSS.
Str4wberry
Profil
Ono záleží na velikosti základního webu.

Styly mimo pravidla @media mohou být:

1) Pro nejmenší šířku webu. Pro větší šířky se potom použije @media (min-width: …).
2) Pro největší šířku webu. Pro menší šířky se potom použije @media (max-width: …).
3) Pro střední šířku webu. Pro větší šířky se použije @media (min-width: …) a pro menší @media (max-width: …).

Jde o to, co bude pro tvůrce webu pohodlnější.

Do hry může vstupovat i fakt, že staré prohlížeče (např. Explorer 8) @media pravidla nepodporují, takže se v nich zobrazí styly mimo @media. Uživatelé starých prohlížečů mají typicky menší monitory, ale zase se prohlížeče bez podpory @media téměř nevyskytují na mobilech.

Nabízí se tak jako základní vytvořit podobu někde kolem 1000 pixelů a potom ji v @media zvětšovat a zmenšovat.

Jiná možnost je přidat podporu @media JavaScriptem. To umí třeba Respond.js. Nevýhoda je, že vykreslování ve starých prohlížečích bude kvůli tomu náročnější. Což může vadit, protože staré prohlížeče zpravidla běží na starém HW.

Asi nejlepší řešení (v případě, že je pro tvůrce webu obtížný postup 3), je pro staré prohlížeče automaticky generovat zvláštní CSS pro těch cca 1000 pixelů.

Mimochodem, používat v @media rozměry v pixelech není moc chytré, protože to nereflektuje nastavenou velikost písma v prohlížeči/OS.
PetrVB
Profil *
Díky za podrobný rozbor.
PetrVB
Profil *
Ještě dotaz. Mám web, který je udělaný metodou perfect pixel. V px je kompletně všechno včetně fontu.
Chci udělat responzivní verzi tak, že pro desktopy ponechám původní px verzi a pro mobily a tablety přidám @media. Tam vše zadám v % nebo em.

Je to dobrý postup? Může někde nastat problém? Dá se nějak paušalizovat kdy je lepší použít % a kdy em?

Díky

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0