Memento css3 PDF
Memento css3 PDF
Memento css3 PDF
mémento
2 e é d it io n
Ra p ha ë l G o e t t e r
Généralités
CSS 3 est une évolution des langages CSS 1 et CSS 2 présentée sous forme d’une
trentaine de modules distincts, dont une partie est encore à l’état de brouillon.
Préfixes propriétaires
Le W3C propose depuis CSS 2.1 une alternative qui a le mérite de ne pas
bloquer l’évolution des agents utilisateurs : à partir des informations dispensées
dans les spécifications, chaque navigateur a carte blanche pour construire ses
propriétés personnelles dérivées en les faisant précéder d’un préfixe vendeur
propriétaire. Lorsque la spécification atteint le stade de Recommandation
Candidate (CR), le préfixe doit être supprimé. Cela concerne :
■ les propriétés encore non finalisées (ex. -moz-animation , -webkit-
regions) ;
■ les éléments propriétaires (ex. -ms-filter, -ms-zoom, -webkit-mask).
LISTE DES PRÉFIXES
Unités de valeur
DÉFINITION Le viewport représente la partie visible au sein de la fenêtre du navigateur.
Fonctions
■ calc() introduit les fonctions de calcul au sein d’une valeur.
Ex. div {width: calc(100%-20px)}
■ :matches() introduit la notion de factorisation au sein du sélecteur.
Ex. :matches(div, p) a {font-size: 2em} désigne uniquement les liens
descendants d’un <div> ou d’un <p>.
COMPATIBILITÉ
Ces fonctions ne sont actuellement prises en charge que par un faible nombre de
navigateurs : Firefox 4+, Chrome 12+, et, dans certains cas, Internet Explorer 9+.
Sélecteurs
■ :lang : cible un élément selon sa langue ou celle du document.
■ :last-child : dernier enfant d’un élément.
■ :nth-child : nième enfant d’un élément.
■ :nth-last-child : nième enfant en commençant par la fin.
■ :first-of-type : 1er enfant du type désigné.
■ :nth-of-type : nième du type désigné.
■ :last-of-type : dernier du type désigné.
■ :nth-last-of-type : nième enfant d’un type en commençant par la fin.
■ :only-child : enfant unique.
■ :only-of-type : élément unique du type désigné.
■ :empty : élément sans enfants.
■ :target : cible d’une ancre.
Ex. <a href="#cible">... <h1 id="cible">
■ :not : négation d’un sélecteur.
Ex. p:not(.bloc) désigne tous les paragraphes, sauf les éléments de classe
bloc.
Sélecteurs d’attributs
■ attr^="kiwi"] : sélection si l’attribut attr débute par la chaîne « kiwi ».
■ attr$="kiwi"] : si l’attribut finit par la chaîne « kiwi ».
■ attr*="kiwi"] : si l’attribut contient la sous-chaîne « kiwi » au sein de
la chaîne contenant la valeur.
■ attr~="kiwi"] : si l’attribut contient exactement « kiwi » au sein de
valeurs séparées par des espaces.
■ attr|="kiwi"] : si l’attribut débute par « kiwi » au sein de valeurs
séparées par des traits-d’union.
Sélecteurs de formulaires
■ :enabled : élément actif.
■ :disabled : élément inactif.
■ :checked : élément coché.
■ :required : élément requis pour la soumission.
■ :optional : élément optionnel lors de la soumission.
■ :valid : élément qui remplit les exigences de son type.
■ :invalid : élément qui ne remplit pas (encore) les exigences.
COMPATIBILITÉ Sélecteurs de formulaires
Firefox Chrome Safari Opera IE
10.0+
4.0+ 10+ 5.0+ 10.5+
9+ pour :checked
Media Queries
Grâce aux « requêtes de média » CSS, il devient possible de limiter la portée
de styles à un environnement défini par un (ou plusieurs) des critères suivants :
■ width, height : dimension (largeur, hauteur) de la zone d’affichage ;
COMPATIBILITÉ
Firefox Chrome Safari Opera MSI Explorer
3.5+ 9.0+ 4.0+ 10.5+ 9.0+
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
3.0+ 9+ 3.1+ 10.5+ 8.0+
■ word-wrap:
normal
break-word
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
3.5+ 9.0+ 3.1+ 10.5+ 6.0+
■ text-overflow:
clip
ellipsis
chaîne
; #intro {text-overflow: ellipsis;}
visible
;
hidden
■ overflow-x: scroll p {overflow-x: auto;
■ overflow-y: auto overflow-y: hidden;}
no-display
no-content
Variantes spécifiques de la propriété CSS 2 overflow, qui agissent sur
un seul axe à la fois : overflow-x gère les débordements horizontaux et
overflow-y les dépassement verticaux.
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
3.0+ 9.0+ 3.1+ 10.5+ 6.0+
auto
■ overflow-style:
scrollbar
panner
move
marquee
; #advert {overflow-style:
marquee;}
normal
;
icon
window
■ appearance: button
div {appearance: button;}
menu
field
Donner un rendu d’élément d’interface utilisateur standard du navigateur.
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
1+ 1+ 3.0+ non non
none
■ resize:
both
horizontal
vertical
; textarea {resize: vertical;}
■ font-smoothing:
none
subpixel-antialiased
antialiased
; body {font-smoothing:
antialiased;}
wider
narrower
ultra-condensed
extra-condensed
;
condensed
semi-condensed
■ font-stretch: normal
h1 {font-stretch: expanded;}
semi-expanded
expanded
extra-expanded
ultra-expanded
inherit
Étirer ou condenser une famille de police.
COMPATIBILITÉ
#stroke {
■ text-stroke:
text-fill-color
text-stroke-color
text-stroke-width
; text-fill-color: #fff;
text-stroke-color: lightblue;
text-stroke-width: 2px;
}
auto
inter-word
inter-ideograph div {
■ text-justify:
inter-cluster
distribute
kashida
; text-align:justify;
text-justify:inter-word;
}
trim
newsletter
Affiner le calcul de l’interlettrage sur les contenus de textes justifiés. Par
exemple, la valeur newsletter justifie les lignes en distribuant un espace
de remplissage entre les mots et entre les caractères.
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
non non non non non
normal
■ white-space:
pre
nowrap
pre-wrap
pre-line
; div {white-space: pre;}
Comment traiter les espaces blancs entre les mots ou les éléments.
COMPATIBILITÉ
normal
■ text-wrap:
none
unrestricted
suppress
; footer {text-wrap: suppress;}
Propriétés décoratives
■ @font-face Afficher une police exotique embarquée sur le serveur.
Exemple :
@font-face {
font-family: “Kiwi”;
src: url(‘Kiwi-Regular.ttf’) format(“truetype”), url(‘Kiwi-Regular.
woff’) format(“woff”);
}
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
3.5+ 9.0+ 3.2+ 10.5+ 6.0+
Propriétés décoratives
■ opacity:
valeur entre 0 et 1
inherit ; #nav a {opacity: 0.6;}
.bloc {
border-radius: 15px 0 15px 0 /
■ border-
radius:
longueur (éventuellement par
paires : longueur 1/longueur 2)
pourcentage
; 30px 0 30px 0;
/* angle 1,2,3,4 horizontal /
1,2,3,4 vertical */
}
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
3.0+ 9.0+ 3.1+ 10.5+ 9.0+
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
3.5+ 9.0+ 3.1+ 10.5+ non
Pre {
■ outline-offset:
nombre
inherit ; outline: solid 1px orange;
outline-offset: 5px;
}
;
décalage vertical en bas
8px 8px 10px #aaa;}
fondu
■ box-shadow: (taille)
/* 8px à droite et en
bas, 10px de diffusion
couleur
et couleur #aaa */
(inset / outset)
Ajouter une ombre portée sur n’importe quel élément HTML. La valeur
optionnelle inset diffuse l’ombre à l’intérieur de la boîte.
COMPATIBILITÉ
Firefox Chrome Safari Opera MSI Explorer
3.5+ 9.0+ 3.1+ 10.5+ 9.0+
;
décalage horizontal à droite
h1 {text-shadow:
décalage vertical en bas
■ text-shadow: fondu
2px 2px 4px
#999;}
couleur
Créer une ombre portée sous un texte de contenu.
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
3.5+ 9.0+ 3.1+ 10.5+ 10.0+
Arrière-plans
Images multiples
CSS 3 rend possible l’affichage de plusieurs images d’arrière-plan sur un
même élément, en cumulant les valeurs au sein des propriétés background-
image, background-position et background-repeat, ces valeurs étant
simplement séparées par une virgule.
Exemple :
div {
background: url(“first.jpg”) left top no-repeat, url(“second.jpg”)
right bottom no-repeat;
}
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
3.6+ 9.0+ 3.1+ 10.5+ 9.0+
Propriétés décoratives
Dégradé linéaire
La valeur linear-gradient de la propriété background-image permet de
générer des arrière-plans de couleur dégradée, d’une couleur à l’autre ou
via plusieurs couleurs intermédiaires (dites « couleurs stop »).
orientation du dégradé :
to top / to right / to
.button { back-
■ back-ground-
image:
bottom / to left
ou angle
couleurs
(position des couleurs stop
; ground-image: linear-
gradient(to right,
#D3DAE9, #576E94);}
en pourcentage)
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
3.6+ 9.0+ 4.0+ 11.1+ 10.0+
Dégradé radial
La valeur radial-gradient de la propriété background-image permet
de générer des arrière-plans de couleur dégradée radiale, d’une couleur à
l’autre ou via plusieurs couleurs intermédiaires (couleurs stop).
orientation du dégradé :
to top / to right / to
;
bottom / to left
div {background-image:
■ background- ou angle
radial-gradient(to right,
image: forme : circle / ellipse
blue, orange 25%)}
couleurs
(position des couleurs stop
en pourcentage)
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
3.6+ 10.0+ 5.1+ 11.1+ 10.0+
;
longueur
pourcentage url(background.jpg)
■ background-size: cover left top no-repeat;
contain background-size: 80% 80%;
}
Spécifier les dimensions des images d’arrière-plan dans le but de les adapter
à celles de l’élément sur lequel elles sont appliquées. cover (optionnelle) redi-
mensionne l’image à la taille minimale pouvant être contenue, et contain à la
taille maximale.
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
3.6+ 9.0+ 4.0+ 10.5+ 9.0+
Propriétés décoratives
■ background-clip:
padding-box
border-box
content-box
; p {background-clip:
content-box;}
■ background-
origin:
padding-box
border-box
content-box
; p {background-origin:
padding-box;}
Propriétés de positionnement
Multicolonnage
CSS 3 offre la possibilité de présenter un texte sur plusieurs colonnes, à
l’instar des journaux papier, via la propriété raccourcie column et ses
propriétés dérivées :
■ column-count: : nombre de colonnes ;
Propriétés :
■ display: flex : attribution du modèle flexible (autre valeur : inline-flex) ;
■ flex-direction: : sens d’affichage (valeurs : row column, reverse-raw,
reverse-column) ;
■ order: : ordre d’affichage (pondération) ;
NOTE Les spécifications sur Flexible Box Model ont été radicalement modifiées en
mars 2012. Un certain nombre de propriétés ont été renommées et leurs fonctions
précisées. Nous adoptons ici les dernières conventions de nommage.
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
3.5+ 10.0+ 3.2+ non 10.0+
Regions
Modèle de positionnement destiné à répartir du contenu au sein de zones
distinctes.
Exemple :
article {
flow-into: article_flow;
}
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
non non non non 10.0+
Exclusions et Shapes
Surfaces définies dans lesquelles le contenu peut (ou ne pas) s’écouler.
Exemple :
#exclusion { wrap-flow: both; } /* le contenu s’écoule autour
de la forme */
#rond { shape-inside: circle; } /* le contenu s’écoule dans
une forme circulaire */
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
non non non non non
Transformations
Transform
rotate() rotation de l’élément
scale(), scaleX(), scaleY()
;
zoom (agrandissement ou réduction)
■ transform: translate(), translateX(), translateY()
translation selon l’axe X et/ou Y
skewX(), skewY() déformation de l’élément
matrix() matrice mathématique
Exemple :
a:hover , a:focus {
transform: scale(2) rotate(15deg) translate(5px,10px);
}
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
3.5+ 10.0+ 3.2+ 10.6+ 9.0+
Transform 3D
Propriétés :
■ transform-origin ■ perspective-origin
■ transform-style ■ backface-visibility
■ perspective
Exemple :
div {transform-style: preserve-3d; transform: rotateY(10deg)}
COMPATIBILITÉ
Les propriétés concernées par les transitions sont toutes celles qui peuvent
être définies par une valeur numérique : width, height, min/max-width,
min/max-height, position, margin, padding, mais aussi background,
opacity, font-weight, text-shadow, color, line-height, vertical-align,
letter-spacing, visibility, z-index, etc.
Exemple :
#nav a {transition: all 0.5s ease-in;}
COMPATIBILITÉ
Firefox Chrome Safari Opera IE
4.0+ 10.0+ 3.2+ 10.6+ 10.0+
Animations
animation: est la propriété raccourcie, dont sont dérivées les propriétés :
■ animation-name : nom de l’animation ;
■ animation-duration : durée totale ;
■ animation-delay : attente avant le début de l’animation ;
Rodolphe Rimelé
Rodolphe Rimelé
Mémento HTML5
978-2-212-13420-9
Ergonomie
web
Amélie Boucher
2eédition
Mémento - Ergonomie web
Amélie Boucher
978-2-212-12698-3
mémento mémento
web
Les bonnes pratiques
Sites
978-2-212-12802-4
PHP5 I n d ust r ia lisa t ion
Jean-François Lépine
Outils &
bonnes pratiques Mémento -
Jean-Franç ois L ép in e
Industrialisation PHP 5
978-2-212-13480-3
Raphaël Goetter
CSS avancées
978-2-212-13405-6
Rodolphe Rimelé
HTML5
978-2-212-12982-3
@ebookEyrolles
EbooksEyrolles