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.0
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
