Normalisieren.css
Normalize.css ist eine kleine CSS-Datei, die browserübergreifende Konsistenz bei der Standardgestaltung von HTML-Elementen bietet.
Das bedeutet, dass, wenn wir uns die W3C-Standards der von den Browsern angewandten Stile ansehen und es eine Inkonsistenz in einem der Browser gibt, die normalize.css
Stile wird der Browser-Stil, der den Unterschied aufweist, korrigiert.
Aber in einigen Fällen können wir die fehlerhaften Browser nicht gemäß dem Standard reparieren, in der Regel wegen des IE oder EDGE. In diesen Fällen werden die Korrekturen in der Normalisierung die IE- oder EDGE-Stile auf den Rest der Browser anwenden.
Beispiel aus der Praxis
Chrome, Safari und Firefox rendern <h1>
Tags, die sich innerhalb einer <article>
/ <aside>
/ <nav>
/ <section>
Tag mit einer Schriftgröße, die kleiner ist als die eines unabhängigen Tags, und mit einer anderen Randgröße. Dies sind die User-Agent-Stile in Chrome, Safari und Firefox im Falle eines <h1>
Tag innerhalb eines <article>
/ <aside>
/ <nav>
/ <section>
Tag
:-webkit-any(article,aside,nav,section) h1 {
font-size: 1.5em;
margin-block-start: 0.83em;
margin-block-end: 0.83em;
}
Beispiel:
/*
Correct the font size and margin on `h1` elements within `section` and `article`
contexts in Chrome, Firefox, and Safari.
*/
h1 { font-size: 2em; margin: 0.67em 0;}
CSS zurücksetzen
Reset CSS verfolgt einen anderen Ansatz und besagt, dass wir die Standardstile des Browsers überhaupt nicht brauchen. Die Stile, die wir brauchen, werden wir im Projekt nach unseren Bedürfnissen definieren. CSS Reset" setzt also alle Stile zurück, die mit dem User Agent des Browsers geliefert werden.
Dieser Ansatz funktioniert im obigen Beispiel gut, da die <h1>
a <h6>
Standardstile: In den meisten Fällen wollen wir weder die Standardstile des Browsers font-size
noch die Standardeinstellung des Browsers margin
.
Hier ist ein Beispiel dafür, wie ein kleiner Teil von CSS Reset aussieht
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;
}
In der CSS-Reset-Methode werden alle HTML-Tags so definiert, dass sie keine Polsterung, keinen Rand, keinen Rahmen, die gleiche Schriftgröße und die gleiche Ausrichtung haben.
Das Problem mit CSS-Resets ist, dass sie hässlich sind: sie haben eine große Kette von Selektoren, und sie machen eine Menge von unnötigen Überschreibungen. Und was noch schlimmer ist, sie sind bei der Fehlersuche unlesbar.
Aber es gibt immer noch Stile, die wir lieber zurücksetzen, wie <h1>
a <h6>
, <ul>
, <li>
und so weiter.