Reset
Le faux reset
Les réglages de bases ne sont pas mauvais mais peuvent parfois perturber, vous verrez dans certains exemples cette ligne.
*{padding:0;margin:0} /* tous les éléments ont leurs marges à 0 */
C’est rapide mais peu élégant, bref à utiliser uniquement pour un prototype.
Le reset d’Eric Meyer
Face aux différences des CSS « internes » et propres à chaque navigateur, il existe des solutions pour partir sur une bonne base commune.
La plus célèbre est le reset d’Eric Meyer.
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
Une fois celui-ci ajouté, il faudra tout régler (taille des titres, marges…).
Normalize
D’une philosophie différente, Normalize propose une base avec des réglages « logiques » pour afficher des résultats moins variables et plus normés sur tous les navigateurs.
See the Pen Normalize v4.2 by Benoît Wimart (@benoitwimart) on CodePen.
Préfixes vendeurs
Les préfixes permettent aux navigateurs d’interpréter certaines propriétés (plus récentes). Pour rendre vos CSS compatibles avec la plupart des navigateurs, il faudra préfixer votre code.
-moz-pour Gecko (Mozilla Firefox)-webkit-pour Webkit (Chrome, Safari…)-ms-pour Microsoft (Internet Explorer 10)-o-pour Opera
Dans la pratique, ce n’est pas simple :
/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#000000+0,000000+100&0.65+0,0+100;Neutral+Density */
background: -moz-linear-gradient(top, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0) 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(top, rgba(0,0,0,0.65) 0%,rgba(0,0,0,0) 100%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(to bottom, rgba(0,0,0,0.65) 0%,rgba(0,0,0,0) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a6000000', endColorstr='#00000000',GradientType=0 ); /* IE6-9 */
Un outil existe, il s’appelle Autoprefixer, une extension est disponible pour Brackets.
Codepen
En appuyant sur ce bouton : vous obtiendrez