Recommend several mainstream Css Reset

CSS Reset

CSS Reset (CSS reset) is a technology used to eliminate the differences in default styles between different browsers, so as to ensure the consistency of the display of web pages in each browser. Since different browsers have different default styles for elements, using CSS Reset can zero or unify these default styles, thus providing developers with a clean starting point to build custom styles.

A CSS Reset usually consists of a series of CSS rules used to reset the attribute values of HTML elements to a consistent initial state. These rules may set properties such as margins, padding, font size, line height, etc. to the same value to smooth out differences between browsers.

Common CSS Reset methods include using Normalize.css and Eric Meyer’s Reset CSS. Normalize.css is a widely used CSS Reset library that provides a consistent cross-browser experience by preserving useful default styles and correcting differences between browsers. Eric Meyer’s Reset CSS is one of the classic CSS Reset methods, it resets the style of most HTML elements to zero and provides a basic starting point for layout.

When using CSS Reset, you need to pay attention to the following points:

  1. Learn about the specific implementation and impact of the chosen CSS Reset method.
  2. Introduce the CSS Reset file before other style files to ensure that the style reset takes effect.
  3. Be aware of issues that may affect existing styles and require proper testing and adjustments in your project.

CSS Reset is a technique to eliminate differences in browser default styles, which can provide developers with a consistent starting point to build web page styles and improve cross-browser compatibility.

For more exciting content, please search WeChat for “Front-End Enthusiast, Poke me to view.

Common Css Reset

Eric Meyer’s “Reset CSS” (reset is extreme)

Official website: https://meyerweb.com/eric/tools/css/reset/

/* 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;
}

HTML5 Doctor CSS Reset

Official website: http://html5doctor.com/html-5-reset-stylesheet/

/**
* html5doctor.com Reset Stylesheet v1.6.1 (http://html5doctor.com/html-5-reset-stylesheet/)
* Richard Clark (http://richclarkdesign.com)
* http://cssreset.com
*/

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr, th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video {<!-- -->
margin:;
padding:;
border:;
outline:;
font-size: 100%;
vertical-align: baseline;
background:transparent;
}
body {<!-- -->
line-height:;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {<!-- -->
display: block;
}
nav ul {<!-- -->
list-style: none;
}
blockquote,q {<!-- -->
quotes:none;
}
blockquote:before, blockquote:after, q:before, q:after {<!-- -->
content:'';
content:none;
}
a {<!-- -->
margin:;
padding:;
font-size: 100%;
vertical-align: baseline;
background:transparent;
}
/* change colors to suit your needs */ins {<!-- -->
background-color: #ff9;
color:#000;
text-decoration: none;
}
/* change colors to suit your needs */mark {<!-- -->
background-color: #ff9;
color:#000;
font-style: italic;
font-weight: bold;
}
del {<!-- -->
text-decoration: line-through;
}
abbr[title],dfn[title] {<!-- -->
border-bottom: 1px dotted;
cursor: help;
}
table {<!-- -->
border-collapse: collapse;
border-spacing:;
}
/* change border color to suit your needs */hr {<!-- -->
display: block;
height: 1px;
border:;
border-top:1px solid #cccccc;
margin: 1em 0;
padding:;
}
input,select {<!-- -->
vertical-align: middle;
}

Yahoo! (YUI 3) Reset CSS (recommended)

Official URL: http://developer.yahoo.com/yui/3/cssreset/

/** * YUI 3.5.0 - reset.css (http://developer.yahoo.com/yui/3/cssreset/)
* http://cssreset.com
* Copyright 2012 Yahoo! Inc. All rights reserved.
* http://yuilibrary.com/license/
*//* TODO will need to remove settings on HTML since we can't namespace it. TODO with the prefix, should I group by selector or property for weight savings?
*/

html {<!-- -->
color:#000;
background:#FFF;
}
/* TODO remove settings on BODY since we can't namespace it.
*//* TODO test putting a class on HEAD.
- Fails on FF.
*/

body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td { <!-- -->
margin:;
padding:;
}
table {<!-- -->
border-collapse: collapse;
border-spacing:;
}
fieldset,img {<!-- -->
border:;
}
/* TODO think about hanlding inheritance differently, maybe letting IE6 fail a bit...*/
address,caption,cite,code,dfn,em,strong,th,var {<!-- -->
font-style: normal;
font-weight: normal;
}
ol,ul {<!-- -->
list-style: none;
}
caption,th {<!-- -->
text-align: left;
}
h1,h2,h3,h4,h5,h6 {<!-- -->
font-size: 100%;
font-weight: normal;
}
q:before,q:after {<!-- -->
content:'';
}
abbr,acronym {<!-- -->
border:;
font-variant: normal;
}
/* to preserve line-height and selector appearance */
sup {<!-- -->
vertical-align: text-top;
}
sub {<!-- -->
vertical-align: text-bottom;
}
input, textarea, select {<!-- -->
font-family: inherit;
font-size: inherit;
font-weight: inherit;
}
/*to enable resizing for IE*/
input, textarea, select {<!-- -->
*font-size:100%;
}
/*because legend doesn't inherit in IE */
legend {<!-- -->
color:#000;
}
/* YUI CSS Detection Stamp */#yui3-css-stamp.cssreset {<!-- -->
display:none;
}

Use the universal selector “*”

* {<!-- -->
    margin: 0;
    padding: 0;
}

Normalize.css (recommended, because the reset is more standardized, not very extreme)

Official website: http://necolas.github.io/normalize.css/

  • normalize.css: Preserves valuable defaults
  • normalize.css: fixed browser bug
  • normalize.css: is modular
  • normalize.css: has detailed documentation
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
 
/* Document
   ==================================================== =========================== */
 
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {<!-- -->
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}
 
/* Sections
   ==================================================== =========================== */
 
/**
 * Remove the margin in all browsers.
 */
body {<!-- -->
  margin: 0;
}
 
/**
 * Render the `main` element consistently in IE.
 */
main {<!-- -->
  display: block;
}
 
/**
 * 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;
}
 
/* Grouping content
   ==================================================== =========================== */
 
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {<!-- -->
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}
 
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {<!-- -->
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}
 
/* Text-level semantics
   ==================================================== =========================== */
 
/**
 * Remove the gray background on active links in IE 10.
 */
a {<!-- -->
  background-color: transparent;
}
 
/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {<!-- -->
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}
 
/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {<!-- -->
  font-weight: bolder;
}
 
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {<!-- -->
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}
 
/**
 * Add the correct font size in all browsers.
 */
small {<!-- -->
  font-size: 80%;
}
 
/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {<!-- -->
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
 
sub {<!-- -->
  bottom: -0.25em;
}
 
sup {<!-- -->
  top: -0.5em;
}
 
/* Embedded content
   ==================================================== =========================== */
 
/**
 * Remove the border on images inside links in IE 10.
 */
img {<!-- -->
  border-style: none;
}
 
/* Forms
   ==================================================== =========================== */
 
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {<!-- -->
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}
 
/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {<!-- --> /* 1 */
  overflow: visible;
}
 
/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {<!-- --> /* 1 */
  text-transform: none;
}
 
/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {<!-- -->
  -webkit-appearance: button;
}
 
/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {<!-- -->
  border-style: none;
  padding: 0;
}
 
/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {<!-- -->
  outline: 1px dotted ButtonText;
}
 
/**
 * Correct the padding in Firefox.
 */
fieldset {<!-- -->
  padding: 0.35em 0.75em 0.625em;
}
 
/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 * `fieldset` elements in all browsers.
 */
legend {<!-- -->
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}
 
/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {<!-- -->
  vertical-align: baseline;
}
 
/**
 * Remove the default vertical scrollbar in IE 10 + .
 */
textarea {<!-- -->
  overflow: auto;
}
 
/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {<!-- -->
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}
 
/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {<!-- -->
  height: auto;
}
 
/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {<!-- -->
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}
 
/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {<!-- -->
  -webkit-appearance: none;
}
 
/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {<!-- -->
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}
 
/* Interactive
   ==================================================== =========================== */
 
/*
 * Add the correct display in Edge, IE 10 + , and Firefox.
 */
details {<!-- -->
  display: block;
}
 
/*
 * Add the correct display in all browsers.
 */
summary {<!-- -->
  display: list-item;
}
 
/* Misc
   ==================================================== =========================== */
 
/**
 * Add the correct display in IE 10 + .
 */
template {<!-- -->
  display: none;
}
 
/**
 * Add the correct display in IE 10.
 */
[hidden] {<!-- -->
  display: none;
}

Which CSS Reset is best

Choosing the best CSS Reset depends on project needs and personal preference.

The most suitable CSS Reset depends on your project needs.

Normalize.css is recommended if you want to preserve default styles as much as possible and fix browser inconsistencies.

If you’re more inclined towards completely custom styling, Eric Meyer’s Reset CSS might be a better fit.

And if you want to change the default box model calculation method, CSS Box Sizing Border Box is a good choice.

Most importantly, before using any CSS Reset method, make sure you understand how it works, and test how it works in your project.

Reference Documentation:

  • https://www.zhankr.net/76634.html