必须嵌套,否则语义断裂、可访问性受损、css无法分段控制;cite属性仅接受url,人类可读出处须用内部显式标注。

blockquote 必须嵌套
,否则语义断裂
直接写 <blockquote>第一段。第二段。</blockquote> 能渲染,但不是“可用”,而是透支可访问性:屏幕阅读器大概率连读成一句话,CSS 无法单独控制第二段的 margin-top 或 text-indent,XHTML strict 模式或部分 CMS 会校验失败。
正确结构只有一种:<p></p> 是必需容器,每段自然段必须独立包裹:
<blockquote cite="https://example.com"></blockquote><p>这是第一段引用内容。</p><p>这是第二段,逻辑上独立。</p>
若引用中含列表、小标题或代码块,可合法嵌套 <ol></ol>、<h4></h4>、<pre class="brush:php;toolbar:false;"></pre> 等流内容元素,只要它们语义合理、不破坏引用上下文。
cite 属性只接受 URL,填书名或人名就失效
cite 是纯机器可读属性,浏览器不渲染它,也不校验链接是否有效——但它会拒绝非 URL 格式。填 cite="《JavaScript 高级程序设计》" 或 cite="张三",HTML 验证器直接报错,爬虫提取不到出处,document.querySelector('blockquote').cite 返回空字符串或 null。
真正有效的值只有两类:
- 绝对 URL:
cite="https://zh.wikisource.org/wiki/静夜思" - 相对路径或锚点:
cite="/poems/jingyesi.html"或cite="#section2"
如果目标 URL 返回 404 或跳转首页,cite 就失去追溯价值——它不是装饰,是元数据凭证。
人类可读出处必须用
cite 属性本身不可见,想让用户看到“出自哪里”,必须在 <blockquote></blockquote> 内部末尾手动加结构:
-
<footer></footer>必须作为<blockquote></blockquote>的直接子元素,不能放外面 -
<cite></cite>只用于作品标题、文章名、网站名等,不用于人名(人名用普通文本) - 别用
<small></small>或伪元素替代——它们没有语义,屏幕阅读器忽略
示例:
<blockquote cite="https://www.w3.org/TR/html52/grouping-content.html#the-blockquote-element"> <p>The <code><blockquote></code> element represents content that is quoted from another source.</p> <footer>— <cite>HTML Standard, W3C</cite></footer> </blockquote>
样式重置优先动 margin,引号得靠伪元素手动加
浏览器默认给 <blockquote></blockquote> 加的是左右外边距(Chrome/Firefox 约 40px),不是 padding 或 text-indent。text-indent 对整个块无效,只影响首行首字符,多段引用会视觉错乱。
推荐重置方式:
- 清除默认缩进用
blockquote { margin: 0; },不是padding-left - 加左侧竖线更可靠:
blockquote { border-left: 3px solid #ccc; padding-left: 1rem; } - 中文引号必须用伪元素:
blockquote::before { content: "「"; font-size: 1.5em; }
注意:quotes CSS 属性对 <blockquote></blockquote> 无效,别白费劲。
<footer></footer> 放到 <blockquote></blockquote> 外面,或者把人名塞进 <cite></cite> —— 这两类错误不会导致页面崩溃,但会让辅助技术完全误解引用关系。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











