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.

Note aux étudiants : Il est utile de connaître le rôle des préfixes mais d’ici peu, ils seront facultatifs. En 2016, la règle est de ne plus préfixer à la main.
  • -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 : css vous obtiendrez

quelques options pratiques !
quelques options pratiques !