Элементы сайта
Обнуление, или сброс стилей CSS
У каждого браузера есть встроенные стили для html-элементов и эти стили могут отличаться. Поэтому один и тот же элемент в разных браузерах может выглядеть по-разному.
Все значения CSS-стилей для HTML-элементов, используемые браузерами по умолчанию, можно посмотреть по ссылке https://puzzleweb.ru/
Стили браузеров. Источник https://bitsofco.de/
- Стили браузера Google Chrome & Opera (Chromium UA stylesheet) – https://chromium.googlesource.com/
chromium/blink/ +/refs/ heads/main/ Source/ core/css/html.css - Стили браузера Firefox (Mozilla UA stylesheet) – https://searchfox.org/
mozilla-central/ source/ layout/ style/ res/html.css - Стили браузера Safari (WebKit UA stylesheet) – https://trac.webkit.org/
browser/ trunk/Source/ WebCore/css/ html.css
Чтобы сайт одинаково отображался в разных браузерах лучше сделать сброс этих настроек по умолчанию и задать свои значения для данного сайта.
Существуют разные подходы к сбросу стилей, или их называют обнулением стилей.
1. Использование фала Normalize.css
Данный файл приводит все стили, которые отличаются в разных браузерах, к одному стилю. Таким образом Вы можете задать собственные значения таких стилей в самом файле Normalize.css.
Скачать последнюю версию файла можно по ссылке https://necolas.github.io/normalize.css/
Ссылки по этому файлу:
https://htmlacademy.ru/
https://
На момент написания статьи версия 8.0.1 файла Normalize.css выглядит следующим образом:
Развернуть/свернуть Normalize.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; }
2. Очень популярен сброс стилей от Eric Meyer
Сайт автора можно посмотреть по адресу https://meyerweb.com/
На момент написания статьи код этого автора выглядит следующим образом.
Развернуть/свернуть сброс стилей от Eric Meyer
/* 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; }
3. Третий способ - использование файла reset.css
Есть разный подход к написанию файла reset.css.
Минимальный reset.css. Вариант 1
* { padding: 0; margin: 0;}
Минимальный reset.css. Вариант 2
* { padding: 0; margin: 0; border: 0; }
Минимальный reset.css. Вариант 3
* { outline: 0; padding: 0; margin: 0; border: 0; }
Можно найти несколько вариантов различных reset.css от разных авторов.
Например, файл обнуления от Жени Андриканич. Ссылка на видео https://www.youtube.com/watch?v=kfOe-F64C_A
Развернуть/свернуть код обнуления стилей
/*Обнуление*/ *{ padding: 0; margin: 0; border: 0; } *,*:before,*:after{ -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } :focus,:active{outline: none;} a:focus,a:active{outline: none;} nav,footer,header,aside{display: block;} html,body{ height: 100%; width: 100%; font-size: 100%; line-height: 1; font-size: 14px; -ms-text-size-adjust: 100%; -moz-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; } input,button,textarea{font-family:inherit;} input::-ms-clear{display: none;} button{cursor: pointer;} button::-moz-focus-inner {padding:0;border:0;} a, a:visited{text-decoration: none;} a:hover{text-decoration: none;} ul li{list-style: none;} img{vertical-align: top;} h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight: 400;} /*--------------------*/
4. Собственный reset.css
Изучив стили по умолчанию различных браузеров и подходы разных авторов к написанию обнуляющих стилей, Вы можете самостоятельно разработать для себя файл reset.css. Возможно, что для каждого проекта этот файл будет отличаться отдельными стилями.
Подключать файл сброса стилей лучше через команду import в начале файла css
@import url('/styles/type.css');
Достаточно интересные статьи по собственным настройкам можно почитать по ссылкам:
- https://bookflow.ru/sovremennyi-sbros-stilej-css/
- https://medium.com/
@stasonmars/ %D1%81%D0%BE% D0%B2%D1%80%D0% B5%D0%BC%D0% B5%D0% BD%D0%BD%D1% 8B%D0%B8% CC%86-%D1%81%D0% B1%D1%80%D0% BE%D1%81-css-f5816963c82b
(это перевод статьи https://piccalil.li/blog/a-modern-css-reset/) - http://tods-blog.com.ua/web-development/verstka/css-reset/
- https://poisk-ru.ru/s15580t12.html