Pro rychlé vytvoření responzivního rozvržení je možné použít generátory nebo využít některého z frameworků např.:
Mé požadavky:
Zajímavé zdroje informací:
Techniky vytváření vzhledu:
CSS:
Optimalizace:
Pro sjednocení vzhledu (vykreslení) všech prvků napříč moderními prohlížeči je vhodné použít normalize.css (pro zastaralé prohlížeče je nutné použít dnes již "zavržený" reset.css).
Normalize.css:
Většina mobilní prohlížečů přizpůsobí stránku (pomocí změny měřítka "scale") tak, aby se celá vešla na obrazovku (=>téměř nečitelný text). Pro zamezení tohoto chování je tedy třeba do hlavičky vložit níže uvedený meta tag (umožňuje změnu šířky při natočení):
<meta name="viewport" content="width=device-width, initial-scale=1">
Více viz např. developer.mozilla.org/en-US/docs/Mozilla/Mobile/Viewport_meta_tag
Tip: Alternativou k výše uvedeném tagu muže být CSS @viewport
Pružné (flexibilní) obrázky a multimédia:
img, embed, object, video { display: block; /* IE (display: block; | width: auto; | width: 100%;) */ max-width: 100%; height: auto; vertical-align: top; /* optional */ -ms-interpolation-mode: bicubic; }
Tip: Responsive images – how to prevent reflow
Responzivní tabulky
<script> $(function () { $('.footable').footable({ breakpoints: { phone: 749, tablet: 969 } }); }); </script>
<script> $(function () { $('.footable').footable({ breakpoints: { phone: 749, tablet: 969 } }).bind({ 'footable_breakpoint' : function(e) { console.log(e.breakpoint); } }); }); </script>
U mobilních telefonů je možné zakázat funkci automatického zvětšení písma, ovšem sníží se tím čitelnost textu:
html { /*-webkit-text-size-adjust: none;*/ }
Dostatečná velikost aktivního prvku (položka navigace, tlačítko, formulářový prvek atd.):
Základní HTML5 struktura (layout) stránky:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>HTML 5 dokument</title> <meta name="description" content="Základní šablona HTML 5 dokumentu" /> <meta name="keywords" content="html,dokument,šablona" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <header id="header"> <p>Site Name</p> </header> <nav> <ul id="main-nav"> <li><a href="#">Home</a></li> </ul> </nav> <main> <h1>Page Title</h1> <section> <h2>Section Title <article class="post"> <h3>Atricle Title ... </article> </section> <section> <h2>Section Title <article class="post"> <h3>Atricle Title ... </article> </section> </main> <aside id="sidebar"> <section class="block"> ... </section> </aside> <footer id="footer"> ... </footer> </body> <html>
Element main byl přidán až v HTML5.1:
main {display: block;}
<script>document.createElement('main');</script>
V HTML5 je možné vynechat atribut type:
Tipy: Vyhněte se nejobvyklejším chybám v HTML5
Využijte výhod validních podmíněných komentářů (IE Conditional Stylesheets vs CSS Hacks) přímo pro element <html>:
<!--[if IEMobile 7]><html class="ie iem7"><![endif]--> <!--[if lte IE 6]><html class="ie lt-ie9 lt-ie8 lt-ie7"><![endif]--> <!--[if (IE 7)&(!IEMobile)]><html class="ie lt-ie9 lt-ie8"><![endif]--> <!--[if IE 8]><html class="ie lt-ie9"><![endif]--> <!--[if (gte IE 9)|(gt IEMobile 7)]><html class="ie"><![endif]--> <!--[if !IE]><!--><html><!--<![endif]-->
IE8- můžete nechat v jednosloupcovém "mobilním" vzhledu viz Leaving Old Internet Explorer Behind nebo podporu Media Queries zpřístupníte pomocí JavaScriptu.
X-UA-Compatible zpřístupňuje poslední dostupný Internet Explorer mód:
<meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1" />
<!--[if lte IE 9]> <meta http-equiv="x-ua-compatible" content="ie=edge" /> <![endif]-->
Pro podporu media queries v IE8- je třeba použít media-queries.js (nabízí více možností ovšem na úkor výkonu) nebo respond.js:
<!--[if lt IE 9]> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]-->
Pro podporu nových HTML5 prvků (header, nav, article, aside, section, footer atd.) v IE8- je nutné k dokumentu připojit html5shiv (pouze pro IE8-) nebo Modernizr (nabízí více možností):
<!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <![endif]-->
Tipy: