首页 > 解决方案 > 这个按字母顺序排列的 CSS 选择器是什么意思?

问题描述

我不时看到这个按字母顺序排列的 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;
    ...
}

标签: htmlcsscss-selectors

解决方案


此 CSS 代码通常对应于 CSS 框架(如 Bootstrap)内的代码,用于规范化和标准化 HTML 元素的浏览器输出,默认情况下,浏览器渲染引擎为某些元素分配了关联的属性,应用此某些 CSS 规则允许页面呈现更多大多数浏览器上的一致输出。一些浏览器的渲染引擎会出现一些“错误”或特定行为,而这个 CSS 样式表旨在修复或“重置”HTML 标签的 css 规则。一个非常常见的“重置”CSS 组件是 normalize.css,您可以在此处了解更多信息。

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

编辑

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

通用选择器上的 MSDN 定义

W3C 关于通用选择器和设备的定义

通用选择器的浏览器实现(检查已知问题选项卡)


推荐阅读