Почему в элементе <body> имеется маржа по умолчанию?

В течение большей части моей карьеры развития мне приходилось только ломаться в интерфейсе, основанном на веб-интерфейсе. Меня всегда беспокоило постоянная потребность в "предположениях" на reset на основе браузера, которые я часто забывал до тех пор, пока эти настройки по умолчанию не начали выполнять макет моих страниц.

Самое большое предположение, которое делает большинство браузеров, состоит в том, что элемент HTML <body> должен иметь разницу, которая почти всегда равна 8px.

Каково было конструктивное решение для этой дефолтной маржи?

Фактически, это поле настолько нежелательно, что стандартная практика включает такой стиль стилизации в .css файле, который включен в каждую страницу сайта:

html, body
{
    margin: 0px; padding: 0px
}

ИМХО, логика диктует, что большинству разработчиков понадобится полный, пустой список, с которым они могут работать и отформатировать по своему усмотрению. Когда браузер по умолчанию использует маркер вокруг элемента body, разработчик должен оставаться в стороне от интервала и добавлять код для вычисления правильного макета для своих внутренних элементов, если они не соответствуют reset макету.

Есть ли веская причина, по которой оригинальные разработчики браузеров HTML решили по умолчанию сбросить эту маржу во всех элементах тела?

Ответы

Ответ 1

Языки изначально созданы для самостоятельной работы. Чтобы вы могли технически использовать этот конкретный язык только для того, для чего он предназначен. В случае HTML предполагается, что он позволяет отображать что-то в браузере. С другой стороны, CSS (и, как вы наверняка знаете) предназначен для создания всего процесса украшения. Таким образом, имея это в виду, каждый должен иметь возможность писать HTML-документ без какого-либо CSS, и браузеры должны отображать его в наиболее удобочитаемой форме. Теперь, чтобы это происходило как можно более согласованно, в браузерах есть нечто, называемое "нормальными значениями по умолчанию". Эти значения по умолчанию охватывают поля и отступы в теле, некоторые шрифты, самый разборчивый размер шрифта и т.д. И они оставляют вам возможность перезаписывать по мере необходимости с помощью CSS.

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

РЕДАКТИРОВАТЬ

Ссылки ниже показывают настройки Firefox и Webkit CSS по умолчанию. Это поможет вам устранить неисправности по умолчанию, из-за которых вы понятия не имеете, откуда они пришли и почему они существуют.

Webkit

Fire Fox

Обновить

В Firefox MXR вместо DXR, поэтому приведенная выше ссылка больше не действительна, вот действующая ссылка для Firefox: https://dxr.mozilla.org/mozilla-central/source/layout/style/res/html.css

Ответ 2

Вероятно, потому, что большинство разработчиков прыгали прямо в строительные сайты и приложения, не предпринимая дополнительных шагов, чтобы убедиться, что есть правильный интервал вокруг краев тела, что заставляет текст работать прямо против краев экрана.

Опытные разработчики должны предпринять дополнительные шаги для reset стилей, если они хотят полного управления, но я думаю, что авто-стиль является меньшим из двух зол. Подумайте о всех людях, которые строят простые веб-сайты, используя GoDaddy или другие подобные услуги хостинга.