total-reset.css/dist/full-reset.css

387 lines
9.5 KiB
CSS

/**
* 1. Set all visible elements with default inline, inline-block and block to
* display as blocks.
*
* This might be controversial, but my position is that inline vs block
* display is a visual style and that block display is the most reasonable
* default for consistent styling. Rather than maintaining a mental map of
* which elements are _supposed_ to be inline vs block you can always rely
* on the fact that *all* elements are block by default. Except checkboxes
* and radios of course, because reasons.
*/
button, datalist, form, fieldset, input:not([type="checkbox"]):not([type="radio"]), keygen, label, output, select, textarea {
display: block; }
/**
* 1. Reset box-sizing on all elements to border-box.
*
* This uses Jon Neal's method of setting the default box-sizing on the root
* html element and then having all other elements inherit box-sizing
* (https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/).
* This method seems to cause the least number of headaches and override
* issues.
*/
html {
box-sizing: border-box; }
*, *::before, *::after {
box-sizing: inherit; }
/**
* 1. Fully reset link styling.
* 2. Remove gray background color from active links in IE 10
* (from normalize.css).
*/
a {
color: inherit;
text-decoration: none;
background-color: transparent; }
a:link, a:active, a:visited {
color: inherit; }
ul, ol {
margin: 0;
padding: 0;
list-style-type: none; }
ul ol, ul ul, ol ol, ol ul {
padding: 0; }
/**
* 1. Prevent iOS and IE text size adjust after device orientation change
* without disabling user zoom.
*/
html {
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%; }
/**
* 1. Remove all styling from `h1-6` elements.
*/
h1, h2, h3, h4, h5, h6 {
margin: 0;
font-size: inherit;
font-weight: inherit; }
/**
* 1. Remove extra margin around these elements.
*/
p, dl, dd, pre, figure, blockquote {
margin: 0; }
/**
* 1. Ensure that these elements inherit font-style.
*/
i, cite, em, var, address, dfn {
font-style: inherit; }
/**
* 1. Ensure that these elements inherit text-decoration.
*/
u, s, strike, del, ins {
text-decoration: inherit; }
/**
* 1. Ensure that these elements inherit font-weight.
*/
dfn, strong, th, b {
font-weight: inherit; }
small {
font-size: inherit; }
/**
* 1. Ensure that font-family is inherited.
* 2. Inherit font size in IE.
*/
tt, code, kbd, samp, pre {
font-family: inherit;
font-size: inherit; }
/**
* 1. Remove quotation marks.
*/
q::before, q::after {
content: "";
content: none; }
blockquote, q {
quotes: none; }
/**
* 1. Reset styling for `mark` elements.
*/
mark {
background-color: inherit;
color: inherit; }
hr {
box-sizing: content-box;
height: 0; }
/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers
* (from normalize.css).
*/
sub, sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline; }
sup {
top: -0.5em; }
sub {
bottom: -0.25em; }
/**
* 1. Remove border when inside `a` element in IE 9/10 (from normalize.css).
*
* Note: We don't use a parent `a` because it causes the selector to have
* high specificity and makes it difficult to override. `img` shouldn't
* have borders anyway, so no harm no foul.
*/
img {
border: none; }
/**
* 1. Remove borders from iframes. This isn't 1995 any more.
*/
iframe {
border: none; }
/**
* 1. Prevent modern browsers from displaying `audio` without controls.
* 2. Remove excess height in iOS 5 devices (from normalize.css).
*/
audio:not([controls]) {
display: none;
height: 0; }
/**
* Correct overflow not hidden in IE 9/10/11 (from normalize.css).
*/
svg:not(:root) {
overflow: hidden; }
/**
* 1. Remove the outline on focused elements that all major browers add.
*
* Ok, this is going to be *super* controversial but hear me out. Yes,
* accessability on focusable elements is really important and needs to be
* addressed in any design, but the default styling may not work for every
* design. For instance, a site with lots of grays would make the default
* focus outline difficult to see. Rather than try to guess what the best
* focus indicator should be for every design I argue that this is the
* responsibility of the designer to figure out. There is an argument to be
* made for standard and expected behavior, but it is easy enough to add
* a focus outline back in the application styling if that's what you want.
*/
:focus {
outline: none; }
/**
* 1. Remove the underline that Firefox adds to elements with a title.
*
* Again, this might be controversal but see the comments on :focus above.
*/
[title] {
text-decoration: none; }
table {
border-collapse: collapse;
border-spacing: 0; }
td, th {
padding: 0; }
caption {
text-align: inherit; }
html {
width: 100%;
overflow-x: hidden; }
input:not([type="checkbox"]):not([type="radio"]), select, textarea, button, meter, progress {
width: 100%; }
img, video, object, embed, iframe {
height: auto;
max-width: 100%; }
audio {
max-width: 100%; }
/**
* 1. Fully reset fieldsets removing all default styling.
*/
fieldset {
margin: 0;
padding: 0;
border: none; }
/**
* 1. Fully reset lengends removing all default styling.
* 2. On Android Chrome browser lengends don't expand to 100%, so we fix that.
*/
legend {
border: 0;
padding: 0;
width: 100%; }
/**
* Known limitation: by default, Chrome and Safari on OS X allow very limited
* styling of `select`, unless a `border` property is set.
*/
input:not([type="checkbox"]):not([type="radio"]),
optgroup,
select,
textarea,
button {
margin: 0;
padding: 0;
border: none;
background: none;
font: inherit;
color: inherit; }
/**
* 1. Remove border-radius in Safari.
* 2. Remove glossy background in Safari.
*
* Note that this also removes the dropdown arrow in Safari, which isn't
* ideal but there is little we can do about it.
*/
select {
border-radius: 0;
-webkit-appearance: none; }
/**
* Remove default vertical scrollbar in IE 8/9/10/11 (from normalize.css).
*/
textarea {
overflow: auto; }
/**
* 1. Address `overflow` set to `hidden` in IE 8/9/10/11 (from normalize.css).
*/
button {
overflow: visible; }
/**
* 1. Address inconsistent `text-transform` inheritance for `button` and
* `select`. All other form control elements do not inherit `text-transform`
* values. Correct `button` style inheritance in Firefox, IE 8/9/10/11, and
* Opera. Correct `select` style inheritance in Firefox
* (from normalize.css).
*/
button,
select {
text-transform: none; }
/**
* 1. Remove inner padding and border in Firefox 4+ (from normalize.css).
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0; }
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
*/
button,
html input[type="button"],
input[type="submit"],
input[type="reset"] {
-webkit-appearance: button;
cursor: pointer;
text-align: left; }
/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
cursor: default; }
/**
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
input {
line-height: normal; }
/**
* Checkboxes and radio inputs are not styleable in most browsers unfortunately,
* so we have to treat them as a special case.
*
* 1. Address box sizing set to `content-box` in IE 8/9/10 (from normalize.css).
* 2. Remove excess padding in IE 8/9/10 (from normalize.css).
*/
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box;
padding: 0; }
/**
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
* `font-size` values of the `input`, it causes the cursor style of the
* decrement button to change from `default` to `text`.
*/
input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button {
height: auto; }
/**
* 1. Address `appearance` set to `searchfield` in Safari and Chrome which is
* unstylable (from normalize.css).
* 2. Remove inner padding and search cancel button in Safari and Chrome on
* OS X. Safari (but not Chrome) clips the cancel button when the search
* input has padding (and `textfield` appearance) (from normalize.css).
*
* Ideally we'd like to support the native cancel button, but unfortunately
* safar
*
*/
input[type="search"] {
-webkit-appearance: textfield; }
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none; }
/**
* 1. Update input placeholders to inherit color (IE, Chrome and Safari) and
* opacity (Firefox).
*
* Note: On Firefox number inputs do not respect placeholder styling. This is
* a known bug (https://bugzilla.mozilla.org/show_bug.cgi?id=1004130) with no
* workaround :(.
*/
::-webkit-input-placeholder {
color: inherit; }
::-moz-placeholder {
opacity: inherit; }
:-ms-input-placeholder {
color: inherit; }
/**
* 1. Address `[hidden]` styling not present in IE 8/9/10 and hide the
* `template` element in IE 8/9/10/11, Safari, and Firefox < 22
* (from normalize.css).
*/
[hidden],
template {
display: none; }
/**
* 1. Remove default padding on body.
* 2. Normalize line-height.
*/
body {
margin: 0;
line-height: 1; }