Ich hatte vor, Eric Meyers CSS-Reset zu verwenden, aber ich bin über einige browserübergreifende Unterschiede gestolpert (wie input
Ränder). Auf dieser Grundlage habe ich einen aggressiveren Ansatz entwickelt:
(Dies ist veraltet. Vergessen Sie nicht, die aktuelle, überarbeitete Version am Ende dieser Frage zu prüfen und nach Belieben zu kritisieren)
/* CSS Reset by Hugo Leonardo. Based on Eric Meyer's CSS Reset (just google it). */
* {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font: inherit;
text-decoration: none;
/* in case "font: inherit" fails (IE7) */
font-family: "times new roman";
font-size: 100%;
font-style: normal;
font-variant: normal;
font-weight: normal;
/* remove this block if you DON'T want to support lame browsers */
}
:before, :after {
content: '';
}
:link, :visited, :hover, :active {
color: inherit;
color: #000; /* for IE7 'inherit' problem (again) */
text-decoration: none;
}
:focus {
outline: 0;
}
ol li, ul li {
list-style: none;
}
table {
/* "collapse" here is because of IE7 (maybe others?). don't remove it as it affects other browsers as well */
border-collapse: collapse;
border-spacing: 0;
}
/* this entire block was copied from Eric Meyer's CSS reset */
/* HTML5 "display" reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
Sie funktionierte in allen getesteten Browsern reibungslos:
- IE7
- IE8
- Chrom (neueste Version)
- Firefox (neueste Version)
- Oper (neueste)
Die Frage ist: Sieht irgendjemand hier ein Problem? Ich halte mich für nicht so gut in CSS, so dass ich nicht weiß, ob dies mich in Zukunft in Schwierigkeiten bringen wird.
Obs.: dieses Zurücksetzen ist nur für browserübergreifende Probleme gedacht. Sie sollte (oder muss!) von allgemeinen Regeln für Elemente wie input
, a
, code
und so weiter (z. B: input
des Typs "Text" wäre ohne Rahmen unsichtbar!). Ich werde Dinge hinzufügen wie generische a
Stile und andere Dinge später. Im Moment setze ich alles zurück und entferne (fast) alles, was in den wichtigsten Browsern nicht gleich ist.
BISLANG FESTGESTELLTE PROBLEME
-
En
*
Selektor könnte zu Leistungsproblemen führen. -
En
*
Selektor mit einigen der Regeln überschreiben einige Standardstile von Elementen in einer Weise, dass sie nicht wiederhergestellt werden können. z.B.: der Standardstil einesinput
des Typs "Absenden". -
Überraschenderweise ist die
:before, :after { content: ''; }
hat die Auswahl von Elementen in Firefox unterbrochen. -
In der überarbeiteten Version habe ich versucht, die
margin: 0
zu allen Eingabeelementen. Die meisten Browser ignorierten es für Eingaben vom Typcheckbox
yradio
.
ÜBERARBEITETE FASSUNG
/* CSS Reset by Hugo Leonardo Leão Mota
Based on Eric Meyer's CSS Reset: http://meyerweb.com/eric/thoughts/2011/01/03/reset-revisited/
Helped by fellows in stackoverflow: http://stackoverflow.com/questions/6892982/is-this-css-reset-okay */
/* resetting style for every visible element except 'ruby' family and form controls
browsers deal with controls (and ruby style) in their own way */
a, abbr, acronym, address, b, big, blockquote, body,
br, caption, cite, code, col, colgroup, dd, del, dfn, div,
dl, dt, em, fieldset, form, h1, h2, h3, h4, h5, h6, hr, html, i,
img, ins, kbd, label, legend, li, noscript, object, ol, p, pre, q, samp,
small, span, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, ul, var {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font: inherit;
text-decoration: none;
/* in case "font: inherit" fails (IE7) */
font-family: "times new roman";
font-size: 100%;
font-style: normal;
font-variant: normal;
font-weight: normal;
/* remove this block if you DON'T want to support lame browsers */
}
/* browsers are free to handle controls but
we can't let them mess up with the other elements */
button, select, textarea,
input[type=text], input[type=password], input[type=submit],
input[type=image], input[type=reset], input[type=button], input[type=file] {
margin: 0;
}
:link, :visited, :hover, :active {
color: inherit;
color: #000; /* for IE7 'inherit' problem (again) */
text-decoration: none;
}
:focus {
outline: 0;
}
ol li, ul li {
list-style: none;
}
table {
/* "border-collapse" here is because of IE7 different behaviour (maybe others?).
don't remove it as it affects other browsers as well */
border-collapse: collapse;
border-spacing: 0;
}
/* the next two blocks were copied from Eric Meyer's CSS reset */
blockquote:before, blockquote:after, q:before, q:after {
content: '';
}
/* HTML5 "display" reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
ENDE
Nun, je mehr ich versuchte, meinen Reset zu verbessern, desto mehr sah es so aus meyer's css reset also habe ich meins aufgegeben und es übernommen. funktioniert prima :p