CSS браузеров по умолчанию для элементов HTML
Где я могу найти CSS браузера по умолчанию для элементов HTML?
Многие элементы HTML поставляются с некоторыми свойствами CSS по умолчанию, которые иногда могут привести к неизвестному / нежелательному поведению. Например, поля ввода отображаются по-разному в разных браузерах. Я ищу место, которое охватывает новые свойства CSS3 и новые элементы HTML5.
Я видел в других (гораздо более старых) вопросах (например, в таблицах стилей CSS по умолчанию в браузерах) ответы, которые предлагают решение для сброса CSS. Такое решение иногда не требуется, часто мне бы хотелось сохранить некоторые основные свойства (например, выделение полей ввода в Chrome). Другими словами: я не хочу избавляться от вещей только потому, что не знаю, что они делают.
Итак, есть ли сайт, который может дать мне всю эту информацию (или, возможно, большинство)?
3 ответа
GitHub-репозиторий со всеми спецификациями W3C HTML и таблицами стилей CSS по умолчанию от производителя можно найти здесь
1. Стили по умолчанию для Firefox
2. Стили по умолчанию для Internet Explorer
3. Стили по умолчанию для Chrome / Webkit
4. Стили по умолчанию для Opera
5. Стили по умолчанию для HTML4 (спецификация W3C)
6. Стили по умолчанию для HTML5 (спецификация W3C)
Пример по спецификации W3C HTML4 по умолчанию:
html, address,
blockquote,
body, dd, div,
dl, dt, fieldset, form,
frame, frameset,
h1, h2, h3, h4,
h5, h6, noframes,
ol, p, ul, center,
dir, hr, menu, pre { display: block; unicode-bidi: embed }
li { display: list-item }
head { display: none }
table { display: table }
tr { display: table-row }
thead { display: table-header-group }
tbody { display: table-row-group }
tfoot { display: table-footer-group }
col { display: table-column }
colgroup { display: table-column-group }
td, th { display: table-cell }
caption { display: table-caption }
th { font-weight: bolder; text-align: center }
caption { text-align: center }
body { margin: 8px }
h1 { font-size: 2em; margin: .67em 0 }
h2 { font-size: 1.5em; margin: .75em 0 }
h3 { font-size: 1.17em; margin: .83em 0 }
h4, p,
blockquote, ul,
fieldset, form,
ol, dl, dir,
menu { margin: 1.12em 0 }
h5 { font-size: .83em; margin: 1.5em 0 }
h6 { font-size: .75em; margin: 1.67em 0 }
h1, h2, h3, h4,
h5, h6, b,
strong { font-weight: bolder }
blockquote { margin-left: 40px; margin-right: 40px }
i, cite, em,
var, address { font-style: italic }
pre, tt, code,
kbd, samp { font-family: monospace }
pre { white-space: pre }
button, textarea,
input, select { display: inline-block }
big { font-size: 1.17em }
small, sub, sup { font-size: .83em }
sub { vertical-align: sub }
sup { vertical-align: super }
table { border-spacing: 2px; }
thead, tbody,
tfoot { vertical-align: middle }
td, th, tr { vertical-align: inherit }
s, strike, del { text-decoration: line-through }
hr { border: 1px inset }
ol, ul, dir,
menu, dd { margin-left: 40px }
ol { list-style-type: decimal }
ol ul, ul ol,
ul ul, ol ol { margin-top: 0; margin-bottom: 0 }
u, ins { text-decoration: underline }
br:before { content: "\A"; white-space: pre-line }
center { text-align: center }
:link, :visited { text-decoration: underline }
:focus { outline: thin dotted invert }
/* Begin bidirectionality settings (do not change) */
BDO[DIR="ltr"] { direction: ltr; unicode-bidi: bidi-override }
BDO[DIR="rtl"] { direction: rtl; unicode-bidi: bidi-override }
*[DIR="ltr"] { direction: ltr; unicode-bidi: embed }
*[DIR="rtl"] { direction: rtl; unicode-bidi: embed }
@media print {
h1 { page-break-before: always }
h1, h2, h3,
h4, h5, h6 { page-break-after: avoid }
ul, ol, dl { page-break-before: avoid }
}
Это отличается для каждого браузера, поэтому:
- Firefox (Gecko): https://dxr.mozilla.org/mozilla-central/source/layout/style/res/html.css. Или перейдите к
resource://gre-resources/
и посмотри наhtml.css
, - Chrome / Safari (WebKit): http://trac.webkit.org/browser/trunk/Source/WebCore/css/html.css
- Internet Explorer (Trident), более старые версии: http://web.archive.org/web/20170122223926/http://www.iecss.com/
Вы также можете взглянуть на таблицу стилей HTML5 Boilerplate, которая "нормализует отображение большого количества материала без сброса в традиционном смысле". Это также исправляет довольно много ошибок / несоответствий.
Также стоит посмотреть: https://github.com/necolas/normalize.css/blob/master/normalize.css
Никто не упомянул какой-либо источник значений CSS по умолчанию в Edge. Я поискал и не нашел ничего авторитетного, но нашел эту таблицу стилей, которая выглядит правдоподобной: https://gist.github.com/jonathantneal/abc52743caa0a019d359ec4ba2ce965b
Хотя это старая кросс-браузерная проблема, поскольку каждый браузер имеет свой собственный рендеринг и поведение с некоторыми html-элементами, такими как medias и input-элементы, теперь мы можем в 2017 году довольно безопасно использовать поверх них фильтры css- фильтров.
Это позволяет создать цветовую палитру с фильтром оттенка, который будет хорошо отображаться в разных браузерах.
Следующие фрагменты показывают способ использования цвета входного типа для визуализации этого эффекта в реальном времени на элементе видео с использованием JavaScript.
Чтобы использовать только css, обязательно используйте каждый из этих фильтров: сепия не в 0, высокая насыщенность, оттенки серого в 0, высокая контрастность, а затем задайте цвет со свойством hue-rotate после моих тестов. Инвертный фильтр не является обязательным, но дает некоторые глубокие эффекты.
Кроме того, фильтр отбрасывания теней работает довольно хорошо в разных браузерах. Для использования следующим образом: фильтр: тень (2 пикселя 20 пикселей 50 пикселей красного) [X, Y, RADIUS, COLOR]
function styloElem() {
stylo.dataset.hue = ((parseInt(stylo.value.substring(1), 16))/46666).toFixed(0)
media.style.cssText += ";filter:sepia(100%) saturate(1000%)grayscale(0)contrast(200%)hue-rotate("+ stylo.dataset.hue+"deg)invert("+(stylo.dataset.hue/3.6)+"%)"
}
styloElem()
body {
text-align:center;
background:#001;
color: white
}
video {
width:500px;max-width:500px
}
Colors:
<input
type="color"
id="stylo"
oninput="styloElem()"
class="media"
data-hue="0" />
<br><br>
<video
controls
id="media"
onplay="this.removeAttribute('controls');this.style.all='unset'"
onpause="this.controls='controls';styloElem()"
src="https://ia600206.us.archive.org/7/items/MysteresDarchives-Saison04/1944%2c%20Dans%20le%20maquis%20du%20Vercors.ogv"></video>
Могу ли я использовать фильтры CSS:
Панель инструментов, которую я сделал вокруг фильтров CSS, откуда приходят эти заметки:
https://github.com/webdev23/ponyFilters
Более полный пример codepen: