答案是A选项*{margin:0;padding:0;},该通配符选择器可全局清除所有元素默认内外边距,解决浏览器因user agent stylesheet差异导致的间距不一致问题。

不同浏览器对 margin 和 padding 的默认值不一致
Chrome、Firefox、Safari 默认给 <p>、<h1>~<h6>、<ul>、<ol> 等元素设了非零的 margin,而 IE(尤其 IE6–8)的数值更小甚至为 0;<body> 在部分老版本中还有默认 margin 或 padding。这直接导致相同 HTML 在不同环境里首屏留白、段落间距明显错位。
实操建议:
立即学习“前端免费学习笔记(深入)”;
- 不要依赖浏览器默认值,统一用
* { margin: 0; padding: 0; }开头重置(注意:它会影响表单控件的可访问性,生产环境建议改用normalize.css) - 若只针对布局容器,优先重置语义化块级容器:
body, h1, h2, h3, h4, h5, h6, p, ul, ol, dl, pre, form, fieldset, legend, button, input, textarea, table, th, td { margin: 0; padding: 0; } - 避免在重置后又漏掉
button、input[type="submit"]的vertical-align,否则可能引发基线对齐异常
display 行为在 IE8 及以下与现代浏览器差异显著
IE8 不支持 display: inline-block 对原生行内元素(如 <span>)生效;<li> 在某些版本中会忽略 display: block 后的 width;<img> 默认是行内元素,但 IE6–7 会额外渲染 3px 下间隙(源于行框底部留白)。
实操建议:
立即学习“前端免费学习笔记(深入)”;
- 需要兼容 IE8 时,用
display: inline-block配合zoom: 1触发 hasLayout(仅 IE) - 修复图片间隙:给
<img>加display: block或vertical-align: top/middle/bottom - 避免对
<dt>、<dd>直接设float,IE6 下易触发阶梯错位,应改为包裹容器浮动或使用display: flex(需垫片)
form 控件在各浏览器中尺寸、边框、字体渲染不统一
<input type="text">、<select>、<textarea> 在 Chrome 中默认带圆角和阴影,Firefox 更“扁平”,IE 则默认有粗边框和固定字号;button 的默认 line-height 和 padding 差异也大,导致垂直居中困难。
使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
实操建议:
立即学习“前端免费学习笔记(深入)”;
- 统一重置表单控件基础样式:
input, select, textarea, button { font: inherit; margin: 0; padding: 0.375em 0.75em; border: 1px solid #999; background: #fff; } - 禁用 WebKit 自动高亮:
input:focus, textarea:focus, select:focus { outline: none; }(但必须补足焦点可见性,比如加box-shadow) - IE6–7 中
input去边框只能靠border: 0,不能用border: none;且需配合background: transparent防止背景色残留
HTML5 新标签如 <article>、<nav> 在旧浏览器中无法识别
IE8 及更早版本不识别任何 HTML5 语义标签,会把它们当未知元素处理——既不渲染样式,也无法被 CSS 选择器匹配,document.createElement('article') 必须提前执行,否则后续样式无效。
实操建议:
立即学习“前端免费学习笔记(深入)”;
- 必须引入
html5shiv.js(或类似 polyfill),且只在 IE 条件注释中加载:<!--[if lt IE 9]><script src="html5shiv.min.js"></script><![endif]--> - 即使加了 shiv,IE8 仍不支持
getElementsByClassName,若 JS 依赖该方法,需额外垫片 - 慎用
<main>:IE 仍不支持其 ARIA 语义映射,屏幕阅读器兼容性差,建议用role="main"显式声明
真正容易被忽略的是:默认样式差异不是孤立存在的,而是和盒模型、字体继承、行高计算、hasLayout 触发机制层层耦合。比如修复了 margin,却没处理 line-height 导致文字在按钮里上下偏移;用了 normalize.css 却忘了它不解决 IE8 的 flex 缺失问题。兼容性从来不是“加个 reset 就完事”,而是每处样式都要预判它在目标环境里怎么被解析、怎么被继承、怎么被渲染。


















