Académique Documents
Professionnel Documents
Culture Documents
Fondamentaux Du Langage HTML
Fondamentaux Du Langage HTML
Bonjour, je suis Didier Mazier et je vais vous présenter cette formation sur la
conception de Site Responsive, adaptée du travail de James Williamson. Cette
formation s'adresse à tous les gestionnaires de projets Web, comme à tous ceux qui
s'intéressent à l'adaptation des sites Web pour des périphériques variés de
consultations, que ce soit des smartphones ou des tablettes. L'environnement de
consultation des sites Web est en passe de devenir aujourd'hui majoritairement
mobile, et la grande diversité des dimensions des écrans, comme des fonctionnalités
qui sont offertes par les périphériques, nous imposent d'intégrer la dimension
Responsive dans tous nos processus de conception. Cette formation ne requiert pas
de connaissance approfondie des codes HTML, CSS, JavaScript, bien que nous
explorions évidemment ensemble des syntaxes à utiliser avec des exemples
simples.
Nous étudierons
les principes de
base du design
Responsive, avec
en particulier les
Viewport et la
façon de les
exploiter pour
contrôler avec des
media-Queries les
points de rupture.
Nous
comprendrons la
problématique des
écrans haute
densité et nous
nous attacherons à analyser le principe Degree Fluid.
2
1- Aborder le design responsif
Découvrir le design responsif
Qu'est-ce exactement
que le Design
responsive ?
Aujourd'hui, l'un des
plus grands défis
auxquels sont
confrontés les
concepteurs de sites
Web est le manque de
contrôle qu'ils ont sur le
support sur lequel seront vus les contenus qu'ils vont produire. Si nous prenons, par
exemple, l'impression.
2
nombre de variables considérable dans la façon dont ce contenu va être consommé.
Il va falloir tenir compte bien entendu de la grande variété de navigateurs et de
systèmes d'exploitation que les gens vont utiliser. Il va également falloir prendre en
compte le fait que les éléments que nous allons publier vont devoir, non seulement
être vus, mais imprimés, et puis également consultés de plus en plus avec des
périphériques, qui peuvent être des objets connectés comme des voitures, des
montres ou des bornes interactives. Et puis bien sûr, le changement qui va susciter
de notre part le plus d'attention va être le mobile.
2
L'apprentissage et la
compréhension d'un Design
responsive ne se basent pas
moins sur l'apprentissage de
techniques spécifiques que sur un
changement de la façon dont
nous pouvons penser concevoir
pour le Web. Cela implique de
repenser totalement les stratégies
de contenu en prenant plus de
temps pour considérer la façon
dont les gens peuvent utiliser et
accéder à ces contenus en fonction d'un contexte spécifique. Et puis, comment tirer
parti des diverses fonctionnalités des différents appareils que votre public est
susceptible d'utiliser. A cette fin, je pense que vous verrez que l'adoption d'un Design
responsive modifiera considérablement la façon dont vous concevez et réalisez vos
sites.
2
modèles en utilisant des largeurs fixes. Une largeur fixe signifie que le site web a été
verrouillé dans une largeur spécifique quel que soit le moniteur sur lequel il est
affiché. Et il y a bien entendu toujours des techniques de mise en page standard
pour beaucoup de sites qui sont basées sur ce principe des mise-en-page fixes.
2
allons pouvoir créer un design qui va correspondre à chacun de ces environnements
et va offrir aux utilisateurs une expérience qui va être conforme au contexte dans
lequel ils vont être visionnés. Les techniques utilisées pour créer les designs réactifs
vont continuer à évoluer bien entendu, pour faire face aux changements encore plus
grands qui se profilent à l'horizon. Nous voyons apparaître des objets connectés, des
voitures, des lunettes, des bornes mobiles, et également des montres, voire des
chaussures. Donc bien que tous ces appareils aujourd'hui pourraient représenter un
écosystème actuel, nous avons besoin, lorsque nous allons faire notre conception,
de comprendre qu'aujourd'hui ils ne représentent que la pointe de l'iceberg, et cela
souligne encore plus l'importance du design réactif. Si nous ne nous concentrons pas
sur les façons de rendre notre contenu et nos conceptions plus adaptables dans de
multiples environnements, nous allons être limités à créer des sites qui ne vont
toucher qu'une petite partie de notre cible. Alors que le design responsif pourrait être
considéré juste comme une nouvelle façon d'aborder la conception de sites,
aujourd'hui c'est en passe de devenir la norme.
2
Et puis, comme vous l'imaginez, les CSS vont jouer un rôle majeur dans la création
d'un design responsive. Les requêtes multimédia vont nous permettre d'appliquer
différents ensembles de styles en fonction des facteurs tels que la taille de l'écran,
l'orientation ou la résolution. Cela va nous permettre de modifier la disposition et la
typographie d'un design qui soit plus adapté au contexte dans lequel il est visualisé.
Les mise en page responsive sont généralement de nature fluide afin qu'elles
puissent s'adapter à l'écran sur lequel on les verra. Et puis il y a des fonctionnalités
CSS plus récentes, telles que les transitions et les transformations qui vont permettre
aux concepteurs de modifier la manière dont le contenu s'affiche et interagir avec
l'utilisateur sans nécessité d'écrire des scripts supplémentaires. Les images basées
sur les CSS peuvent également aider à réduire la quantité de ressources demandées
par la page en remplaçant des icônes ou d'autres images.
Et puis enfin Le JavaScript est également utilisé à des degrés divers par différentes
conceptions responsive. Il est principalement utilisé pour contrôler le chargement des
ressources, pour fournir des images et des supports appropriés en fonction des
besoins des différents appareils. Et puis ajouter des fonctionnalités spécifiques aux
périphériques, comme par exemple la géolocalisation et des événements tactiles.
Essentiellement avec ces trois technologies, HTML, CSS et JavaScript, nous allons
avoir une épine dorsale pour des conceptions qui vont être beaucoup plus réactives.
Nous allons, plus loin, bien entendu, explorer quelques-unes de ces techniques dans
le détail. Pour le moment, n'oubliez pas que c'est le concept et les objectifs d'un
design responsive qu'il est important de comprendre. Il existe de multiples
techniques pour aider le contenu à s'adapter et dans tous les cas, les techniques et
les stratégies qui portent sur les designs responsifs sont destinées à évoluer. Cela
signifie que vous, en tant que concepteur, vous allez devoir explorer plusieurs
techniques, et puis forger la vôtre en réfléchissant à la façon dont le design responsif
va correspondre le mieux à votre stratégie globale pour votre site.
2
s'agit d’un site responsif. Il va falloir voir comment ce site va s'adapter aux différents
autres appareils, notamment des périphériques mobiles. Ici nous avons une page qui
est centrée sur l'écran, elle est conçue de manière à pouvoir s'adapter à une large
gamme de résolutions de bureau.
Nous avons un menu qui se trouve en haut et nous avons en dessous un produit
avec les détails du produit et un certain nombre d'images sur lesquelles on peut
cliquer, et qui vont afficher les détails du produit qui est mis en vente. On peut ici
passer des commandes, ajouter au panier. Et puis en-dessous, nous avons des
produits qui sont similaires, puis des commentaires clients. Au bas de la page, nous
trouvons une navigation miroir qui permet de se déplacer dans les différentes
sections du site. Voyons donc maintenant comment fonctionne ce site sur une
tablette et sur un téléphone.
2
Voyons maintenant ce qui se
passe sur un écran de plus petite
taille, sur un téléphone portable,
un iPhone. Sur un téléphone
portable, où l'écran est
radicalement beaucoup plus étroit,
vous voyez que la mise en page
change de façon spectaculaire.
Tout va être condensé sur une
seule colonne. Et les choses vont
pouvoir être présentées de façon
à ce qu'elles puissent s'intégrer
sur un écran plus petit d'un
téléphone portable. Nous
constatons également que, en
haut, le menu, qui ne pourrait pas
tenir à côté du logo, est dépliable
en accordéon et qu'il y a la
prédominance d'un moteur de
recherche qui va permettre aux utilisateurs de trouver les
articles qu'ils recherchent. La navigation au niveau de l'image s'opère de la même
façon que sur une tablette. Il s'agit de pouvoir faire glisser les images avec le doigt,
mais nous avons également un certain nombre de fonctionnalités qui vont être des
fonctionnalités spécifiques aux périphériques mobiles.
2
d'un menu déroulant, eh bien ce menu déroulant va apparaître en bas de l'écran.
Vous voyez qu'il s'agit de fonctionnalités qui sont des fonctionnalités spécifiques aux
mobiles. Il y a également une autre fonctionnalité qui est intéressante, qui ne va pas
fonctionner ici puisqu'on est sur un site de démonstration, mais vous avez un Fime
Near Buy, qui se trouve juste en dessous la mise en panier, mais qui permettrait
d'afficher sur une carte des magasins qui seraient à proximité de l'endroit où se
trouverait l'utilisateur.
2
est essentiellement un concept qui s'appelle le concept de viewports mobiles et qu'on
a traduit parfois par Fenêtres. Il s'agit en fait de la zone d'affichage qui est prévue
pour la page web à l'écran. Dans la vidéo précédente, nous avons vu un exemple de
site responsive et nous allons voir maintenant un exemple de site qui n'est pas
responsive, de manière à bien comprendre à quoi correspond cette notion de
viewport.
Nous sommes
ici sur un
ordinateur de
bureau, avec un
navigateur
standard qui est
chrome, sur un
site test qui n'est
pas responsive.
Et vous voyez
que lorsque nous allons resserrer ici notre fenêtre, eh bien la mise en page ne va
pas bouger et nous allons arriver sur une vue qui, au final,
sera une vue partielle si les zones d'affichage sont
inférieures à celle qui a été prévue au moment de la
conception.
2
Nous pouvons donc par exemple être ici
sur un viewport de 320 par 480 pixels, et
avoir une page qui va s'afficher à cette
taille, et avec ici une échelle de 1. Et
nous pourrions être sur le même
viewport, c'est à dire sur la même zone
d'affichage, de 320 par 480, avec une
échelle d'affichage qui serait différente,
par exemple le double. Les viewports
vont également varier d'un appareil à un
autre et d'un navigateur à un autre.
Si vous réalisez une mise en page web sur un de ces viewports, de 980 pixels ou
850 pixels, et que vous devez l'afficher sur un écran d'un téléphone portable qui va
faire 320 pixels de large, vous voyez très clairement que la page ne va pas pouvoir
être contenue dans la largeur de cet écran.
2
Il va donc y avoir à un moment donné une
réduction de la taille de l'image de manière
qu'elle s'adapte à l'écran. Il s'agit ici d'un
rapport de taille.
2
par défaut du navigateur. Vous allez pouvoir utiliser, soit la balise meta viewport, ou
vous allez pouvoir utiliser une règle CSS@ viewport. Ces deux techniques vont
utiliser une syntaxe assez similaire. Nous allons donc voir des exemples de code
pour chacun d'entre eux, et puis nous allons décrire leurs effets sur la fenêtre.
2
Nous allons modifier ces valeurs en fixant le viewport à 320
pixels. Et vous voyez que maintenant, notre page s'affiche
correctement dans notre navigateur. Il y a donc un lien direct
de cause à effet entre la fixation du viewport par rapport à la
taille de votre écran. Notez que tous les écrans n'ont pas une
largeur à 320 pixels de large, et qu'il va falloir que l'on puisse
travailler avec éventuellement d'autres systèmes. C'est la
raison pour laquelle on peut travailler avec un viewport qui va
être basé sur une valeur en pixels, mais on peut également
travailler avec un viewport qui va être, comme c'est le cas ici,
basé sur la largeur de l'écran du périphérique sur lequel on va
consulter la page web. Donc à moins d'avoir une raison
d'utiliser une valeur en pixels, il est beaucoup plus intéressant
d'utiliser une valeur qui va être liée à la largeur de l'écran du
périphérique. Alors on pourrait également définir la hauteur du
viewport, mais en général c'est quelque chose qui ne se fait
pas. Ensuite on va définir d'autres éléments qui vont être
également très intéressants.
Nous avons vu que nous avons pu définir quelle était la largeur du viewport, de la
zone d'affichage, que nous avons pu également fixer cette valeur pour la caler sur la
largeur de l'écran du périphérique. Vous voyez que dans ces deux cas ici, nous le
voyons, à gauche avec la balise meta, et puis à droite avec la règle de CSS.
2
Vous pouvez donc tout à fait
définir au niveau du
viewport une échelle initiale
qui est une échelle initiale
de 1, c'est-à-dire un zoom
qui va être à 100 %. Il n'y
aura donc pas d'agrandissement de votre page.
2
Nous avons donc vu deux
possibilités, deux balises
possibles. Laquelle utiliser ? Si
vous utilisez la balise meta, vous
êtes dans une norme qui est une
norme universelle. Alors qu'avec
la balise CSS@viewport, vous
allez devoir ajouter un préfixe. Il
va donc falloir préciser des préfixes, à la fois pour moz pour mozilla, pour webkit,
pour o pour opéra, et puis ms pour Microsoft. Donc il est préférable pour l'instant de
travailler encore avec la balise meta name = " viewport ". L'adoption de @viewport se
propage assez rapidement et nous nous attendons à avoir un support complet de
cette balise dans un avenir assez proche. Une fois que cela se produira, nous
pourrons donc l'employer de façon massive, de manière à pouvoir contrôler les vues
du navigateur lors de la création de nos design responsive.
2
indépendants des périphériques sur lesquels on visionnera les pages Web. Voyons
comment tout cela fonctionne.
Ce qui veut dire que si je souhaite établir une norme pour pouvoir mesurer les
éléments, non pas en fonction du périphérique mais de manière absolue, il va falloir
que je puisse passer de la notion de pixels physiques à la notion de pixels de rendu,
et c'est ce qui est en train de se passer actuellement au niveau des nouvelles
technologies qui sont mises en place pour créer des sites Web responsives. À
gauche, j'ai un écran de 320 par 480 pixels, et puis à droite j'ai toujours mon
deuxième écran de 640 par 960 pixels.
2
Si je veux afficher dans ces 2 écrans
un élément qui aura exactement la
même dimension, il me faudra un
certain nombre de pixels, et ce nombre
de pixels sera différent, selon que j'ai
un affichage de 320 par 480 pixels, ou
un affichage de 640 par 960 pixels.
Donc à gauche, il va me falloir un
certain nombre de pixels
pour afficher un carré
comme ici le carré jaune
que vous voyez à
l'intérieur de la grille. Ici il
fait 3 pixels par 3 pixels.
Et puis pour afficher à
droite optiquement le
même objet qui
visuellement aura la
même taille, vous voyez
que les pixels étant plus
petits, il me faudra le
double de pixels en largeur et en hauteur pour afficher le même objet avec la même
valeur visuelle. Nous avons donc ici une approche de la notion de pixels de rendu. Il
faut donc définir une unité qui va être une unité qui ne sera pas liée au périphérique
de sortie comme le pixel qui est le pixel device, le pixel du périphérique, mais qui va
être une valeur qui va être indépendante.
On peut donc définir la notion de pixels de rendu, on parle également de pixels CSS
comme étant une unité de mesure qui va établir une norme qui sera optique pour la
longueur d'un pixel, et qui va être totalement indépendante des pixels matériels.
2
Nous avons en ce qui concerne le
ratio pixel/device pour Android ici
une grille, qui va nous montrer par
exemple à quelle taille nous allons
devoir travailler une image, à
partir du moment où nous allons
travailler pour des écrans qui vont
être des écrans de densité
différente. Si nous prenons toutes
les lignes, vous voyez que la taille
affichée sera la même. Nous
sommes ici à peu près sur un peu
plus d'un demi-pouce. Et selon la
densité, puisque sur Android nous
sommes avec un ratio de 1 sur
une densité de 160, nous aurons
une image qui devra mesurer 100
pixels par 100 pixels. Et puis si
nous passons à une résolution supérieure de haute définition, HDPI à 240 pixels, eh
bien nous sommes dans un ratio de 1.5, et nous devrons donc travailler notre image
sur 150 pixels par 150 pixels, pour qu'elle s'affiche avec la même valeur optique à
l'écran. Au fur à mesure que le ratio pixels/image va s'incrémenter à 2, à 3, à 4, nous
allons bien entendu, dans la même proportion, avoir à augmenter la taille de l'image
que nous devrons travailler pour qu'elle s'affiche à la même taille sur un écran de
densité 640 qu'elle s'afficherait sur un écran de densité 160. Alors ceci peut peut-être
vous paraître un peu théorique, mais il y a une chose qu'il faut essentiellement
retenir, c'est que les densités des écrans ne sont pas les mêmes, et l'affichage des
pixels n'est pas les mêmes. Il faut donc travailler avec un système qui va nous
permettre de nous assurer que, à partir du moment où nous voulons qu'une image
s'affiche sur une certaine taille, eh bien elle s'affiche de la même manière sur les
différents écrans de même taille quelle que soit leur densité. Et dans la vidéo qui suit,
nous allons voir très concrètement quel est l'impact sur le travail que nous aurons à
faire pour nos images.
2
travailler avec du SVG, nous pouvons également travailler avec des images définies
par des codes CSS.
2
partir du principe, que qui peut le plus peut le moins, et nous pouvons tout à fait
envisager de commencer à travailler avec une image haute définition qui est
destinée à s'afficher sur des périphériques qui ont une densité supérieure. Et cette
même image va s'afficher dans une dimension inférieure sur des périphériques qui
ont une densité qui est inférieure.
2
elle va être affichée en background, et elle sera affichée à 50 % de sa taille, puisque
on est dans un pixel ratio de 2.
2
d'une extension de déclaration @media qui existait déjà. Grâce aux déclarations
@media, les CSS nous ont permis pendant un certain temps d'ajuster l'application
des styles par type de média, c'est-à-dire par type de périphérique, par type
d'appareil depuis déjà un certain temps.
2
On peut également utiliser only parce qu'il y a d'anciens navigateurs, d'anciens
agents utilisateurs, qui sont plus anciens, et qui ne vont pas supporter only. Ils vont
donc ignorer les déclarations multimédia qui commencent par only. Ça peut donc
être une alternative au not.
Et puis on a le mot clé and, qui va nous permettre de combiner ensemble des
expressions.
Si vous utilisez un lien pour accéder à des styles externes, nous pouvons utiliser
cette syntaxe. Il s'agit d'un lien qui va aller chercher une feuille de style, avec un type
pour cette feuille de style qui est ici screen, et largeur minimum, 480 pixels.
On peut également utiliser le système @import, pour pouvoir inclure des feuilles de
style à l'intérieur d'autres feuilles de style.
Il faut également
préciser que si vous ne
2
déclarez pas un type de média, tout va être supposé. Donc si vous filtrez les
résultats pour les appliquer à tout type de média, vous pouvez également exclure le
type de média que vous voulez exclure, et le reste de la syntaxe va fonctionner
toujours très bien.
Vous pouvez
sur le site du
W3C, le
consortium qui
régule le Web,
consulter les
informations
concernant les
media queries.
Dans la vidéo qui va suivre, nous allons voir comment nous allons utiliser ces media
queries pour pouvoir adapter nos designs en fonction, par exemple, de points de
rupture, c'est-à-dire en fonction des différentes tailles d'écran.
2
Alors qu'est-ce qu'un point de
rupture ? Un point de rupture c'est
en fait le moment où la mise en
page va changer de disposition, en
fonction de la largeur de l'écran. Il
ne s'agit pas ici de s'adapter à tel
ou tel périphérique, mais de
s'adapter à la largeur d'un écran.
Et vous allez voir que c'est
quelque chose qui va nous permettre de pouvoir travailler pour les principaux
périphériques.
Supposons par
exemple que nous
ciblions trois types
de périphériques
principaux,
smartphone,
tablette, et
ordinateur. Nous
allons pouvoir écrire
une media query
pour les tablettes. Ici
nous allons spécifier
que nous voulons
travailler pour des
écrans dont la
largeur est inférieure à 480 pixels. Nous allons ensuite nous baser sur une largeur
d'écran supérieure, attention il ne faut pas qu'il y ait de recouvrement, donc nous ne
pourrions pas indiquer comme largeur minimale 480, il nous faut indiquer 481. Et
puis nous allons aller jusqu'à une largeur de 768 pixels. Et nous définirons ici nos
styles pour tablette. Et puis ensuite, nous allons dire que pour toutes les tailles
supérieures à 769 pixels, eh bien nous allons appliquer des styles pour ordinateur.
Nous avons donc la possibilité en fonction de 3 media queries d'appliquer des styles
qui vont être différents pour chacun des périphériques. Sachant que nous ne visons
pas des périphériques, mais la taille de la fenêtre dans laquelle va s'afficher le site
Web.
2
Alors nous
pouvons par
exemple ici
travailler avec une
feuille de style qui
va définir p {, c'est-
à-dire le
paragraphe, en
définissant la
largeur en
pourcentage par
rapport à son
conteneur, sa
hauteur peut être
définie en pixels,
on peut définir une
marge intérieure, la
couleur du texte et
la couleur du fond.
On peut faire de la
même manière pour les tablettes, et procéder également de la même manière pour
l'ordinateur de bureau.
2
En ce qui concerne
l'ordinateur de bureau, nous
nous sommes contentés de
spécifier des valeurs
supérieures en largeur à 769
pixels. Notez que pour
chacun de ces styles, nous
avons changé le fond de
couleur.
Pour les tablettes entre 481 et 768 pixels, nous aurons une couleur verte, et puis
pour les smartphones dont les écrans vont être égaux ou inférieurs à 480 pixels, eh
bien nous aurons un affichage en rouge. Voyons tout simplement ici, en resserrant la
taille de l'écran, ce qui se
passe.
2
Mais dès que je vais arriver à
768 pixels, eh bien l'affichage
va se faire en vert.
Et si je continue à resserrer ma
taille d'écran, vous voyez que
le style qui va s'appliquer
désormais en dessous de 481
pixels, c'est-à-dire lorsque la
largeur sera égale ou inférieure
à 480 pixels, eh bien le style
appliquera un fond rouge au
paragraphe.
2
couleur de fond, mais nous allons pouvoir appliquer des styles beaucoup plus
sophistiqués, y compris des styles qui vont modifier l'emplacement des différents
éléments, ou l'affichage ou non de tel ou tel élément dans notre mise en page. Pour
terminer sur cette question des points de rupture, vous avez probablement noté que
nous avons travaillé ici non pas avec le device width, c'est-à-dire la largeur de
l'écran, mais avec le width, c'est-à-dire la largeur de la fenêtre dans laquelle était
affichée notre page Web. Il est effectivement beaucoup plus pratique de travailler
avec la largeur de la fenêtre, car on est dans un système qui va être plus souple et
plus précis.
2
à 480 pixels, certaines valeurs pour le paragraphe. Nous avons ensuite spécifié pour
les écrans, qui sont en fait des écrans de tablettes ou à l'horizontal entre 480 et 768
pixels, d'autres valeurs pour le paragraphe, la typo restera toujours blanche, white,
white, et nous avons enfin ajouté les inscriptions pour les écrans dont la largeur est
supérieure à 768 pixels. Et puis nous avons terminé nos instructions de style, qui se
trouvent bien entendu dans l'en-tête. Et puis nous avons ensuite tout simplement
appliqué la balise paragraphe. Et la balise paragraphe en fonction de ce qui sera
trouvé au niveau de la largeur de l'écran, eh bien appliquera des valeurs qui sont
différentes. Voyons donc visuellement le résultat de notre travail.
2
Comme vous pouvez l'imaginer, créer des mises en page distinctes pour chaque
point d'arrêt va créer beaucoup plus de travail que d'élaborer une seule disposition
qui va être fluide. C'est pour cette raison que les concepteurs ont adopté l'utilisation
de griffes fluides pour créer de multiples mises en page qui vont être plus rapides et
plus précises.
2
Pour rendre les grilles plus fluides,
on peut également utiliser des
unités de mesure relatives comme
les ems ou des valeurs de
pourcentage pour déterminer la
largeur des colonnes et des
gouttières. Ensuite on va placer les
différents éléments sur la page et
ceux-ci vont être mesurés en
fonction de ces valeurs relatives.
2
page en fonction des tailles des écrans, nous l'avons vu par exemple avec des media
queries, et puis des points de rupture, mais en ce qui concerne les images, la
problématique est différente.
2
Au lieu de définir la largeur de l'image, on va
définir la largeur maximale de l'image.
L'image va donc s'afficher avec une largeur
maximale, ici de 100 % du conteneur à
l'intérieur duquel elle va se trouver. Et l'on
pourrait considérer que ces solutions sont
satisfaisantes. Toutefois, il y a quand même
des problèmes. Premièrement, l'attribut max-
width n'est pas reconnu par tous les
navigateurs, et puis surtout il y a un problème
très clair de chargement, puisque l'on va
charger quel que soit le périphérique sur
lequel on va visionner l'image, une image qui
va être très large, très lourde. Donc les temps
de chargement vont être ralentis.
Il y a d'autres solutions. On
pourrait considérer qu'il serait
intéressant de travailler les images
en fond, et à l'aide d'instructions
CSS. C'est valable pour des
images qui vont être par exemple
à vocation uniquement
décoratives. On peut par exemple
définir ici que pour des écrans qui
sont inférieurs à une largeur de
480 pixels, on va créer un élément,
et que cet élément en fond va
charger une image que nous
aurons préparée. Cette image aura
la taille qui sera requise pour
s'afficher sur cet écran. Et puis
nous aurons préparé d'autres images. Et pour les écrans entre 480 pixels et 768
pixels que nous allons définir ici au niveau de notre media query, nous allons
demander à ce que cette div aille chercher une autre image. Nous aurons préparé
une image qui est une image de taille moyenne. Et nous aurons enfin préparé une
troisième image pour les grands écrans, supérieure à 769 pixels, et ici la div ira
chercher une autre image qui sera l'image de grande taille. Nous avons donc ici
travaillé 3 images, et l'on a demandé à ce que le serveur serve l'image qui soit
adaptée à la taille de l'écran. Encore une
fois, on pourrait considérer que ce
système est un système très efficace.
2
vous l'avez bien compris, c'est que ces images ne sont pas intégrées dans le flux
HTML, puisqu'il s'agit d'images de fond qui sont en background, et ça peut donc
poser des problèmes d'accessibilité, et également d'autres problèmes liés à
l'optimisation pour les moteurs de recherche.
2
Vous pouvez, en ce qui
concerne ces scripts, vous
intéresser à Picturefill, qui
est un script assez récent,
qui utilise les dernières
technologies, que l'on peut
télécharger bien entendu sur
GitHub pour l'exploiter. Vous
pouvez également consulter
le mode d'emploi, avec des
explications qui sont
extrêmement complètes.
Vous avez ici également le
téléchargement de ces JavaScript. Et vous avez toutes les explications détaillées sur
la manière de le mettre en œuvre, et de manière également à pouvoir tester ce qui
se passe sur les différentes images en fonction de vos points de rupture. Reste que
le plus gros problème pour toutes ces techniques va rester le chargement des pages
par les navigateurs.
2
À l'heure actuelle, cela dépend d'essentiellement
trois facteurs. Premièrement il y a la taille de
l'écran. Deuxièmement il y a la densité de cet
écran. Et puis il y a également la connectivité qui
va jouer sur la bande passante.
2
qu'ici il y a en plus de ce srcset une ressource qui va consister à charger une image
de secours pour des navigateurs qui ne reconnaîtraient pas cette balise srcset.
Notez également que l'on a ajouté une balise img src très classique en HTML pour
des navigateurs qui ne reconnaîtraient pas la balise picture.
2
S'assurer que les formulaires soient
clairs et faciles à remplir est une
composante importante de toute
bonne expérience utilisateur. Étant
donné que les facteurs de mise en
forme vont changer d'un périphérique
à l'autre, il est parfois difficile de créer
des formulaires qui soient également
efficaces sur tous les périphériques.
2
D'une manière générale, il y a des contraintes liées
au mobile qui sont essentiellement des contraintes
de hauteur mais pas uniquement. Cela va être
également des contraintes qui sont liées à
l'utilisation de ce mobile.
2
Nous allons entrer dans le détail de ces balises. Il faut essentiellement comprendre
que nous allons devoir assister l'utilisateur dans la saisie de ce formulaire et nous
allons devoir également nous assurer que les champs de formulaire ont été saisis de
manière valide, c'est-à-dire qu'ils correspondent bien à ce que l'on attend. Nous
avons ici dans un premier temps un champ qui va concerner la saisie d'une adresse
email. On va avoir ensuite un champ ici qui va permettre de saisir une URL et nous
avons ici un champ qui est un champ de recherche. En utilisant des balises de type
HTML 5 qui sont conformes aux règles du code, nous allons faciliter l'assistance et
nous allons également faciliter la validation. Vous voyez qu'ici il s'agit de champs qui
sont requis et ce sont des champs dont le type a été précisé. Pour l'email, le type est
email. Pour l'adresse internet, le type est URL et puis pour le champ de recherche, le
type est search.
En ce qui concerne
l'assistance, on a la
possibilité de préciser des
informations qui vont aider
l'utilisateur à remplir les
différents champs de
formulaire. C'est quelque
chose comme nous le
voyons ici qui peut tout à
fait fonctionner sur un
ordinateur de bureau.
2
Mais lorsque vous êtes sur un
écran qui va être limité en
hauteur et où l'utilisateur va
devoir travailler de façon
tactile nous n'allons pas
bénéficier de cette place et il
va falloir que nous trouvions
une autre solution.
2
Si on regarde le code d'un
formulaire ici qui est saisi au
format HTML 5, vous voyez
qu' on a bien précisé à
chaque fois les labels, les
étiquettes et puis à l'intérieur
du champ de formulaire on a
précisé le type de champ et
on a également placé des
placeholders, c'est-à-dire
des explications sur ce que
l'on attend de l'utilisateur.
2
La combinaison des éléments peut
effectivement être intéressante en ce sens
qu'elle va permettre de générer un gain de
place. Si au lieu de demander de saisir la rue,
le numéro de téléphone, le code postal et la
ville dans des champs séparés, on peut
demander à l'utilisateur de nous communiquer
son adresse selon un modèle qu'on va lui
communiquer : ici, numéro de rue, code postal
et ville. On est dans un système qui dans
certains cas peut générer des données qui ne seront peut-être pas extrêmement
cohérentes en termes d'exploitation sur une base de données mais l'on va faciliter la
saisie de l'utilisateur et donc améliorer son expérience. De la même façon, au lieu de
présenter trois boutons radio pour donner un choix, on va pouvoir utiliser un menu
déroulant qui va occuper beaucoup moins de place à l'écran et qui va permettre à
l'utilisateur d'avoir une vision beaucoup plus claire de notre formulaire.
2
Lors de la conception de sites pour des
ordinateurs, nous avons été habitués à
créer des sites qui sont conçus pour des
connexions relativement cohérentes avec
une large bande passante.
2
requêtes serveur, de requêtes HTTP. Nous allons donc devoir minimiser le nombre
de requêtes HTTP.
2
Et puis, on peut
minimiser les
requêtes HTTP,
mais on peut
également les
optimiser. Par
exemple en
utilisant pour les
images à vocation
décorative la
balise
background-image
au lieu de la balise
img. Nous allons
utiliser au
maximum les
requêtes @media, et puis les fonctions CSS3, et puis également nous allons utiliser
les sprites. Les sprites sont en fait des collections d'images qui sont concaténées
dans un même fichier, et que l'on va pouvoir afficher, sachant qu'il n'y aura un
chargement que d'une seule image, qui ensuite pourra présenter les différentes
icônes dont on aura besoin.
2
3- Mettre en place une stratégie de design responsive
Concevoir en fonction du contexte
Dans ce chapitre, nous allons examiner quelles sont les stratégies que nous allons
devoir prendre en considération lorsque nous allons aborder la conception de sites
Responsive. Pour construire un site Responsive réussi, il va falloir aller beaucoup
plus loin que le simple repositionnement des éléments selon les mises en page qui
sont adaptées à des écrans. Il va falloir que l'on place notre conception dans le
contexte d'utilisation. Il va pour cela falloir que nous comprenions quels sont les
usages des utilisateurs. Il va donc y avoir des situations où, par exemple, une
application mobile séparée serait un meilleur choix que de réaliser un site qui soit
Responsive. Nous allons donc voir quelles sont ces stratégies et nous allons
comprendre quels sont les avantages, les forces et les faiblesses relatives du Design
Responsive.
L'ancienne approche
consistait à réaliser une
maquette. Dans certains
cas on prototypait, mais la
plupart du temps, on
développait même le site
en allant jusqu'à écrire le
code. Et puis on testait
ensuite ce site sur les
différents navigateurs, pour
au final, une fois que nous
étions satisfaits, nous
poser la question de savoir
comment nous allions
adapter ces contenus sur
des périphériques mobiles.
Il est bien évident que cette
approche aujourd'hui ne peut plus fonctionner comme cela.
2
de gamme. Vous vous rendez bien compte qu'une stratégie industrielle de ce type
serait un véritable désastre. Et bien c'est exactement la même chose en ce qui
concerne la conception de sites Web. On ne peut plus aujourd'hui concevoir pour les
écrans d'ordinateur, et ensuite se poser la question de l'adaptation.
2
Bien entendu, chaque projet est
unique, et les exemples que
nous allons voir ne sont pas à
prendre au pied de la lettre, ils
ne sont là que pour vous donner
une idée des méthodes à mettre
en place.
2
Si nous prenons notre exemple
e.commerce, nous allons mettre
en place dans un premier temps
un logo, et puis nous allons
mettre ensuite en place une en-
tête, puis une navigation, enfin un
article, un deuxième article, et
puis un troisième article. Et vous
voyez que compte tenu de la taille
de notre écran, dans ce cas
précis, nous ne pouvons pas aller
beaucoup plus loin en termes de
répartition de contenu au premier
niveau.
2
L'étape suivante va être de considérer
quels vont être les différents points de
rupture, c'est à dire à partir de quelle
largeur d'écran nous allons faire varier
les mises en page.
2
Ils vont également concerner
certaines fonctionnalités,
notamment une fonctionnalité
très importante qui est la
navigation. Vous voyez qu'ici,
nous avons une navigation
que nous pouvons resserrer :
par exemple entre 1000 pixels
et 480 pixels, cette navigation
peut fonctionner. Il suffit
simplement de resserrer la
largeur des différents boutons
qui constituent cette
navigation. Mais en dessous
de 480 pixels, et bien cette
navigation ne va plus tenir dans la largeur. Vous voyez que le quatrième bouton est
passé en dessous. Nous avons donc ici un impact direct de la largeur sur la
fonctionnalité. Il faudra donc trouver une solution différente pour notre navigation. Ça
peut être un menu de type Burger (les trois petites lignes), ou ça peut être un menu
déroulant, ou un menu accordéon qui va se déplier à la demande. Mais il va falloir
que nous trouvions une solution pour des écrans inférieurs à 480 pixels, notamment
des écrans de 420 pixels.
2
Effectivement, nous allons nous
poser un certain nombre de
questions, et la question
fondamentale est : peut-on utiliser
une seule structure de documents
pour gérer l'affichage sur tous ces
périphériques que nous avons
définis en fonction de nos points
de rupture ? Si la réponse est
non, il va falloir se reposer une
autre question, c’est : peut-on
redéfinir les objectifs ? Et si la
réponse est non, et bien il va
falloir se poser une autre question
: y a-t-il possibilité de modifier le
contenu ? Et si la réponse est encore non, et bien nous allons arriver vers des
solutions qui vont nous faire abandonner la création d'un Design Responsive, et nous
tourner vers la création, soit d'une application mobile, soit d'un site qui soit spécifique
pour ces périphériques. Si par contre, lorsque nous sommes à la question numéro 2
de redéfinir les objectifs, ou à la question numéro 3 qui est de modifier le contenu, et
que la réponse est oui, et bien là, nous allons pouvoir commencer à construire notre
site Responsive. Et nous aurons ainsi maximisé l'organisation de notre flux de
production, et nous n'aurons pas perdu de temps à déployer des solutions qui se
révéleraient, in fine, des échecs. Et puis, puisque l'on parle de temps, il va falloir que
vous vous prépariez à rencontrer des obstacles inattendus au fur à mesure que vous
allez avancer dans votre conception. Il faut donc que vous soyez assez larges dans
la mise en place de votre planning, de telle sorte que lorsque vous rencontrerez ces
obstacles, vous ne les intégrerez pas comme étant des problèmes graves, mais
comme étant des solutions à trouver. Dans les vidéos suivantes, nous allons voir
comment gérer les contenus.
2
Et plus tôt vous réaliserez des
maquettes, plus tôt vous
prototyperez, et plus efficace
sera votre flux de production.
Vous allez pouvoir travailler avec
des outils, dans un premier
temps, comme Mockingbird, qui
vont vous permettre de créer des
maquettes filaires. Il s'agit de
maquettes de structures, où vous
allez mettre en place uniquement
des éléments comme vous voyez sur cette page, qui se mettent en place à partir
d'un menu latéral où vous allez choisir les différents éléments. Et vous allez donc
réaliser des maquettes pour les différents écrans sur lesquels vous avez à travailler.
Vous pouvez vous connecter sur Mockingbird et vous pouvez tester cet outil
gratuitement de manière à voir comment il fonctionne. Il y a bien entendu d'autres
outils qui vont vous permettre de créer des maquettes filaires. Vous pouvez
également vous reporter aux formations de notre catalogue sur le prototypage. Et
puis aujourd'hui, une fois que les maquettes filaires ont été créées et une fois que
vous avez avancé dans votre projet, vous allez pouvoir passer à ce que l'on appelle
des maquettes fonctionnelles.
2
Développer une stratégie de contenu
La stratégie de contenu est vraiment au coeur du problème. Si aujourd'hui nous
mettons en ligne des sites internet, c'est pour proposer des contenus aux utilisateurs
mais également pour que ceux-ci puissent interagir avec ces contenus. Que ce soit
des sites informatifs ou que ce soit des sites à visée commerciale, le problème reste
le même : il faut que les contenus soient particulièrement bien présentés et adaptés
au type d'écran sur lesquels ils vont être consultés. Voyons comment mettre en place
une stratégie de contenu.
2
À partir du moment où nous allons passer sur des écrans
qui vont être de très faible largeur, la problématique va être
différente puisque nous ne pourrons pas présenter les
choses de la même façon. Nous serons dans une
présentation qui ne sera plus une présentation dans la
largeur mais une présentation dans la hauteur. La répartition
du contenu va donc être différente et il va falloir gérer ce
contenu, c'est-à-dire effectuer des choix et définir des
priorités d'affichage des contenus. Vous voyez par exemple
sur cet écran que la mise en panier ne peut pas apparaître
en affichage de premier niveau.
2
Nous allons maintenant voir comment
répartir ces contenus en fonction des
dispositions et en fonction des tailles
des écrans pour les périphériques que
nous ciblons. Nous pouvons sur quatre
colonnes placer les éléments dans
l'ordre suivant. Ce n'est pas un
problème ici de placer la mise en
panier en bout de colonne puisque
même si c'est quelque chose qui est
considéré comme important en termes
de hiérarchie, vous voyez que il apparaît au premier niveau. Sur trois colonnes par
contre, nous allons avoir à supprimer un des éléments et nous avons un choix à
faire. Donc une fois que nous avons défini les contenus, hiérarchisé les contenus, au
moment de la répartition de ces contenus nous allons devoir faire des choix et ici le
choix a été de reléguer les suggestions de produits similaires ailleurs. Sur deux
colonnes, nous allons pouvoir placer la description du produit sous le visuel du
produit et placer en face le dispositif de mise en panier. Et puis sur une colonne,
nous n'allons placer que les éléments fondamentaux, c'est-à-dire le produit et la mise
en panier. Ça ne veut pas dire que les autres éléments qui ne font pas partie de
notre choix primaire vont disparaître, mais simplement ils vont apparaître d'une façon
qui sera complémentaire et qui ne sera pas un affichage de premier niveau.
2
Comprendre le contexte mobile
Tout au long de cette formation, nous avons utilisé le terme de contexte pour faire
référence à l'expérience et à l'interaction des utilisateurs avec nos sites à l'aide de
différents périphériques. Comprendre le contexte est utile car cela va nous aider à
faire des hypothèses sur la façon dont quelqu'un va utiliser notre site, quel va être
son point de vue, ses capacités et également les limites qu'il va rencontrer. Pendant
très longtemps nous avons conçu uniquement pour le contexte de bureau et le
contexte mobile doit également être pris en compte. Alors c'est quelque chose qui
est relativement nouveau même s'il y a une évolution rapide entre les premiers
téléphones et puis les smartphones que nous utilisons actuellement.
2
Nous sommes
aujourd'hui tous
mobiles. Or les
utilisateurs de
mobiles vont
présenter une
diversité dans les
comportements et
dans les besoins. Donc le contexte mobile n'est pas tout. Il y a bien entendu les
affirmations que nous venons de voir précédemment mais il va falloir également que
nous ciblions un public particulier en fonction de nos objectifs.
2
Exploiter les fonctionnalités mobiles
Nous avons vu dans la vidéo précédente où nous avons étudié le contexte mobile
que ces périphériques nous proposent des fonctionnalités spécifiques qui peuvent
être intéressantes et que nous avons envie d'exploiter. Notre objectif est toujours de
créer des expériences qui soient attrayantes pour l'utilisateur sur les appareils avec
lesquels il va consulter nos contenus, mais il va falloir que nous fassions quand
même attention.
2
communication pour pouvoir envoyer des messages lorsqu ils vont passer à
proximité de bornes que nous aurons placées par exemple dans un magasin.
L'impact sur la conception de ces fonctionnalités est variable.
2
Vous pouvez notamment vous
0intéresser à la bibliothèque
Modernizr qui va vous permettre
de détecter un certain nombre de
paramètres liés aux périphériques
mobiles et qui vont ensuite pouvoir
vous permettre de déclencher des
fonctionnalités qui vont être liées à
ces paramètres comme les
paramètres de géolocalisation ou
l'accéléromètre, voire la boussole.
2
Les bonnes pratiques sont dans un premier
temps d'écrire du code propre sans balise qui
soit exotique ou redondante et puis ensuite il
va falloir utiliser le HTML 5 et pour pouvoir
bien structurer ces documents, vous allez
pouvoir vous intéresser aux microformats sur
schema.org également sur le site du
w3.org/TR/microdata. En utilisant les
microformats du HTML 5 et bien entendu un
code propre, vous allez produire des sites
responsives qui seront solides.
2
à afficher, nous allons pouvoir avec un script de type JavaScript modifier la
présentation de ce menu ici avec le burger menu. L'utilisation de ces scripts n'est pas
toujours forcément très facile et il va falloir que vous vous documentiez. Mais il existe
de nombreuses librairies de script qui sont très utiles et qui sont très bien
documentées.
2
Les tests sont une composante
essentielle dans la gestion de
projet web et c'est
particulièrement vrai en ce qui
concerne le design responsive.
Alors il y a pléthore d'outils qui
permettent de gérer ce genre de
tests et je vais vous en présenter
quelques-uns qui
personnellement m'ont intéressé
et que vous allez pouvoir tester.
Mais dites-vous bien que ces
outils, qu'ils soient en ligne ou que vous les téléchargiez, sont des outils qui ne
pourront jamais totalement émuler correctement les périphériques physiques. Il va
donc falloir que vous vous dotiez des principaux périphériques qui sont utilisés par
votre public-cible afin de réellement effectuer des tests qui minimiseront les erreurs.
Nous pouvons commencer ici par voir le Multi Device Website Mockup Generator qui
va vous permettre de naviguer à l'intérieur de ces différents écrans avec un même
site dont vous aurez entré l'URL ici. Ce qui est intéressant, c'est que vous avez une
vue d'ensemble immédiate et puis d'autre part que vous allez pouvoir effectuer une
capture d'écran pour pouvoir la présenter notamment à vos clients.
Et puis il y a également un
site en ligne qui est très
2
intéressant qui est isResponsive. Avec isResponsive, vous allez pouvoir non
seulement afficher votre site pour ces périphériques mais vous allez pouvoir, et c'est
très intéressant, faire varier la largeur de l'écran de manière à contrôler où se
trouvent vos points de rupture. Donc c'est un outil qui sur ce plan est très intéressant.
2
être simples et constantes qui ne vont pas bouger mais on va également avoir des
maquettes qui vont pouvoir évoluer avec des mises en page complexes et variables.
Le système de générateur de
grilles fonctionne en nous
fournissant une feuille de style
CSS qui va nous permettre ensuite
de pouvoir aligner ce contenu en
appliquant des classes. Mais on
peut également travailler avec des
frameworks qui eux vont nous
fournir beaucoup plus que cela. Ils
vont nous fournir bien entendu la
feuille de style CSS mais ils vont
également nous fournir une feuille
de style spécifique pour la
typographie et puis également des
templates, c'est-à-dire des
modèles de mise en page et puis enfin les JavaScripts qui vont nous permettre de
répartir le contenu en fonction de ce qui aura été détecté en termes de largeur
d'écran. Voyons quelques-uns de ces frameworks qui sont particulièrement
intéressants et qui vont vous permettre de gagner un temps précieux et une
productivité certaine.
2
Vous n'avez ici qu'à la télécharger et puis ensuite vous appliquerez les classes pour
vos différents éléments. Vous notez que cette grille est basée sur douze colonnes et
puis qu'elle permet de définir la taille des éléments en fonction de la largeur de ces
colonnes. Le code est très simple à comprendre et vous allez pouvoir la tester pour
voir si elle correspond à vos besoins. Mais Simple Grid n'est pas le seul système
existant.
2
principe d'une grille de 12 colonnes sur 960 pixels qui a tendance aujourd'hui à
devenir le standard. Il y a ensuite un code qui est relativement simple à appliquer et
puis ce qui est intéressant également c'est que la typographie a déjà été prémâchée
d'une certaine manière et vous allez pouvoir l'appliquer très facilement.
2
question ne se pose plus aujourd'hui de savoir si votre site doit ou non être responsive : il est
soit responsive, soit condamné à terme. D'autre part, il est très clair que la conception doit être
mobile first, c'est-à-dire prévue pour le mobile d'abord. Souvenez-vous que lorsque l'on va
poser la question à l'utilisateur de base de savoir comment il accède à nos contenus, il ne va
pas répondre avec tel ou tel navigateur ou avec une application mais vous répondra
simplement avec mon téléphone. Cela indique qu'il n'est pas sensible aux techniques que nous
allons utiliser mais aux réponses que nous allons apporter à ses attentes. Et puis par contre se
posera encore quelque temps la question de savoir où placer la limite lorsqu'il va s'agir de
décider de développer soit un site soit une application mobile.
2
2