html - 这个按字母顺序排列的 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;
...
}
解决方案
此 CSS 代码通常对应于 CSS 框架(如 Bootstrap)内的代码,用于规范化和标准化 HTML 元素的浏览器输出,默认情况下,浏览器渲染引擎为某些元素分配了关联的属性,应用此某些 CSS 规则允许页面呈现更多大多数浏览器上的一致输出。一些浏览器的渲染引擎会出现一些“错误”或特定行为,而这个 CSS 样式表旨在修复或“重置”HTML 标签的 css 规则。一个非常常见的“重置”CSS 组件是 normalize.css,您可以在此处了解更多信息。
至于为什么不使用 * 选择器,我认为是因为并非所有这些修复都对应于所有 HTML 标签,而且如果 HTML 规范支持或包含新的 HTML 标签,则对所有元素应用全局样式可能会使他们行为不正确。希望有人可以扩展我的答案以使其更加完整。
编辑
由于这个问题引起了我的兴趣,检查通用 * 选择器如何将属性分配给 CSS 命名空间很有趣,但是对于旧版/移动浏览器的潜在错误实现可能会导致未知问题,您可以参考“通用”的定义选择器”在此链接上:
通用选择器的浏览器实现(检查已知问题选项卡)
推荐阅读
- c# - 如何在从数据库“对象或列名丢失或为空”加载数据时修复运行时错误。
- php - mysqli_query() 和 mysqli_fetch_array() 至少需要 2 个参数
- python - 视频播放时间
- javascript - 如何创建带有折扣的计算功能?
- telegram - 如何使用 python-telegram-bot 删除群聊中超过 2 天的消息?
- java - 如何在 Java 中获取 while 输入(用户输入 0 终止程序时除外)?
- rspec - 用于分页的 Rspec
- php - 如果 iframe 中没有 url,如何隐藏空的 div 文件?
- python - 在 django cbv 中保存模型表单后重定向
- javascript - TypeError:中间件不是存储中的函数