在處理不同瀏覽器的相容性最痛苦的就是CSS無法相容,因此在引入自己的CSS前,將各瀏覽器的CSS Reset歸零,完全由自己設定,更能達到自己的開發需求
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;
}
Normailize.css
Normailize則是跨瀏覽器的將CSS統一正規化,讓個瀏覽器的預設值一致,是另外一個處理跨瀏覽器CSS的方法
/*! 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;}
參考
Normalize CSS or CSS Reset?!
CSS Tools: Reset CSS
https://meyerweb.com/eric/tools/css/reset/