Что означает этот алфавитный селектор CSS? - PullRequest
0 голосов
/ 22 мая 2018

Время от времени я видел этот алфавитный селектор CSS.Зачем кому-то использовать такой селектор?Откуда это?Почему мы не можем просто использовать * selector для выбора всех?

------ update ------

После просмотра 2 ответов теперь возникает вопрос, что это за элементпропущен, т. е. какой элемент не нуждается в нормализации?

Спасибо.

a, abbr, acronym, address, applet, article, aside, audio, b, big, blockquote, body, canvas,
caption,center, cite,code, dd, del, details, dfn, div, dl, dt, em,embed, fieldset, figcaption, 
figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, ins, 
kbd, label, legend, li, mark, menu, nav, object, ol, output, p,pre, q, ruby, s, samp, 
section,small, span, strike, strong,sub, summary, sup, table, tbody, td, tfoot, th, thead, 
 time, tr, tt, u, ul, var, video {
    margin:0;
    padding:0;
    border:0;
    font: inherit;
    ...
}

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

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

h1,h2,.....,a {
  my rules;
}

Например, h1...h5 elemets имеют по умолчанию margin.мы не хотим это margin для этого, поэтому измените его. см. этот пример:

h1,h2 {
  background-color: orange;
  border: 1px solid;
}

.def {
  margin: 0;
}
Default without change <b>margin</b>.<i>h1</i> and <i>h2</i> have margin as default:
<h1>Default H1</h1>
<h2>Default H2</h2>

Changed:
<h1 class="def">Default H1</h1>
<h2 class="def">Default H2</h2>

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

0 голосов
/ 22 мая 2018

Этот код CSS обычно соответствует коду внутри CSS-структуры, такой как Bootstrap, для нормализации и стандартизации вывода HTML-элементов браузером, так как по умолчанию механизмы визуализации браузеров имеют связанные свойства, назначенные для определенных элементов, применение этих определенных правил CSS позволяет страницесделать более согласованный вывод в большинстве браузеров.Некоторые браузеры представляют некоторые «ошибки» или особые варианты поведения в своих механизмах рендеринга, и эти таблицы стилей CSS предназначены для исправления или «сброса» правил CSS для тегов HTML.Очень распространенным компонентом CSS для «сброса» является normalize.css, , о котором вы можете узнать больше здесь.

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

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

Поскольку этот вопрос меня заинтриговал, интересно проверить, как предназначен универсальный * селектор *Чтобы назначить свойства пространствам имен CSS, но потенциально неправильная реализация для старых / мобильных браузеров может привести к неизвестным проблемам, вы можете обратиться к определению «универсального селектора» по этим ссылкам:

Определение MSDN включеноУниверсальные селекторы

Определение W3C для универсальных селекторов и устройства

Реализация универсальных селекторов в браузере (см. Вкладку "Известные проблемы")

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