CSS tutoriál

DOMŮ CSS Úvod do CSS Syntaxe CSS Selektory CSS CSS Jak na to Komentáře CSS CSS barvy CSS pozadí Hranice CSS Okraje CSS CSS padding Výška/šířka CSS CSS Box Model obrys CSS Text CSS CSS písma Ikony CSS CSS odkazy CSS seznamy CSS tabulky Zobrazení CSS CSS Max-šířka Pozice CSS CSS Z-index Přetečení CSS CSS Float CSS Inline-block CSS zarovnat CSS kombinátory Pseudotřída CSS Pseudoprvek CSS Neprůhlednost CSS Navigační lišta CSS Rozbalovací seznamy CSS Galerie obrázků CSS CSS obrázkoví skřítci CSS Attr Selectory CSS formuláře Počítadla CSS Rozvržení webu CSS Jednotky CSS Specifičnost CSS CSS !důležité Matematické funkce CSS

Pokročilé CSS

CSS zaoblené rohy Obrázky ohraničení CSS CSS pozadí CSS barvy Klíčová slova barev CSS Přechody CSS CSS Shadows Textové efekty CSS Webová písma CSS CSS 2D transformace CSS 3D transformace Přechody CSS CSS animace CSS Tooltips Obrázky ve stylu CSS CSS obrazový odraz Přizpůsobení objektu CSS CSS objekt-pozice CSS maskování Tlačítka CSS Stránkování CSS Více sloupců CSS Uživatelské rozhraní CSS CSS proměnné Velikost CSS boxu CSS mediální dotazy Příklady CSS MQ CSS Flexbox

CSS responzivní

Úvod RWD Výhled RWD Zobrazení mřížky RWD Dotazy na média RWD Obrázky RWD Videa RWD Rámce RWD Šablony RWD

CSS mřížka

Úvod do mřížky Mřížkový kontejner Položka mřížky

CSS SASS

Výukový program SASS

Příklady CSS

CSS šablony Příklady CSS css kvíz Cvičení CSS CSS certifikát

CSS reference

Reference CSS Selektory CSS Funkce CSS CSS Reference Aural Webová bezpečná písma CSS CSS animovatelné Jednotky CSS Převodník CSS PX-EM CSS barvy Hodnoty barev CSS Výchozí hodnoty CSS Podpora prohlížeče CSS

Responzivní web design – dotazy na média


Co je to mediální dotaz?

Media query je technika CSS zavedená v CSS3.

Používá @mediapravidlo k zahrnutí bloku vlastností CSS pouze v případě, že je splněna určitá podmínka.

Příklad

Pokud je okno prohlížeče 600 pixelů nebo menší, barva pozadí bude světle modrá:

@media only screen and (max-width: 600px) {
  body {
    background-color: lightblue;
  }
}

Přidat bod zlomu

Dříve v tomto tutoriálu jsme vytvořili webovou stránku s řádky a sloupci, která byla responzivní, ale na malé obrazovce nevypadala dobře.

S tím mohou pomoci mediální dotazy. Můžeme přidat bod přerušení, kde se určité části návrhu budou na každé straně bodu přerušení chovat jinak.


plocha počítače

Telefon

Pomocí dotazu na média přidejte bod přerušení na 768 pixelů:

Příklad

Když se obrazovka (okno prohlížeče) zmenší než 768 pixelů, každý sloupec by měl mít šířku 100 %:

/* For desktop: */
.col-1 {width: 8.33%;}
.col-2 {width: 16.66%;}
.col-3 {width: 25%;}
.col-4 {width: 33.33%;}
.col-5 {width: 41.66%;}
.col-6 {width: 50%;}
.col-7 {width: 58.33%;}
.col-8 {width: 66.66%;}
.col-9 {width: 75%;}
.col-10 {width: 83.33%;}
.col-11 {width: 91.66%;}
.col-12 {width: 100%;}

@media only screen and (max-width: 768px) {
  /* For mobile phones: */
  [class*="col-"] {
    width: 100%;
  }
}


Vždy navrhujte nejprve pro mobily

Mobile First znamená navrhování pro mobily před navrhováním pro stolní počítače nebo jakékoli jiné zařízení (Stránka se tak bude zobrazovat rychleji na menších zařízeních).

To znamená, že musíme provést nějaké změny v našem CSS.

Místo změny stylů, když je šířka menší než 768 pixelů, měli bychom změnit design, když je šířka větší než 768 pixelů. Díky tomu bude náš design Mobile First:

Příklad

/* For mobile phones: */
[class*="col-"] {
  width: 100%;
}

@media only screen and (min-width: 768px) {
  /* For desktop: */
  .col-1 {width: 8.33%;}
  .col-2 {width: 16.66%;}
  .col-3 {width: 25%;}
  .col-4 {width: 33.33%;}
  .col-5 {width: 41.66%;}
  .col-6 {width: 50%;}
  .col-7 {width: 58.33%;}
  .col-8 {width: 66.66%;}
  .col-9 {width: 75%;}
  .col-10 {width: 83.33%;}
  .col-11 {width: 91.66%;}
  .col-12 {width: 100%;}
}

Další bod zlomu

Můžete přidat tolik bodů přerušení, kolik chcete.

Mezi tablety a mobilní telefony vložíme také breakpoint.


plocha počítače

Tableta

Telefon

Toho dosáhneme přidáním jednoho dalšího mediálního dotazu (na 600px) a sady nových tříd pro zařízení větší než 600px (ale menší než 768px):

Příklad

Všimněte si, že tyto dvě sady tříd jsou téměř totožné, jediný rozdíl je název ( col-a col-s-):

/* For mobile phones: */
[class*="col-"] {
  width: 100%;
}

@media only screen and (min-width: 600px) {
  /* For tablets: */
  .col-s-1 {width: 8.33%;}
  .col-s-2 {width: 16.66%;}
  .col-s-3 {width: 25%;}
  .col-s-4 {width: 33.33%;}
  .col-s-5 {width: 41.66%;}
  .col-s-6 {width: 50%;}
  .col-s-7 {width: 58.33%;}
  .col-s-8 {width: 66.66%;}
  .col-s-9 {width: 75%;}
  .col-s-10 {width: 83.33%;}
  .col-s-11 {width: 91.66%;}
  .col-s-12 {width: 100%;}
}

@media only screen and (min-width: 768px) {
  /* For desktop: */
  .col-1 {width: 8.33%;}
  .col-2 {width: 16.66%;}
  .col-3 {width: 25%;}
  .col-4 {width: 33.33%;}
  .col-5 {width: 41.66%;}
  .col-6 {width: 50%;}
  .col-7 {width: 58.33%;}
  .col-8 {width: 66.66%;}
  .col-9 {width: 75%;}
  .col-10 {width: 83.33%;}
  .col-11 {width: 91.66%;}
  .col-12 {width: 100%;}
}

Může se zdát zvláštní, že máme dvě sady identických tříd, ale dává nám to možnost v HTML rozhodnout, co se stane se sloupci v každém bodě přerušení:

Příklad HTML

Pro stolní počítač:

První a třetí sekce budou oba zahrnovat 3 sloupce. Střední část bude zahrnovat 6 sloupů.

Pro tablety:

První sekce bude zahrnovat 3 sloupce, druhá bude zahrnovat 9 a třetí sekce bude zobrazena pod prvními dvěma sekcemi a bude zahrnovat 12 sloupců:

<div class="row">
  <div class="col-3 col-s-3">...</div>
  <div class="col-6 col-s-9">...</div>
  <div class="col-3 col-s-12">...</div>
</div>

Typické body přerušení zařízení

Existuje spousta obrazovek a zařízení s různými výškami a šířkami, takže je těžké vytvořit přesný bod přerušení pro každé zařízení. Pro zjednodušení můžete cílit na pět skupin:

Příklad

/* Extra small devices (phones, 600px and down) */
@media only screen and (max-width: 600px) {...}

/* Small devices (portrait tablets and large phones, 600px and up) */
@media only screen and (min-width: 600px) {...}

/* Medium devices (landscape tablets, 768px and up) */
@media only screen and (min-width: 768px) {...}

/* Large devices (laptops/desktops, 992px and up) */
@media only screen and (min-width: 992px) {...}

/* Extra large devices (large laptops and desktops, 1200px and up) */
@media only screen and (min-width: 1200px) {...}

Orientace: Na výšku / Na šířku

Mediální dotazy lze také použít ke změně rozvržení stránky v závislosti na orientaci prohlížeče.

Můžete mít sadu vlastností CSS, které se použijí pouze tehdy, když je okno prohlížeče širší než jeho výška, takzvaná orientace na šířku:

Příklad

Webová stránka bude mít světle modré pozadí, pokud je orientace v režimu na šířku:

@media only screen and (orientation: landscape) {
  body {
    background-color: lightblue;
  }
}

Skrýt prvky s dotazy na média

Dalším běžným využitím dotazů na média je skrytí prvků na různých velikostech obrazovky:

Budu skrytý na malých obrazovkách.

Příklad

/* If the screen size is 600px wide or less, hide the element */
@media only screen and (max-width: 600px) {
  div.example {
    display: none;
  }
}

Změňte velikost písma pomocí mediálních dotazů

Pomocí dotazů na média můžete také změnit velikost písma prvku na různých velikostech obrazovky:

Variabilní velikost písma.

Příklad

/* If the screen size is 601px or more, set the font-size of <div> to 80px */
@media only screen and (min-width: 601px) {
  div.example {
    font-size: 80px;
  }
}

/* If the screen size is 600px or less, set the font-size of <div> to 30px */
@media only screen and (max-width: 600px) {
  div.example {
    font-size: 30px;
  }
}

CSS @media Reference

Úplný přehled všech typů médií a funkcí/výrazů naleznete v pravidle @media v naší referenci CSS .