Вернуть свойства по умолчанию после применения глобального сброса CSS - PullRequest
5 голосов
/ 21 декабря 2011

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

У меня есть старый foo.css, который начинается с

* {margin:0; padding:0;}

и я обычно копировал его в другой файл bar.css, тоже подправил его ( со сбросом CSS ) и использую его для замены foo.css только в коде I ' Я пишу. Я делаю это, чтобы не беспокоиться о обратной совместимости со старыми разделами сайта.

Теперь это довольно громоздко: для глобальных изменений я должен помнить, чтобы изменить оба файла. Так что теперь мой bar.css расширяется foo.css, начиная с:

@import url("style.css");

Проблема в том, что теперь я также наследую сброс CSS.

Есть ли способ (†) вернуть свойства margin & padding некоторых элементов (заголовков, списков и т. Д.) К значениям по умолчанию - тем, которые были до сброса?

(†) , кроме установки вручную каждого свойства обратно к его начальному значению, как определено в спецификации CSS .

Ответы [ 3 ]

6 голосов
/ 21 декабря 2011

Предлагается значение начальное для задания свойству начального значения без нахождения явного значения.Но он все еще очень черновой и вряд ли реализован в любом браузере.

Более того, это, вероятно, даже не то, чего вы хотели бы достичь.Если я вас правильно понимаю, вы можете установить, например, верхнее и нижнее поля элементов h2 в значение браузера по умолчанию .Я не думаю, что есть какой-либо предложенный способ сделать это в CSS.Спецификации не определяют настройки браузера по умолчанию.Начальное значение, скажем, свойства margin - 0. Причина, по которой заголовки по умолчанию имеют верхнее и нижнее поле, заключается в том, что браузер применяет, по крайней мере концептуально, таблицу стилей браузера.Спецификации CSS предлагают таблицу стилей браузера по умолчанию, но не обязывают ее, и браузер может (и фактически делает) отклоняться от предложений.

На практике лучший снимок в данной ситуациибыло бы проверить Приложение D спецификации CSS 2.1 и использовать приведенные там значения.Для таких вещей, как поля, это в основном создаст эффект использования настроек браузера по умолчанию.

1 голос
/ 21 декабря 2011

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

Все, что вам нужно сделать, это добавить свои объявления под глобальным сбросом CSS:

* { margin: 0; }
h1 { margin: 10px 0; }

h1 имеет приоритет над глобальным селектором *.

Это поможет нормализовать ваш CSS .

0 голосов
/ 21 декабря 2011

Я думаю, что * {margin: auto} сбросит запас (или h1 {margin: auto}, если будет сброшен только этот элемент), но это не будет работать для заполнения. Технически, спецификация для заполнения уже равна нулю, однако, если браузер реализует это иначе, я не думаю, что будет способ сбросить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...