讲师中心 微信公众号
AI工具推荐 视频效率加速

html语句嵌套怎么写才标准_w3c嵌套规则介绍【介绍】

浅强姑娘_8066

浅强姑娘_8066

发布时间:2026-02-10 12:00:48

|

394人浏览过

|

来源于php中文网

原创

仅允许嵌套内联级元素(如、、),禁止块级元素(如、);必须作为或的直接子元素;只允许元数据元素(如、);须用SVG元素,自定义元素需符合其继承的内容模型。

html语句嵌套怎么写才标准_w3c嵌套规则介绍【介绍】

HTML 元素嵌套没有“绝对标准写法”,只有符合 W3C 内容模型(content model)的合法嵌套才被解析器接受。非法嵌套不会报错,但会导致 DOM 结构异常、样式失效或可访问性问题。

哪些元素不能作为子元素出现在 <p></p> 里

<p></p> 是“短语级”(phrasing)内容容器,只允许嵌套内联级元素,比如 <span></span>、<em></em>、<strong></strong>、<a></a>、<img alt="html语句嵌套怎么写才标准_w3c嵌套规则介绍【介绍】" >。它不能包含块级元素,例如:

  • <div> —— 浏览器会自动闭合前面的 <code><p></p>,再开一个新 <p></p>(或丢弃)
  • <h2></h2>、<ul></ul>、<section></section> —— 同样触发隐式闭合,结构断裂
  • <p></p> <div>xxx</div> 实际被解析为 <p></p> <p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</p><div class="aritcle_card flexRow"> <div class="artcardd flexRow"> <a class="aritcle_card_img" href="/xiazai/skill10246" title="HTML Text Extract"><img src="https://img.php.cn/upload/skill/001/246/273/6adaf20dee630206.jpg" alt="HTML Text Extract" ></a> <div class="aritcle_card_info flexColumn"> <a href="/xiazai/skill10246" title="HTML Text Extract">HTML Text Extract</a> <p>从HTML页面(URL、文件或标准输入)中提取主体内容文本,去除导航、页脚、广告和模板文本。可直接传递给readability_check或其他文本工具。</p> </div> <a href="/xiazai/skill10246" title="HTML Text Extract" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div> <div>xxx</div> <p></p> <p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</p>
  • <li> 必须直接放在 <ul></ul> 或 <ol></ol> 里

    <li> 不是独立可渲染元素,它的语义依赖于父列表容器。单独写 <li>item</li> 是无效 HTML,在 W3C 验证器中会报 Element “li” not allowed as child of element “body”。

    • ✅ 正确:<ul> <li>one</li> <li>two</li> </ul>
    • ❌ 错误:<div><li>standalone</li></div>(<li> 不能是 <div> 的子元素) <li>⚠️ 注意:<code><ol></ol> 和 <ul></ul> 也不能互相嵌套为直接子元素,但可以嵌套在 <li> 内部(即多层列表)
    • 里只能放元数据类元素

      的内容模型严格限定为“文档元数据”,浏览器只允许特定标签:如 <title></title>、<meta>、<link>、<style></style>、<script></script>(带 defer 或 type="module" 更稳妥)、<base> 等。

      • ❌ <div>、<code><p></p>、<header></header> 出现在 中会被浏览器移到 开头(即使你没写 标签)
      • ❌ <script></script> 在 中执行时,DOM 尚未构建,若操作 document.body 会报 Cannot read property 'xxx' of null
      • ✅ 若需运行脚本,用 DOMContentLoaded 监听,或加 defer 属性
      • 自定义元素和 SVG 嵌套要守规则

        原生 HTML 规则不自动适用于 <svg></svg> 或自定义元素(<my-button></my-button>),但它们各自有约束:

        • <svg></svg> 内部必须用 SVG 命名空间元素,比如 <circle></circle>、<text></text>;混入 <div> 会当作普通 HTML 元素渲染(可能位置错乱) <li>自定义元素若继承 <code>HTMLUnknownElement,浏览器不校验其子元素;但若扩展内置元素(如 extends: "button"),则仍受原生按钮的内容模型限制(例如不能塞 <div>) <li>用 <code>customElements.define() 注册前,确保模板中嵌套符合预期语义,否则辅助技术(如屏幕阅读器)可能无法正确识别
        • 最常被忽略的是:W3C 验证器(validator.w3.org)能立刻暴露嵌套错误,但开发者常依赖“看起来正常”就认为没问题 —— 实际上 DOM 树已变形,JS 查询、CSS 选择器、无障碍树都可能出偏差。

相关文章

如何为 HTML 下拉选项触发时间选择器(纯 JavaScript 实现)

如何为 HTML 下拉选项绑定点击事件并动态显示时间选择器

Microsoft Edge 126 打印异常问题解析与临时解决方案

Microsoft Edge 126 打印异常问题的成因与临时解决方案

如何固定打字机效果容器宽度,避免页面布局抖动

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

上一篇:HTML5动画怎么做给动画加背景音乐_音频同步播放说明【说明】 下一篇:如何在仅支持内联样式的 HTML 环境中实现文本与表格的垂直居中对齐

作者最新文章

热门AI工具

更多
SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

549

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

1698

2024.03.01

typedef和define区别
typedef和define区别

typedef和define区别在类型检查、作用范围、可读性、错误处理和内存占用等。本专题为大家提供typedef和define相关的文章、下载、课程内容,供大家免费下载体验。

313

2023.09.26

define的用法
define的用法

define用法:1、定义常量;2、定义函数宏:3、定义条件编译;4、定义多行宏。更多关于define的用法的内容,大家可以阅读本专题下的文章。

619

2023.10.11

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

4576

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1375

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1798

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

10123

2023.08.17

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

20

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

相关下载

更多

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
GDB 17.2 官方文档集合
GDB 17.2 官方文档集合

共0课时 | 0人学习

Bootstrap 入门安装配置
Bootstrap 入门安装配置

共0课时 | 0人学习

38+ PhpStorm 提示和技巧
38+ PhpStorm 提示和技巧

共1课时 | 228人学习

最新文章

更多

PDF工具

更多
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn