Nous allons ici voir une sorte de problème plus complexe. Il arrive parfois que vous vouliez positionner un élément mais que pour une raison inconnue, il ne s'affiche pas à l'endroit désiré. C'est habituellement parce que vous lui avez mal indiqué sa position.
La barre d'outils Web Developer
C'est un outil que j'utilise très souvent lorsque je suis sur les forums du SdZ pour résoudre vos problèmes. Avec cette barre, je peux modifier le HTML et le CSS affichés à l'écran pour ainsi pouvoir tester des solutions. Je peux facilement trouver ce qui ne va pas.
La barre d'outils est le nec plus ultra des gadgets du développeur web. Les critiques sont là pour en témoigner.
Citation : Ryan Boots sur addons.mozilla.orgThis isn't a toolbar - it's a Swiss Army knife for web development. I don't know how many times it's occurred to me to try and view this or that through the toolbar, and more often than not it's right there. A required download for every web developer.
Citation : TraductionCe n'est pas une barre d'outils - c'est plutôt un couteau suisse pour le développement Web. Je ne sais combien de fois j'ai dû m'en servir pour voir ceci ou cela, et plus souvent qu'autrement c'est juste là. Un téléchargement nécessaire pour chaque développeur web.
La barre a été développée par Chris Pederick et est disponible dans plusieurs langues. Soyez certains d'être sur la partie française du site de modules complémentaires avant de télécharger.
Utiliser la barre d'outils
Désactiver - Cookies - CSS - Formulaires - Images - Information - Divers - Entourer - Redimensionner - Outils - Voir Source - Options
Par défaut, la barre affiche le texte à côté des icônes. Pour prendre en compte les plus petites résolutions, je l'ai désactivé pour cette capture d'écran.
Le module a énormément de fonctions, je ne pourrai donc pas tout vous détailler. Mais voici les fonctions que j'utilise le plus souvent.
L'édition du code
Dans les menus
CSS et
Divers, vous aurez accès à l'édition HTML et CSS. Pratique pour essayer une solution CSS ou ajouter un texte de test sur une page que l'on ne peut modifier. Les modifications sont provisoires. Elles s'annuleront dès que vous quitterez la page ou fermerez la fenêtre.
L'édition du code est semblable à l'extension Firebug, pour ceux qui connaissent. Elle ne permet pas de naviguer dans le code facilement, mais la modification se fait très rapidement.
L'encadrement coloré des éléments
Le menu
Entourer permet d'entourer rapidement certains éléments de bordures colorées afin de bien voir la place qu'ils prennent. Parfois, il arrive qu'un bloc prenne trop ou pas assez de place et qu'il en pousse un autre. Vous pourrez ainsi l'entourer et voir la place qu'il prend.
Par exemple, si un élément ne s'affiche pas, vous pouvez l'entourer d'une couleur qui contraste le thème du site. Si vous ne repérez pas la bordure, c'est peut-être parce que vous avez oublié de donner une dimension à votre objet (il fait 0 pixel par 0 pixel, il est donc invisible) ou encore qu'il se cache derrière un autre.
Le menu en question propose déjà pas mal d'options, mais pour ceux qui en veulent plus, vous pouvez même
Entourer un élément personnalisé. Cliquez sur le lien. Une fenêtre s'ouvre. Vous pouvez ainsi taper le nom de l'élément que vous voulez entourer. Si vous tapez par exemple
div et choisissez la couleur verte, tous les
div s'entoureront d'une bordure verte. Vous pouvez aussi viser des éléments spécifiques, comme dans le CSS ! Taper
div#specifique entourera le
div à l'
id specifique.
Le redimensionnement de la page
Je ne passerai pas vingt minutes sur le menu
Redimensionner, mais je tenais à ce que vous sachiez qu'il vous permet de redimensionner votre fenêtre à des dimensions très précises afin que vous puissiez très facilement tester votre site sur différentes résolutions.
Les autres fonctions
Pour les autres fonctions, ne vous en faites pas, essayez-les et vous comprendrez bien assez vite leur fonctionnement.
On attaque le problème
Nous voici déjà à ce premier exercice. J'ai déjà eu à résoudre un problème semblable sur le forum et je pense que vous pourrez bien vous en sortir. Vous aurez besoin de la barre d'outils Web Developer.
Si vous avez un peu d'expérience, tout devrait bien se passer. Si vous débutez, je vous laisse me suivre dans ma démarche.
Le code
Actuellement le code est très simple. Tout est dans la page et le CSS est intégré entre les balises
<style></style>
.
Secret (cliquez pour afficher)
Code : HTML 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>La gestion des erreurs et des problèmes HTML - Exercice 1</title>
<style type="text/css">
<!--
body {
background-color: #F5F5F5;
}
div#entete {
width: 750px;
height: 90px;
background-color: #999999;
}
div#entete_gauche {
float: left;
width: 400px;
height: 110px;
}
div#entete_gauche img {
display: block;
width: 400px;
height: 90px;
background-color: #666666;
}
div#entete_droite {
float: right;
width: 350px;
height: 90px;
text-align: center;
}
div#menu {
float: left;
width: 150px;
background-color: #000000;
}
div#menu ul {
margin: 0;
padding: 0;
}
div#menu li {
line-height: 22px;
padding-left: 5px;
border-bottom: 1px solid #FFFFFF;
list-style-type: none;
font-family: Verdana, Geneva, sans-serif;
font-size: 12px;
color: #FFFFFF;
}
div#contenu {
width: 580px;
margin-left: 150px;
padding: 10px;
background-color: #CCCCCC;
}
p {
margin: 0;
text-indent: 25px;
}
-->
</style>
</head>
<body>
<h1>La gestion des erreurs et des problèmes HTML</h1>
<h2>Exercice 1</h2>
<div id="entete">
<div id="entete_gauche"><img src="logo.png" alt="Logo de notre super site" /></div>
<div id="entete_droite">Bienvenue sur notre site !</div>
</div>
<div id="menu">
<ul>
<li>Lien 1</li>
<li>Lien 2</li>
<li>Lien 3</li>
<li>Lien 4</li>
</ul>
</div>
<div id="contenu">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras ac viverra quam. Praesent suscipit, sem ut condimentum iaculis, justo purus consequat elit, fringilla dignissim nisi quam ac sapien. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Ut et augue turpis, eget tincidunt justo. Sed auctor quam pharetra lorem consequat a consectetur nibh aliquet. Praesent sit amet ipsum et est vulputate fringilla ac vel massa. Donec ac lectus mauris, vel consequat odio. In porttitor venenatis dui, in pharetra dolor hendrerit ut. Aliquam vitae felis quis ipsum porttitor blandit. Donec tempor porttitor velit, a tempor quam auctor quis. Phasellus venenatis vestibulum sem et mattis. Pellentesque augue metus, tristique lacinia egestas id, consectetur accumsan mauris. Suspendisse potenti.</p>
<p>Nam fringilla feugiat tortor, eget varius felis sagittis in. Sed vulputate neque ut lectus ullamcorper sit amet rutrum purus aliquet. Mauris laoreet pellentesque quam, suscipit tincidunt dolor iaculis vel. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur non arcu diam. Mauris in eros sem. Donec at mauris dolor, sed placerat dui. Sed consequat metus sed augue posuere lobortis. Phasellus dictum sodales felis quis interdum. Donec nec magna sed orci pretium volutpat. Proin mauris dui, mattis sit amet sollicitudin quis, tempus quis urna. In cursus iaculis velit eu porttitor. Proin nibh dolor, ultrices vel consequat nec, ultricies id neque. Sed et vehicula orci. Nulla varius leo sed diam porttitor sed faucibus neque pretium.</p>
</div>
<h2>Le résultat voulu</h2>
<div><img src="http://uploads.siteduzero.com/files/208001_209000/208285.png" alt="Vous devez activer les images dans votre navigateur pour pouvoir voir le résultat voulu" /></div>
</body>
</html>
|
Un œil très exercé couplé à un esprit très entraîné pourrait voir le problème, mais on considérera que ce n'est pas le cas de tout le monde.
Regarder le bloc mal positionné
Si on regarde le menu, on peut voir qu'il n'est pas positionné normalement. Il n'est pas centré par rapport à d'autres éléments, c'est-à-dire que tous les éléments sont à des distances inégales de lui. Bref, il est impossible d'obtenir une telle position facilement. Je ne crois pas non plus que le codeur ait pu poser le bloc là en lui mettant même des marges "par accident". C'est donc presque assuré que le menu est poussé par quelque chose d'autre qui prend sa place et qui le force à se déplacer. On ne voit pourtant rien.
C'est là que vous devrez remarquer le petit détail. Voyez-vous que la bordure gauche du menu est très bien alignée sur la bordure droite du logo (un carré gris en l'occurrence

) ? On peut donc suspecter le logo.
Le problème ici est que le logo est entièrement visible. Donc, s'il poussait le menu, on verrait bien du gris foncé qui prend la place. Il faut donc se tourner vers un objet qu'on ne voit pas nécessairement, mais qui a approximativement la même taille que le logo. C'est là qu'on utilisera notre nouvelle amie, la barre d'outils.
Web Developer rentre dans la place
La barre d'outils Web Developer est bien en vue. On va lui indiquer d'entourer en vert tous les éléments
<div>
. Dans le menu
Entourer, sélectionnez
Entourer un élément personnalisé. La fenêtre suivante s'ouvre :
En cliquant sur
OK, vous verrez que chaque
div a été entouré d'une bordure verte. Avec le temps, vous pourrez remarquer de plus en plus facilement celles qui ont des dimensions ou des tailles bizarres.
Avec Web Developer, vous pouvez entourer n'importe quel élément de la page. Vous pouvez aussi spécifier une classe (par exemple .information) ou un ID (par exemple #entete). Web Developer se chargera d'entourer les éléments demandés. Bref, vous pouvez appeler des éléments comme vous le faites dans le CSS !
Lorsque vous aurez repéré le rectangle suspect, nous allons utiliser un autre outil afin de repérer le bloc et d'avoir accès à ses informations. Dans le menu
Entourer, cliquez à nouveau sur
Entourer un élément personnalisé afin de le désactiver, puis sélectionnez
Entourer l'élément survolé, juste au-dessus.
Cette fonction fera en sorte que l'élément que vous survolez s'entoure d'une bordure rouge, et son
id ou sa classe ainsi que ses éléments parents s'affichent dans une barre d'outils temporaire.
Trouver une solution
La question, ici, est « pourquoi ce bloc prend-il toute cette hauteur ? » L'image, qui est le seul élément à l'intérieur, fait 90 pixels de hauteur. Le bloc parent
div#entete
fait également 90 pixels de hauteur. Le bloc
div#entete_gauche
semble être trop haut pour rien. Il suffit de le réduire à 90 pixels.
Code : CSS12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 | div#entete {
width: 750px;
height: 90px;
background-color: #999999;
}
div#entete_gauche {
float: left;
width: 400px;
height: 90px; /* La hauteur est passée de 110 pixels à 90 pixels */
}
div#entete_gauche img {
display: block;
width: 400px;
height: 90px;
background-color: #666666;
}
|
Tester la solution
Courage, on a presque fini.
On va une dernière fois utiliser la barre d'outils Web Developer. La plupart du temps vous pourrez essayer vos solutions directement dans votre éditeur, sauvegarder votre page puis la voir dans le navigateur.
Mais d'autres fois, surtout si vous aidez un Zér0 sur le forum, vous n'aurez pas accès à la modification de sa page. Plutôt que de tout refaire sur votre ordinateur, vous pouvez vous servir des outils d'édition de codes HTML et CSS. Dans notre cas, on aura besoin du CSS.
Attention ! À partir de ce point, lorsque vous ouvrirez la console d'édition CSS, veillez à ne pas changer d'onglet, car vos modifications seront effacées ! Si vous voulez revenir sur cette page pendant que vous travaillez, ouvrez une nouvelle fenêtre.
Donc, allez dans le menu
CSS puis sélectionnez
Éditer les CSS. La console CSS s'ouvre et vous montre le CSS de la page. Allez à la ligne où se trouve l'erreur, puis corrigez-la de la même manière que si vous le faisiez dans l'éditeur. Magie !

La modification s'applique ! Et normalement, vous devriez voir le résultat voulu !