Почему при сбросе CSS не используется '*', чтобы охватить все элементы?

Например, сброс Мейера имеет длинный список элементов 1, который, я думаю, можно заменить на *?

Я видел некоторое использование:

* {
   margin: 0;
   padding: 0;
 }

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

Единственные элементы, которые я не вижу, покрыты в списке тегов, которые покрыты (я предполагаю) * являются input, button, а также select - перезагрузка Эрика Мейера, на самом деле, похоже, вообще не имеет отношения к этим элементам. Если проблема заключается в том, чтобы избежать сброса этих элементов... почему бы и нет? Браузеры, очевидно , не все элементы формы отображают одинаково.


1 html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, I, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary, time, mark, audio, video
если тебе любопытно

3 ответа

Решение

Вы правильно догадались - причина в том, form элементы.

Если вы установите border: 0 на, например, input, он потеряет свой родной стиль.

Например: http://jsfiddle.net/nrB6N/

И нет способа вернуть этот стиль по умолчанию обратно.

* действительно, ДЕЙСТВИТЕЛЬНО плохо влияет на производительность (не имеет большого значения для небольших сайтов, но подумайте о последствиях для 5000+ HTML-элементов, например). Ориентация на конкретные элементы всегда быстрее и эффективнее. Об этом также следует помнить, выбирая, использовать ли ID или класс. Примите во внимание более распространенный сегодня JavaScript, и вы обнаружите, что целевые элементы с идентификаторами или точными операторами CSS приводят к повышению производительности.

http://code.google.com/speed/page-speed/docs/rendering.html

пс. Помимо скорости, это также влияет input элементы, которые после * border, padding и margin 0 становятся довольно сложными для стилизации, поэтому они выглядят одинаково во всех браузерах, особенно в IE. Узнайте больше: http://www.christianmontoya.com/2007/02/01/css-techniques-i-use-all-the-time/

Главным образом потому, что это хит производительности. Кроме того, так как вы не хотите постоянно применять сброс ко всем элементам, кроме тех, которые, как известно, вызывают проблемы (вокруг блочной модели).

Кроме того, сброс стиля select, input может вызвать нежелательный опыт.

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