CSS браузеров по умолчанию для элементов HTML

146

Где я могу найти CSS браузера по умолчанию для элементов HTML?

Многие элементы HTML поставляются с некоторыми свойствами CSS по умолчанию, которые иногда могут привести к неизвестному / нежелательному поведению. Например, поля ввода отображаются по-разному в разных браузерах. Я ищу место, которое охватывает новые свойства CSS3 и новые элементы HTML5.

Я видел в других (гораздо более старых) вопросах (таких как таблицы стилей CSS по умолчанию в браузерах ) ответы, которые предлагают решение для сброса CSS. Такое решение иногда нежелательно, часто мне бы хотелось сохранить некоторые основные свойства (например, выделение полей ввода в Chrome). Другими словами: я не хочу избавляться от вещей только потому, что не знаю, что они делают .

Итак, есть ли сайт, который может дать мне всю эту информацию (или, возможно, большинство)?

Нахшон Шварц
источник
3
Не сайт, а в инструментах Chrome Devleoper он показывает унаследованные правила CSS, а те, которые помечены как «Таблица стилей агента пользователя», будут отображать Chrome. Извините, я не могу помочь. также: dowebsitesneedtolookexactlythesameineverybrowser.com
Джеймс Хури
2
Отличный вопрос! Я согласен, должно быть где-то, где вся эта информация доступна.
Просто примечание, reset.css не останавливает основные вещи. Ваши поля ввода по-прежнему будут выделены в Chrome. Вы просто потеряете случайные различия между отступами в браузерах. Таким образом, вы можете начать с одинакового поведения во всех браузерах (padding / margin / ... wise).
Жюль
1
@ Джеймс Хури - также верно для Firebug.
Роб
@ Роб конечно! Я забыл о Firebug
Джеймс Хоури

Ответы:

93

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 }
}
SW4
источник
Кстати, интересно видеть такие вещи, как печально известный nobrтег в таблице стилей W5C HTML5.
tomasz86
все еще в курсе?
Webwoman
Ссылка для Firefox не содержит все значения по умолчанию. Например, он не содержит CSS по умолчанию для textarea. Вы можете найти это в ресурсе: //gre-resources/forms.css. В общем, просмотрите файлы в resource: // gre-resources, чтобы найти всю информацию по умолчанию. Или для всех браузеров см. Html.spec.whatwg.org/multipage/rendering.html .
Дэвид Спектор
117

Это отличается для каждого браузера, поэтому:

Вы также можете взглянуть на таблицу стилей HTML5 Boilerplate , которая «нормализует отображение большого количества материала без сброса в традиционном смысле». Это также исправляет довольно много ошибок / несоответствий.

Также стоит посмотреть: https://github.com/necolas/normalize.css/blob/master/normalize.css

thirtydot
источник
2
Что, как ни странно, по большей части та же самая вещь, на которую я ссылался в своем ответе на вопрос, связанный с выше, который, по-видимому, «устарел». Хотя я добавил ссылку на IE только 2 дня назад.
Роберт
1
@nayish Что еще вы думаете, кроме браузеров по умолчанию?
Роберт
1
@nayish Не существует отдельного определения CSS по умолчанию для элементов HTML, кроме того, что браузеры реализовали в своих
таблицах
1
@nayish Это указано для каждого отдельного свойства в спецификации , хотя обратите внимание, что непрозрачность не наследуется в смысле CSS
robertc
2
Просто обратите внимание, шаблон HTML5 - это гораздо больше, чем нормализация CSS. Чтобы просто нормализовать CSS, они используют инструмент Normalize: necolas.github.com/normalize.css
Ожидание разработки ...
0

Хотя это старая кросс-браузерная проблема, поскольку каждый браузер имеет свой собственный рендеринг и поведение с некоторыми html-элементами, такими как медиа и входные элементы, теперь мы можем в 2017 году довольно безопасно использовать поверх них фильтры css- фильтров .

Это позволяет создать цветовую палитру с фильтром оттенка, который будет довольно хорошо отображаться в разных браузерах.

Следующие фрагменты показывают способ использования цвета входного типа для визуализации этого эффекта в режиме реального времени на элементе видео с JavaScript.

Чтобы использовать только css, обязательно используйте каждый из этих фильтров: сепия не в 0, высокая насыщенность, оттенки серого в 0, высокая контрастность, а затем задайте цвет со свойством hue-rotate после моих тестов. Инвертный фильтр не является обязательным, но дает некоторые глубокие эффекты.

Кроме того, фильтр падающих теней работает довольно хорошо в разных браузерах. Для использования следующим образом: фильтр: падающая тень (2px 20px 50px красный) [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:

http://caniuse.com/#feat=css-filters

Панель инструментов, которую я сделал вокруг фильтров CSS, откуда приходят эти заметки:

https://github.com/webdev23/ponyFilters

Более полный пример codepen:

http://codepen.io/Nico_KraZhtest/pen/bWExEB/

NVRM
источник
Это кажется немного в стороне, вы правы! Это была моя тяжелая работа на данный момент. Поскольку это всего лишь CSS, это не изменит поведение элемента браузера, но может дать способ визуализировать элементы такого типа с одинаковым цветом / яркостью в любом браузере без написания специального кода для каждого из них. Это не было выполнимо во время вопроса. Спасибо.
NVRM