TP : CSS - Jacksay.com

Transcription

TP : CSS - Jacksay.com
TP3 : CSS
Technologies du web
Stéphane Bouvry, 2014
1. Objectif
Utilisation des CSS
2. Diapos
CSS : http://goo.gl/1A5eiR
URL : http://goo.gl/ZOh2mX
2.1. Classes CSS
Les classes CSS sont les plus utilisées en production. Elles permettent de définir des styles
indépendament des balises auquels on les applique.
Pour déclarer une classe CSS, on utilise .nomDeLaClasse où nomDeLaClasse est un nom de votre
choix. Ce nom ne peut pas commencer par un nombre et doit être composé de minuscules,
majuscules, nombres (les tirets et les underscore sont autorisés). Par exemple : mon-style,
monStyle ou mon_stye.
Exemple de déclaration :
.texte-en-rouge {
color: #DD0000;
}
.fond-vert{
background-color: #00DD00;
}
Dans cet exemple, nous avons déclaré 2 classes CSS. Nous pouvons maintenant les utiliser sur
n'importe quel élément du HTML en utilisant l'attribut class :
<section>
<article>
<h1 class="texte-en-rouge">TEXTE en ROUGE</h1>
<p class="fond-vert">Fond en vert</p>
</article>
</section>
On peut également appliquer plusieurs classes CSS à un même élément en renseignant l'attribut
class avec toutes les classes séparées par des espaces :
<section>
<nav class="texte-en-rouge fond-vert">
<a href="">LIEN 1</a>
<a href="">LIEN 2</a>
</nav>
<article>
<h1 class="texte-en-rouge">TEXTE en ROUGE</h1>
<p class="fond-noir">Fond en vert</p>
</article>
</section>
2.2. Mise en forme
CSS permet de gérer la mise en forme des documents HTML, dans cette partie, Vous allez devoir
réaliser un menu horizontal.
Vous pouvez vous rendre sur le site https://developer.mozilla.org/fr/ pour trouver des
exemples pour l'utilisation des propriétés CSS évoquées dans la suite du document.
Exercice
Menu simple
A partir du code HTML suivant :
<nav>
<a href="#">Accueil</a>
<a href="#">Personnages</a>
<a href="#">Saisons</a>
<a href="#">Epiosdes</a>
<a href="#">Contact</a>
</nav>
Créez un code CSS pour générer le menu suivant :
Menu horizontal simple
Voici quelques propriétés CSS utiles pour le réaliser :
text-align
background-color
text-decoration
font-family
padding
Icônes
Modifiez ensuite le HTML en ajoutant des classes à chaques items du menu,
<nav>
<a href="#" class="accueil">Accueil</a>
<a href="#" class="personnages">Personnages</a>
<a href="#" class="saisons">Saisons</a>
<a href="#" class="episodes">Epiosdes</a>
<a href="#" class="contact">Contact</a>
</nav>
puis créez les classes CSS correspondantes pour ajouter des icônes aux items du menu :
Menu horizontal simple
Vous pouvez utiliser le site http://www.inconfinder.com pour trouver des icônes adaptés. Dans ce
cas de figure, le format PNG permettra de gérer correctement le rendu des icones avec différentes
couleurs d'arrière-plan.
Voici d'autres propriétés CSS utiles pour réaliser cette étape :
background-image
background-position
background-repeat
padding-left
Effet
Dans le cadre de la réalisation d'un menu de ce type, il peut être interessant de souligner
l'interactivité en ajoutant un effet au survolle.
CSS permet ce genre de rendu avec le pseudo selecteur :hover.
Vous voulez essayer d'ajouter cette régle à votre fichier CSS :
nav a:hover {
background-color: #ff6600;
}
Ce type d'effet n'est pas spécifique au liens hypertextes, le pseudo selecteur :hover
peut être utilisé sur n'importe quel élément.
3. Propriétés usuels
Lors de la production de style CSS, beaucoup de propriétés entre en jeu pour produire l'effet visuel
souhaité. Voici quelques propriétés que vous devez maitriser pour obtenir le rendu que vous
désirez.
3.1. Margin, padding et border
Pour comprendre la différence entre margin et padding, créez un fichier HTML :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Margin et Padding</title>
<link rel="stylesheet" href="margin-padding.css" />
</head>
<body>
<div class="exemple">
Contenu
</div>
</body>
</html>
Puis dans le fichier CSS margin-padding.css :
.exemple {
background-color: #FF6600;
}
Vous verrez la div s'afficher avec un fond orange et le contenu texte de la div à l'intérieur. La zone
orange est appelée par les intégrateurs web une boîte.
Padding
La propriétés CSS padding permet de gérer l'espace entre le bord de la boîte et le contenu de la
boîte.
.exemple {
background-color: #FF6600;
/* Espace entre le bord et le contenu */
padding: 20px;
}
Vous pouvez régler également les padding individuellement en précisant la direction :
.exemple {
padding-top: 25px; /* padding en haut */
padding-right: 20px; /* padding à droite */
padding-bottom: 25px; /* padding en bas */
padding-left: 25px; /* padding à gauche */
}
Une forme compactée permet de régler 4 padding en utilisant plusieurs valeurs séparées par des
espaces :
4 valeurs, réglage haut, droite, bas, gauche :
.exemple {
/* haut, droite, bas, gauche */
margin: 10px 25px 0px 50px;
}
3 valeurs, réglage haut, droite et gauche, bas :
.exemple {
/* haut, droite et gauche, bas */
margin: 10px 25px 0px;
}
2 valeurs, réglage haut et bas, droite et gauche :
.exemple {
/* haut et bas, droite et gauche */
margin: 10px 25px;
}
Margin
La propriétés CSS margin va elle gérer l'espace autour de la boîte :
.exemple {
background-color: #FF6600;
/* Espace entre le bord et le contenu */
padding: 20px;
/* Espace autour de la boîte */
margin: 50px;
}
Comme pour margin, padding dispose de forme compactée avec plusieurs valeurs séparées par
des espaces ainsi que les formes individuelles margin-top, margin-right, margin-bottom et
margin-left.
Border
Enfin, la propriété border va permet de régler la bordure de la boîte, cette propriété ne prend pas
une valeur, mais 3 valeurs séparées par un espace. Ces 3 valeurs correspondent respectivement à
l'aspect de la bordure, la taille de la bordure et la couleur :
.exemple {
background-color: #FF6600;
/* Espace entre le bord et le contenu */
padding: 20px;
/* Espace autour de la boîte */
margin: 50px;
/* Bordure */
border: solid 8px #990000;
}
La taille de la bordure peut être exprimée en em ou en pixels. Concernant les bordures, il existe
également une valeur spéciale : thin. Cette valeur appliquera la taille minimum visible.
La couleurs comme les couleurs classiques (mots-clefs ou valeur hexadécimale).
Voici les différentes apparences possibles :
solid : plein (normal)
dashed : tirets
dotted : pointillés
double : 2 liserés espacé (l'espace correspond à la taille de la bordure)
groove : effet moche gravure
inset : effet creusé
outset : effet relief
ridge : gravure en relief
Comme pour margin et padding, border dispose de forme individuelles et compacté. Plus
d'information sur cette page https://developer.mozilla.org/fr/docs/Web/CSS/border
4. Effets visuels
L'apparence des boîtes peut être ajustée avec différentes propriétés :
4.1. border-radius
Arrondis des angles
.exemple {
border-radius: 16px;
}
On peut utiliser plusieurs valeurs séparées par des espaces pour utiliser des arrondis différents :
https://developer.mozilla.org/fr/docs/Web/CSS/border-radius
4.2. Ombre externe
Externe
.exemple {
box-shadow: -8px 8px 16px 4px #000000;
}
La première valeur correspond au décalage en X, la deuxième au décalage Y, la troisième à la taille
de l'effet de fondu, la 4ème l'épaisseur (facultative) et enfin la couleur.
Interne
Même principe, sauf qu'on précède les réglages de l'ombre avec le mot clef inset :
.exemple {
box-shadow: inset -8px 8px 16px #000000;
}
Mixte
Vous pouvez appliquer plusieurs ombres (interne ou externe) et listant les réglages séparés par une
virgules :
.exemple {
box-shadow: inset -8px 8px 16px #000000, -8px 8px 16px #000000;
}
5. Maîtriser les sélecteurs
5.1. Rédiger des sélecteurs
Soit le fichier HTML suivant :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Ma page web</title>
</head>
<body>
<div id="container">
<header>
<h1>The Walking dead</h1>
<p>Comics book</p>
<nav>
<a href="index.html">Accueil</a>
<a href="personnages.html">Personnages</a>
<a href="comics.html">Les comics</a>
<a href="contact.html">Contact</a>
</nav>
</header>
<main>
<!-- Les personnages -->
<section id="personnages">
<h2>Personnages</h2>
<article class="personnage">
<h3>Rick</h3>
<p>Lorem ipsum</p>
<a href="personnages/rick.html">Lire la suite</a>
</article>
<article class="personnage">
<h3>Michonne</h3>
<p>Lorem ipsum</p>
<a href="personnages/michonne.html">Lire la suite</a>
</article>
</section>
<!-- Les comics -->
<section id="comics">
<h2>Comics</h2>
<article class="comics">
<h3>Livre 1 : Passé décomposé</h3>
<p>Lorem ipsum</p>
<a href="personnages/livre-1.html">Lire la suite</a>
</article>
<article class="comics">
<h3>Livre 2 : Cette vie derrière nous</h3>
<p>Lorem ipsum</p>
<a href="personnages/livre-2.html">Lire la suite</a>
</article>
</section>
</main>
<footer>
Copyright &copy; Jacksay.com
</footer>
</div>
</body>
</html>
Pour le fichier HTML donné et sans y apporter de modification, écrivez les déclarations CSS
permettant de :
mettre le fond du site en gris foncé,
mettre tous les textes en gris clair,
L’arrière-plan du titre du site en rouge et le texte en blanc,
supprimer le soulignement des liens du menu principal,
mettre le contenu des articles sur les personnages en blanc sur noir,
mettre le contenu des articles sur les comics en rouge sur noir,
mettre le texte du pied de page en caractère 8px,
afficher les titres des articles en majuscules,
afficher les liens "lire la suite" avec un aspect bouton,
afficher la baseline du site en italique,
5.2. Déduction
Le sélecteur CSS article p correspond au code source HTML suivant :
<article>
<p>toto</p>
</article>
De la même façon, écrivez pour les sélecteurs suivants, le code HTML (minimale) correspondant.
a
article h1
#contenu
.important
section.actualites article h1
main section article.ancien
section article.stickly a
header.bandeau nav a
article.nouveau.truc
article.nouveau header h1
main section.actualites section.culture article.art footer p.auteur strong