浏览器对、等语义标签仅默认设display: block,无额外margin/padding/字体样式;ie8及更早版本不识别,需js声明或html5shiv兼容。

浏览器对 <header></header>、<section></section> 等语义标签是否加默认样式?
是,但仅限于 display: block 这一层——它们和 <div> 渲染效果一致,没有额外 margin/padding/字体变化。Chrome、Firefox、Safari、Edge(含最新版本)均如此。IE8 及更早版本完全不识别这些标签,会当作未知 inline 元素处理,需用 <code>document.createElement('header') 声明后才可设 display: block。
<article></article> 和 <section></section> 的 display 行为差异在哪?
没有差异。二者默认都是 display: block,DOM 中表现为块级容器,能设宽高、margin、padding,也天然形成 BFC。区别纯在语义:一个表示“可独立分发的内容单元”(如一篇博客),一个表示“按主题组织的文档区块”(如“评论区”“相关推荐”)。搜索引擎和屏幕阅读器靠这个区分,CSS 不感知。
为什么给 <nav></nav> 加 margin-top 没反应?
大概率你把它写在了 <p></p> 或其他 inline 上下文中,比如:<p><nav>菜单</nav></p><div class="aritcle_card flexRow artxards">
<div class="artcardd flexRow">
<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill3458" title="html-ppt-to-pdf"><img
src="https://img.php.cn/upload/skill/000/000/081/178956546773641.jpg" alt="html-ppt-to-pdf" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a rel="nofollow" href="/xiazai/skill3458" title="html-ppt-to-pdf" class="overflowclass">html-ppt-to-pdf</a>
<p class="overflowclass">将使用 `<section class="slide">` 约定的 HTML 幻灯片转换为高保真、矢量文本 PDF(使用 Playwright + Chromium 原生 PDF 功能)。</p>
</div>
<a rel="nofollow" href="/xiazai/skill3458" title="html-ppt-to-pdf" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
</a>
</div>
</div>。此时 <nav></nav> 被强制内联化(类似被包裹在 <span></span> 里),垂直 margin 失效。正确做法是确保它处于正常的块级流中:<nav>...</nav><main>...</main>。也可显式重置:nav { margin-top: 1em; },但前提是它没被父元素的 display 规则压制。
<time></time>、<mark></mark> 这类轻量语义标签有默认样式吗?
有,但极简:<time></time> 默认是 inline,无样式;<mark></mark> 默认是 inline,带黄色背景(UA stylesheet 定义,各浏览器略有色差,但都突出);<small></small> 默认是 inline,font-size 约为 80%。它们不改变布局流,只提供语义+基础视觉提示。若你发现 <mark></mark> 没高亮,检查是否被全局 CSS 重置了 background,比如 * { background: transparent; } 这类粗暴规则。
真正容易被忽略的是:语义标签的默认样式只存在于「未被 CSS 重置」的前提下。很多 reset.css 或 normalize.css 会主动清掉 <mark></mark> 的背景或 <time></time> 的字体缩放——这时你得自己补上,而不是怀疑标签失效。










