HTML格式化标签本身不支持alt属性,仅img、area、input[type="image"]等媒体元素必须配alt;title是全局属性,所有标签均可添加但非必须,如2023年版本可提升可访问性。

哪些 HTML 格式化标签必须配 alt 或 title 属性?
严格来说,<strong></strong>、<em></em>、<mark></mark> 这类纯语义标签本身不支持 alt 或 title —— 它们不是媒体元素,加了也无效。真正需要这些属性的是 <img> 和 <iframe></iframe> 等嵌入型标签。
但有个例外:所有格式化标签(比如 <u></u>、<del></del>)都可合法添加 title 属性,用于鼠标悬停提示。例如:<del title="该条款已废止">2023年版本</del>。这不算“必须”,但对可访问性有实际帮助。
-
alt只对<img>、<area>、<input type="image">有效,其他格式化标签加了会被浏览器忽略 -
title是全局属性,任何 HTML 元素都能用,但过度使用会干扰屏幕阅读器节奏 - 别给
<strong></strong>加alt——常见错误,控制台不会报错,但毫无意义
<b></b> 和 <strong></strong> 的属性差异真的只在语义上?
是的,渲染效果完全一致(默认都是加粗),但属性支持和可访问性处理完全不同:
-
<strong></strong>被屏幕阅读器识别为“重要强调”,可能改变语调或增加停顿;<b></b>仅作视觉加粗,无语音提示 - 两者都不支持
src、width、height这类媒体专属属性,强行写进去无效 - 若需控制加粗程度,得用 CSS 的
font-weight,HTML 层面没有weight或level这类属性 - W3C 明确建议:用
<strong></strong>表达内容重要性,<b></b>仅用于“无需额外语义的视觉加粗”,比如产品名、关键词高亮
为什么 <u></u> 的 style 属性经常失效?
不是失效,是被浏览器内置样式覆盖了。现代浏览器(Chrome/Firefox/Edge)默认给 <u></u> 加了 text-decoration: underline solid rgba(0,0,0,.87),且优先级高于内联 style 中的部分声明。
将 Markdown 文章转换为微信公众号兼容的纯 HTML 格式。当用户要求"转成微信格式"、"生成公众号文章 HTML"、"排版到微信草稿箱"、"微信粘贴格式"时触发。输出带内联样式的纯 HTML,微信编辑器可直接渲染,无需额外适配。支持标题、段落、列表、粗体、行内代码、表格、引用块、代码块、配图的完整转换。
- 直接写
<u style="color:red">文字</u>有效,但<u style="text-decoration:none"></u>通常无效——必须加!important或改用<span></span>+ CSS - 更稳妥的做法:避免依赖
<u></u>做样式控制,改用<span class="underline"></span>配合外部 CSS - 注意:
<u></u>在 HTML5 中语义已更新为“非文本标注”(如拼写错误、专有名词),不是通用下划线工具
格式化标签能嵌套吗?嵌套时属性怎么继承?
可以嵌套,但属性不继承。HTML 属性作用域仅限当前标签,子标签不会自动获得父标签的 title、class 或 style。
例如:<strong title="重点">价格<sup>含税</sup></strong> —— <sup></sup> 不会继承 title,鼠标移到“含税”上不会显示提示。
- 若需统一行为,得显式重复写属性:
<strong title="重点">价格<sup title="重点">含税</sup></strong> -
class和style同理:父元素设style="color:blue",子元素仍按自身样式或浏览器默认渲染,除非用 CSS 选择器明确指定后代规则 - 嵌套过深(如
<strong><em><u><mark>...</mark></u></em></strong>)会导致可维护性下降,且部分旧版 IE 对嵌套层级敏感
最易被忽略的一点:所有格式化标签的属性值必须用双引号包裹,title=important 这种写法在 HTML5 中虽不报错,但遇到空格或特殊字符会直接断裂——比如 title=100% free 实际只解析到 100%。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










