html排版靠语义化标签和css,非空格回车;用于语义段落,仅限段内换行;仅适用代码等格式化内容;align等属性已废弃,须用css控制样式。

HTML 排版不是靠空格和回车生效的,浏览器会忽略连续空白符和换行 —— 所以你手动敲的缩进、换行、空格,在页面上基本不显示。真正起作用的是语义化标签和 CSS。
为什么 <p></p> 和 <br> 不能混着乱用
很多人写完一段文字就随手加一个 <br> 换行,结果发现段落间距不一致、打印样式错乱、响应式布局塌陷。根本原因是:<br> 是强制换行,不产生新块级上下文;而 <p></p> 是语义化段落容器,自带默认 margin 和流式行为。
-
<p></p>适合表达一个完整语义段落(比如新闻正文、用户说明),它会自动处理内外边距、换行、对齐 -
<br>只该用于同一段落内的自然断行(如地址、诗行、联系人信息),用多了等于放弃语义控制 - 在 CSS 重置或自定义样式后,
<br>的视觉效果可能完全消失(比如设置了white-space: nowrap)
<pre class="brush:php;toolbar:false;"></pre> 标签保留换行但破坏响应式布局
<pre class="brush:php;toolbar:false;"></pre> 确实能原样显示空格和回车,但它默认使用等宽字体、不换行(white-space: pre),在小屏幕下极易横向溢出。更麻烦的是,它无法被常规 CSS 文本对齐属性(如 text-align)直接控制内容对齐方式。
- 只在展示代码、ASCII 图、日志片段等「格式即内容」场景下才用
<pre class="brush:php;toolbar:false;"></pre> - 若需保留缩进但又想响应式换行,应改用
<div> + <code>white-space: pre-wrap+word-break: break-word -
<pre class="brush:php;toolbar:false;"></pre>内部嵌套<code>是标准做法,但别在里面塞大段普通文案 - 对齐必须用 CSS:比如
text-align: center控制内联内容,margin: 0 auto配合width居中块级元素 -
<hr>的align、size、color等属性同样失效,应改用style="border: none; border-top: 3px solid #ff6b6b;" - 用
<div style="text-align: right"> 包裹标题,不如直接给 <code><h2></h2>加 class 并在外部 CSS 中统一管理最容易被忽略的一点:排版效果是否生效,取决于你有没有真正理解「HTML 定义结构、CSS 控制呈现」这条分界线。写十个
<br>不如一个<p></p>加一行margin-bottom;硬塞align属性不如打开开发者工具看一眼 computed styles —— 真正的排版控制权,从来不在标签属性里,而在 CSS cascade 和 layout mode 中。
align 属性在现代 HTML 中已废弃
你在老教程里看到的 <p align="center"></p> 或 <h2 align="right"></h2>,在 HTML5 中属于过时用法,W3C 已明确标记为 obsolete。浏览器虽仍支持,但校验器报错、SEO 工具警告、部分无障碍阅读器会忽略其语义意图。











