html中用留白本质是结构错位,纯空表格不渲染;需设height或padding+ 才能显空白;现代开发应改用margin/padding,仅邮件等兼容场景才妥协用table。

HTML 中用 <table> 留白,本质是结构错位
<p>直接写空 <code><table></table> 不会显示空白——浏览器渲染时会忽略无内容、无样式的表格,甚至可能完全不占高度。所谓“留一大块空白”,其实是想控制布局间距,不是真要一个语义化的表格。
<table> 里塞空单元格,但得加 <code>height 或 padding
<table> 里塞空单元格,但得加 <code>height 或 padding
如果非要用 <table> 实现视觉留白(比如旧系统兼容、邮件模板等受限场景),必须让单元格有可渲染的尺寸:
<ul>
<li>至少写一行一列:<code><table><tr><td></td></tr></table>
<td> 设固定高度:<code><td style="height: 200px;"></td>(仅 IE/旧版 Outlook 可靠)
<td style="padding: 100px 0;"> </td>( 防止被折叠)height 在某些邮件客户端中会被忽略,padding + 内容更稳现代页面该用 margin 或 padding,不是 <table>
<p>真正该做的,是放弃用表格“撑空间”。空白的本质是盒模型间距,不是表格语义:</p>
<ul>
<li>在上一个元素后加:<code>margin-bottom: 120px;
margin-top: 120px;
padding-block 或媒体查询控制邮件 HTML 里为什么还在用 <table> 留白?
<p>因为 Outlook(尤其 Windows 版)对 CSS 支持极弱,<code>margin 和 padding 经常失效或错位:
立即学习“前端免费学习笔记(深入)”;
- 必须用
<table> 套嵌 + 固定 <code>height或cellpadding - 推荐写法:
<table cellpadding="0" cellspacing="0" border="0" height="120"><tr><td></td></tr></table> -
cellpadding="0"是为了清除默认内边距干扰,height写在<table> 上比写在 <code><td> 更兼容 <li>别信“自动适应内容高度”——邮件客户端基本不认这个</li> <p>表格不是留白工具,只是某些封闭环境下的妥协方案。真正的问题从来不是“怎么用表格留白”,而是“谁在强制你只能用表格”。</p> </td>










