11/02/14 1 SITE WEB RÉACTIFS

Transcription

11/02/14 1 SITE WEB RÉACTIFS
11/02/14 CONTEXTE
SITE WEB RÉACTIFS
S. LANQUETIN
ENVIRONNEMENT
•  Clavier (standard, mini, virtuel)
•  Souris / doigt / stylet
•  Rotation de l’écran
•  Performances CPU et GPU
•  Capacité de stockage
•  GPS
•  Mobile/fixe
•  Luminosité
•  …
PRINCIPES GÉNÉRAUX
•  Conception graphique sur une grille variable en
fonction du média ciblé
NAVIGATEURS
•  http://gs.statcounter.com/#mobile_browser-FRmonthly-201312-201312-bar
LES POINTS DE RUPTURE
•  http://gs.statcounter.com/#resolution-wwmonthly-201210-201310
•  Utilisation des médias queries (CSS3)
•  Site fluide :
•  Définition des éléments en pourcentages,
•  Polices en em
•  Utilisation des styles en cascades
1 11/02/14 LES POINTS DE RUPTURE
•  http://gs.statcounter.com/#mobile_resolution-wwmonthly-201210-201310
LES POINTS DE RUPTURE
•  Pour les écrans 1025px à 1200px ou plus
•  Pour les tablettes : 768px à 1024px
•  Pour les Smartphones : 320px à 767px
LES OUTILS
•  Navigateur : firefox
•  Mode Responsive
•  Outils – Developpeur Web – Vue
Adaptative
•  Redimension de la fenêtre, rotation
•  Ne remplace pas un simulateur
•  Plug-in Web Developer
•  Barre d’outils Web Developer
LES MÉDIA QUERIES
•  Préciser le type d’écran
all
Tous type de médias
aural
Navigateurs à synthèse vocale
braille
Terminaux tactiles braille
embossed
Imprimantes braille
handheld
terminaux mobiles (petit écran, monochrome,
images bitmap, bande passante limitée)
print
Pour l’impression
tty
Terminaux de type téléscripteurs
tv
téléviseurs
SIMULATEURS
•  Windows Phone (version 7.1)
http://dev.windowsphone.com/en-us/downloadsdk
•  Android SDK
http://developer.android.com/sdk/index.html
•  Opera mobile emulator
http://www.opera.com/developer/tools/mobile/
•  iOS
https://developer.apple.com/xcode/
STRUCTURE DES MÉDIAS QUERIES
•  Lien vers un fichier (à privilégier)
<link rel="stylesheet" href="style.css"
media="opérateur type_de_média and (expression)" />
•  Opérateurs : only, not
•  Types : les types de médias
•  Expressions : width, height, min-width, min-height, maxwidth, max-height, orientation (portrait ou paysage)
•  Entre balises style (à éviter)
<style>
@media opérateur type_de_média and (expression){
…
}
</style>
2 11/02/14 STRUCTURE DES MÉDIAS QUERIES
•  Exemples de structures
EXEMPLE DE MÉDIA QUÉRIES
<link rel="stylesheet" media="screen"
href="styleSmartPhones.css"/><!--Fond bleu-->
<link rel="stylesheet" href="style.css"
media="screen and (max-width:768px)" />
<link rel="stylesheet" media="screen and (min-width:768px)"
href="styleEcrans.css"/><!--Fond mauve-->
<style>
@media only screen and (min-width:500px){
}
</style>
RECOMMANDATIONS W3C
•  http://www.w3.org/TR/css3-mediaqueries/
BALISE META VIEWPORT
•  Taille de l’écran :
device-width
device-width
•  Taille de la fenêtre du
navigateur : width
BALISE META VIEWPORT
•  Sur un Smartphone ou dans un simulateur
BALISE META VIEWPORT
•  Sur un Smartphone ou dans un simulateur
•  Adapter la page
<meta name="viewport"
content="width=device-width"/>
width
3 11/02/14 BALISE META VIEWPORT
BALISE META VIEWPORT
•  Sur un Smartphone ou dans un simulateur
•  Sur un Smartphone ou dans un simulateur
•  Adapter la page
•  Zoom
•  Adapter la page
•  Zoom
•  Redimension
<meta name="viewport"
content="width=device-width,
initial-scale=1.5"/>
<meta name="viewport"
content="width=device-width,
initial-scale=2.0, userscalable=no"/>
BALISE META VIEWPORT
PROPRIÉTÉS DE VIEWPORT
•  Sur une tablette ou dans un simulateur
•  Gestion de l’affichage de la page dans le navigateur
<meta name="viewport"
content="width=device-width"/>
3 MAQUETTES DIFFÉRENTES
Ecrans
Propriété
Description
width
Largeur de fenêtre d'affichage souhaitée. Nombre en pixels ou
”device-width”.
height
Hauteur de fenêtre d'affichage souhaitée. Nombre en pixels ou
”device-height”.
initial-scale
Niveau de zoom souhaité au chargement de la page. Valeur par
défaut est de 1.0
minimum-scale
Niveau de zoom minimal autorisé sur la page.
maximum-scale
Niveau de zoom maximal autorisé sur la page.
Valeur maximale =10.0
user-scalable
Valeur booléenne qui détermine si l’utilisateur est autorisé à utiliser le
zoom sur la page. Valeur par défaut vrai.
3 MAQUETTES DIFFÉRENTES
•  Créer le fichier html
•  Créer les fichiers css
•  N’oublier pas le viewport
Tablettes
Smartphones
4 11/02/14 IMAGES EN %
IMAGES EN %
<p><img src="keys.png" alt=""/>Le Lorem Ipsum ….</p>
<p><img src="keys.png" alt=""/>Le Lorem Ipsum ….</p>
p{
p{
width:50%;
padding:5%;
background-color: #3787e9; }
img{
float:left;}
IMAGES EN %
width:50%;
padding:5%;
background-color: #3787e9; }
img{
float:left;
width:100%;}
BACKGROUND-IMAGE
•  caniuse.com
<p><img src="keys.png" alt=""/>Le Lorem Ipsum ….</p>
p{
width:50%;
padding:5%;
background-color: #3787e9; }
img{
float:left;
max-width:100%;}
IMAGE DE FOND
IMAGIMAGE DE FONDE DE FOND
body{
background-image: url(fondneige.jpg);}
body{
background-image: url(fondneige.jpg);
background-size: contain;}
5 11/02/14 IMAGE DE FOND
body{
background-image: url(fondneige.jpg);
background-size: cover;}
PAGE FLUIDES
•  Convertir px en %
cible/contexte=resultat en pourcentage
•  Convertir px en em
•  Images fluides
img{
}
max-width:100%;
IMAGE DE FOND
body{
background-image: url(fondneige.jpg);
background-size: cover;
background-attachment: fixed;
background-position: center center; }
FORMULAIRES POUR SITE WEB RÉACTIF
<form action="" method="">
<ul>
<li>
<label for="nom">Nom</label>
<input type="text" id= "nom" name="nom"/>
</li>
</ul>
</form>
•  Images adaptées aux tailles d’écrans
http://adaptive-images.com/
•  Utilisation des grilles CSS
FORMULAIRES POUR SITE WEB RÉACTIF
•  Enlever les puces pour tous les médias
ul{
}
margin:0; padding:0;
list-style-type: none;
•  Pré-remplir les champs
<meta name="viewport" content="width=device-width"/>
•  Positionner le « label » au dessus du champ pour les
smartphones
label{
}
FORMULAIRES POUR SITE WEB RÉACTIF
•  Respecter les types des éléments
display:block;
•  Adapter la page à la fenêtre (mobiles)
<meta name="viewport" content="width=device-width"/>
6 11/02/14 FORMULAIRES POUR SITE WEB RÉACTIF
<input type="text" />
<input type="password" />
<input type="tel" />
FORMULAIRES POUR SITE WEB RÉACTIF
<input type="email" />
window.onchange=afficheCurseur;
function afficheCurseur(){
document.getElementById("cur").innerHTML=
document.getElementById("curseur").value;
}
<input type="number" />
LES BALISES HTML5
FORMULAIRES POUR SITE WEB RÉACTIF
<input type="range" id="curseur" name="curseur"
min="0" max="100"/>
<span id="cur">50</span>
<input type="date" />
Entrée
Description
IE
Firefox
Opera
Chrome
Safari
number
Nombre
No
28?
9.0
7.0
5.0
range
Nombre
entre deux
valeurs
10.0
23.0
9.0
4.0
3.1
email
Mail
No
4.0
9.0
10.0
No
url
URL
No
4.0
9.0
10.0
No
tel
Num. tel
No
?
No
Oui
4.0
date
Date/heure No
No
17.0
31.0
No
search
Recherche
No
4.0
11.0
10.0
No
color
Couleur
No
28.0?
17.0
31.0
No
<input type="url" />
IE VERSIONS <9
•  Version IE <= 6 : remplacer max-width par width
(commentaires conditionnels)
•  Version IE < 8 : mauvais affichage des images
réduites (utiliser AlphaImageLoader)
msdn.microsoft.com/en-us/library/ms532969
•  Version IE <= 8 : incompatible avec les média
queries (intégrer le script css3-mediaqueries.js)
https://code.google.com/p/css3-mediaqueries-js/
COMMENTAIRES CONDITIONNELS
•  Version IE < 8
<!--[if lt IE 8]>
<link rel="stylesheet" href="stylesIE.css" />
<![endif]-->
•  Version IE <= 8
<!--[if gte IE 8]>
<link rel="stylesheet" href="stylesIE.css" />
<script src=" css3-mediaqueries.js" ></script>
<![endif]-->
7 11/02/14 HTML5 POUR TOUS
•  Script de Remy Sharp
DATA URL
•  dataurl.net/#about
•  Modernizr http://modernizr.com/
DATA URL
IMAGES SPRITE
•  Plusieurs images dans une image (groupées par
tailles)
<img src="data:image/jpeg;base64,/9j/…P/Z" alt="loupe"/>
#loupe{
background-image:url(data:image/jpeg;base64,/9j/...P/Z)
}
IMAGES SPRITE
3 MAQUETTES DIFFÉRENTES
<header>
<div id="essai"></div>
<div id="liens">
<a href="http://…"></a>
#liens{
<a href="http://…"></a>
width:300px;float: left;}
<a href="http://…"></a>
#liens a{
</div>
width:100px;height:50px;float: left;}
</header>
#liens a:first-child{
background:url(sprite.png) no-repeat -100px 0;}
#liens a:nth-child(2){
background:url(sprite.png) no-repeat -200px 0;}
#liens a:nth-child(3){
background:url(sprite.png) no-repeat -300px 0;}
#essai{
float:right;width:50px;height:50px;
background:url(sprite.png) no-repeat 0 0;}
#essai:hover{
background:url(sprite.png) no-repeat -50px 0;}
8 11/02/14 3 MAQUETTES DIFFÉRENTES
•  A partir du document html donné, donnez les
fichiers css permettant d’obtenir ces différentes
pages
• 
• 
• 
• 
• 
Site fluide
Média-queries
Menu horizontal / vertical
Sprite
…
PLUS D’INFORMATIONS
RWD
• Responsive Web Design avec HTML5
et CSS3, B. Frain
• Adaptive Web Design: Créer des sites
riches avec l'amélioration progressive,
A. Gustafson, J. Zeldman
• http://www.alistapart.com/articles/
responsive-web-design/
9 

Documents pareils