2009-05-21 3 views
3

Подставляя это в верхней части вашего файла CSS:Действительный CSS или Hack?

* { margin: 0; padding: 0; } 

взломать? или действительный CSS? Что оно делает? и как переносится в разные браузеры/версии?

+4

Я думаю, вы имеете в виду kludge в этом случае, а не взломать. Да, я знаю, что я педантичен. – Beska

+0

Я предполагаю, что я считаю, что взлом - это когда определенный браузер на самом деле задыхается от определенного символа или набора символов и других браузеров. Но я думаю, что из ответов * является допустимым символом для «подстановочных знаков» .... так что я думаю, что это не взломать. – BuddyJoe

+0

Поскольку селектор * был введен специально для воздействия на все элементы, это не взломать IMO. Однако использование его в верхней части вашего CSS с целью избежать проблем с перекрестным браузером можно рассматривать как инструмент в панели инструментов «взлома CSS», который имеет более свободное определение, чем «взлом» как таковое. – Treb

ответ

25

Это действительный CSS. Он выбирает элемент EVERY и сбрасывает значения полей по умолчанию и paddings. Причина, по которой люди используют это, - сделать их компоновку сайта более согласованной в разных браузерах/версиях, так как каждый браузер имеет собственную таблицу стилей по умолчанию. Если вы не используете это объявление или не указываете margin/padding для каждого элемента, каждый браузер будет использовать свои собственные поля/paddings по умолчанию для этого элемента, и страница будет отображаться непоследовательно в разных браузерах.

+0

Очень четкое и точное описание ИМХО. Моим любимым примером того, где это полезно, является таблица с несколькими строками, состоящая из нескольких столбцов и других тегов стиля.Просмотрите его в IE и FF и посмотрите разницу. – Nate

+0

Согласен, очень хорошее описание –

0

Это действительно CSS, но технически это можно считать взломом.

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

6

Согласно http://css-tricks.com/margin-0-padding-0-no-longer-cool/

Это часть «CSS Reset» theory.This устраняет все различия в дополнениях и наценка в разных браузерах Его очень тяжело на визуализацию агенте применять правила к каждому элементу в документе, особенно с большими веб-страницами, и это также может разрушить множество хороших стилей по умолчанию, особенно если вы хотите использовать кнопки отправки в стиле по умолчанию.

+0

wow.Im downvoted для чего? – TStamper

+0

Я честно не знаю. Мое лучшее предположение заключается в том, что люди думают, что «перезагрузка» * должна * работать без значительного увеличения рабочей нагрузки. Если двигатели рендеринга были хорошо разработаны. Двигатель * должен * применять правило к каждому элементу - если нет, то как он может визуализировать? – Treb

+0

. точно – TStamper

2

Звезда известна как universal selector и действительна CSS. Все это он применяет стили к всем элементам на странице. Однако его следует использовать осторожно. Лично я не нашел для этого большой пользы. Сброс полей и прокладок всех элементов - это то, что вы можете сделать более конкретно (и, на мой взгляд, лучше) с другими элементами, группами элементов и классами.

См. this page для получения дополнительной информации о поддержке браузера. (Обратите внимание, что это серьезно устаревают, были написаны в 2000 году, я предположил бы, что вы могли бы рассчитывать на полную поддержку во всех популярных браузерах в настоящее время.)

Универсальный селектор поддерживается в Internet Explorer 5.x для как Windows , так и Macintosh, а также IE 4.5 для Mac, а также в Opera 3.6. Это также , поддерживаемый в Netscape 6 Preview . Выпуск 1 на всех бесчисленных платформах , для которых он доступен, и в Предварительный выпуск 3 из Opera 4 для Windows.

+0

«Предварительный просмотр 3-го из Opera 4» - серьезно устарел! (но мы можем сказать, что текущие версии упомянутых браузеров все еще поддерживают его ;-) – Treb

0

Это как действительный, так и взломанный. Однако это не браузерный.Термин для этого является «сброс CSS»

Как пояснил tf111, идея заключается в том, чтобы избавиться от браузера конкретных настроек для поля и отступы, которые отличаются во всех браузерах

+0

Думаю, в моих мыслях это не хак. Трюк может быть. См. Комментарии на уровне корневого вопроса. – BuddyJoe

+0

С учетом вашего комментария, я определенно могу видеть, откуда вы. Я использовал термин «взломать» довольно свободно. – NotMe

1

Это:

  • Valid CSS
  • не совсем «взломать»
  • немного ляп
  • , вероятно, не то, что вы хотите в любом случае

* - универсальный селектор. В CSS spec универсальный селектор имеет спецификацию 0000, что означает, что каждый другой селектор имеет более высокий приоритет. Таким образом, это способ «перезагрузить» все поля таким образом, чтобы любое другое правило могло бы переопределить.

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

Универсальный селектор выбирает каждый элемент на странице. Каждый маленький div, каждый маленький li, и так далее. Фактически, он даже выбирает элементы, которые не являются элементами уровня блока, такие как a и span и head. Во многих случаях это избыток, и на больших страницах он может быть весьма неэффективным.

Если вы ищете способ сбросить стиль по умолчанию по HTML, вам лучше использовать что-то вродеEric Meyer. Хотя таблица стилей «Сбросить CSS» намного сложнее, она не выходит за борт с выбором каждого элемента. В противном случае просто обнулите маржу и заполнение каждого отдельного элемента, который вас беспокоит. (Я всегда обнулить отступы и запас body и h1 как только я начинаю на странице.)

1

Вы иногда смотрите:

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

или

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

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

Также есть выборочные сбрасывания, которые не включают в себя каждый элемент HTML - см. Эту статью comparing kinds of CSS reset.

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

+0

Прохладный материал. Спасибо +1 – BuddyJoe