这个按字母顺序排列的css选择器是什么意思?

问题描述 投票:3回答:2

我不时看到这个按字母顺序排列的css选择器。为什么有人会使用这样的选择器?它从哪里来的?为什么我们不能只使用* selector来选择所有?

------更新------

现在看到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;
    ...
}
html css css-selectors
2个回答
1
投票

这称为规范化,每个元素可能在不同的浏览器中具有默认属性,规范化使浏览器更加一致地渲染所有元素。

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

例如,qazxsw poi元素默认有一些qazxsw poi。我们不希望这个h1...h5,所以改变它。看这个例子:

margin
margin

h1,h2 { background-color: orange; border: 1px solid; } .def { margin: 0; } Selector,选择所有东西,但我们必须选择需要更改默认属性的元素。


1
投票

这个CSS代码通常对应于CSS框架内的代码,如Bootstrap,用于规范化和标准化HTML元素的浏览器输出,默认情况下,浏览器呈现引擎具有为某些元素分配的关联属性,应用此特定CSS规则允许页面呈现更多大多数浏览器的输出一致。有些浏览器会在渲染引擎中出现一些“错误”或特定行为,而这些CSS样式表旨在修复或“重置”HTML标记的css规则。一个非常常见的“重置”CSS组件是normalize.css,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>

至于为什么没有使用*选择器,我认为这是因为并非所有这些修复都对应于所有HTML标记,并且如果HTML规范支持或包含新的HTML标记,则可以对所有元素应用全局样式他们的行为不正确。希望有人可以扩展我的答案,使其更完整。

编辑

由于这个问题引起了我的兴趣,有趣的是检查通用*选择器如何为CSS名称空间分配属性,但旧版/移动浏览器的潜在错误实现可能会导致未知问题,您可以参考“通用”的定义选择器“在此链接上:

*

you can learn more about it here.

MSDN definition on Universal Selectors(查看已知问题标签)

© www.soinside.com 2019 - 2024. All rights reserved.