Как выбрать *, но исключить <body>? Или установить <body> в стиль по умолчанию?

Браузеры обычно устанавливают разные стили по умолчанию для элементов. Пользователи также могут переопределить значения по умолчанию, используя пользовательские таблицы стилей.

Я часто переопределяю эти стили по умолчанию, используя свои собственные стили, например:

* {padding:0; margin:0; }

Однако я хочу соблюдать таблицу стилей по умолчанию для некоторых атрибутов элемента, например <body>По умолчанию отступы и поля. Я старался:

*    { padding:0;       margin:0;       }
body { padding:default; margin:default; }

Но это не работает. Ни один не делает initial,

Есть ли способ решить эту проблему, выбрав все элементы, кроме <body>?

5 ответов

Решение

Есть ли способ решить эту проблему, выбрав все элементы, кроме <body>?

Поскольку все, что отображается в окне просмотра, состоит из <html>, <body> а также <body>содержимое по умолчанию, вы можете просто выбрать htmlи все bodyпотомки:

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

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

<html> и все потомки <body>:

html, body * {padding:0;margin:0;}
html, head, head *, body * { }

Использовать body * селектор.

body *{padding:0;margin:0;}

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

   * {
     padding:0;
     margin:0;
   }

   body, html {
     padding: 10px;
   }

http://meyerweb.com/eric/tools/css/reset/

Другие вопросы по тегам