Zanořování Media Queries

S příchodem internetu na mobil se stalo důležité vytvářet mobile-friendly weby (tzn. web který se zobrazí rychle a bez deformací na display mobilního telefonu). Z počátku stačilo mít zvláští verzi webu například na subdoméně m.domena.cz. Poté co byl představen tablet iPad, už pouze mobilní verze nestačila a začal nárust reponsivních webů vzhledem k množství různých rozlišení součastných telefonů a tabletů.

Pokud se chcete vyhnout vytváření subdomén a přesměrování javascriptu podle šířky displaye, tak můžete využít podmínky v CSS zvané media-queries, pokud se rozhodnete používat tak v klasickém CSS musíte své styly tomu podřídit a organizovat je podle nich. Můžete mít až 5 různých stylopisů, každý pro jiné rozlišení, každý tento stylopis pak zvlášť vkládáte (importujete) na váš web. Každý css import vytváří nový http request.

V preprocesorech to je naopak. Organizaci kódu můžete nechat stejnou a media-queries vnořit do prvku ke kterému chcete nastavit podmínku jak se pro danou šířku má chovat. Takto organizový kód pak je pochopitelný pro každého kdo k daném stylu přistopuje. V příkladu níže tedy bude hlavní organizační jednotkou modul nav a media queries budou zanořené v něm.

.nav {
  @media only screen and (min-width: 768px){
    width: 25%;
  }

  @media only screen and (min-width: 1024px){
    width: 50%;
  }

  @media only screen and (min-width: 1368px){
    width: 75%;
  }
}less, sass, stylus

Výsledné CSS:

@media only screen and (min-width: 768px) {
  .nav {
    width: 25%;
  }
}

@media only screen and (min-width: 1024px) {
  .nav {
    width: 50%;
  }
}

@media only screen and (min-width: 1368px) {
  .nav {
    width: 75%;
  }
}css

Fatal error: Uncaught Error: Undefined constant "php" in /data/web/virtuals/77343/virtual/www/domains/bp.jinda.cz/include/footer.php:7 Stack trace: #0 /data/web/virtuals/77343/virtual/www/domains/bp.jinda.cz/index.php(55): include_once() #1 {main} thrown in /data/web/virtuals/77343/virtual/www/domains/bp.jinda.cz/include/footer.php on line 7