href 只在 标签中生效,因其是该标签专有属性,浏览器仅解析 时读取并触发跳转;用于 等其他标签会被忽略,既不报错也无效果。

为什么 href 只在 <a></a> 里生效,而加到 <p></p> 上没反应
因为属性和标签是强绑定的,不是所有属性都能用在任意标签上。href 是 <a></a> 的专有属性,浏览器只在解析 <a></a> 时读取它并触发跳转逻辑;写在 <p></p> 里会被忽略——既不报错,也不起作用。
常见错误现象:给 <div> 或 <code><span></span> 加 href,以为能点击跳转,结果只是普通文本。
-
src只对<img>、<script></script>、<iframe></iframe>等资源型标签有效 -
alt必须配合<img>使用,单独写在<div> 上毫无意义 <li> <code>class和id是通用属性,几乎所有标签都能用,但用途不同:id唯一且常用于锚点或 JS 定位,class可复用,主要服务 CSS - 同一个页面里
id重复会导致document.getElementById()只返回第一个匹配项,JS 行为不可靠 -
class允许多个值,如class="btn btn-primary disabled",但中间不能有空格以外的字符(逗号、中文顿号都不行) - 嵌套越深,CSS 选择器越容易意外捕获非目标元素,建议优先用语义化标签 + 精简 class 名,少依赖层级关系
-
<p></p>是块级标签,不能作为<span></span>(行内)的子元素;反之可以,但没实际意义 -
<li>必须直接放在<ul></ul>或<ol></ol>内,否则会被移出列表,变成孤立节点 -
里不能出现相关内容(如<div>、<code><p></p>),否则这些内容可能被丢弃或移到开头属性值带引号和不带引号,什么时候会出问题
HTML 对引号宽容,但省略引号只在值不含空格、等号、斜杠、双引号时才安全。一旦疏忽,解析就会出岔子。
例如:
<a href="home.html"></a>没问题,但<a href="product" list.html></a>会被解析成href="product",后面list.html变成无意义的文本。- 推荐统一用双引号,尤其涉及路径、类名、JS 字符串时(如
onclick="alert('OK')") - 单引号可用于属性值内部含双引号的情况,如
title="他说:'别动'"→ 改成title='他说:"别动"' - 自闭合标签如
<img src="a.jpg">中的斜杠不是必须的,但加上更清晰,尤其团队协作时
最容易被忽略的是路径中带空格或特殊字符(比如中文文件名),不加引号几乎必然失败。别图省事,引号是成本最低的容错手段。
- 推荐统一用双引号,尤其涉及路径、类名、JS 字符串时(如
class 和 id 在嵌套结构中怎么影响样式与脚本定位
它们不是“装饰性”属性,而是 DOM 操作和样式匹配的入口。一旦嵌套层级变深,class 和 id 的作用范围就立刻暴露出来。
使用场景:比如一个 <nav></nav> 里嵌了 <ul></ul>,再嵌 <li>,最后是 <a></a> —— 如果你给最外层 <nav></nav> 加了 class="main-nav",CSS 写 .main-nav a 就能精准选中所有内部链接;但如果错把 class 加在 <li> 上,就得写成 li.main-item a,可读性和维护性都下降。
嵌套时哪些标签组合会直接破坏 HTML 结构
不是所有标签都能互相嵌套,浏览器会自动纠错,但纠错结果往往和你预期不符,导致布局错乱或脚本失效。
典型错误现象:把 <p></p><div class="aritcle_card flexRow artxards">
<div class="artcardd flexRow">
<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill9263" title="Html2md"><img
src="https://img.php.cn/upload/skill/000/000/081/179249945220127.jpg" alt="Html2md" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a rel="nofollow" href="/xiazai/skill9263" title="Html2md" class="overflowclass">Html2md</a>
<p class="overflowclass">使用 Readability + Turndown 将 HTML 页面转换为干净的、Agent 友好的 Markdown。去除导航栏、广告、页脚、Cookie 横幅、社交按钮等干扰元素。支持 URL...</p>
</div>
<a rel="nofollow" href="/xiazai/skill9263" title="Html2md" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
</a>
</div>
</div> 套进 <span></span> 里,或者在 <ul></ul> 外直接写 <li>,浏览器会把非法结构“修复”成看似合理但语义丢失的 DOM。










