HTML规范 - 整体结构
HTML基础设施
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
nbsp;html>
|
结构顺序和视觉顺序基本保持一致
结构、表现、行为三者分离,避免内联
保持良好的简洁的树形结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
另外,请做到以下几点
如果可以写成
那么就不要写成比如
比如不要出现这种情况:
比如在这样一个列表中,li标签中的itm应去除:
HTML规范 - 代码格式
说明文案的注释方法
采用类似标签闭合的写法,与HTML统一格式;注释文案两头空格,与CSS注释统一格式。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
代码本身的注释方法
单行代码的注释也保持同行,两端空格;多行代码的注释起始和结尾都另起一行并左缩进对齐。
1 2 3 4 5 6 7 |
HTML注释在IE6中的BUG
严格的嵌套
严格的属性
常用的标签
常见标签表 | ||||
标签 | 语义 | 嵌套常见错误 | 常用属性(加粗的为不可缺少的或建议的) | |
超链接/锚 | a不可嵌套a | href,name,title,rel,target | ||
换行 |
|
| ||
按钮 | 不可嵌套表单元素 | type,disabled | ||
定义列表中的定义(描述内容) | 只能以dl为父容器,对应一个dt |
| ||
文本删除 |
|
| ||
块级容器 |
|
| ||
| 定义列表 | 只能嵌套dt和dd |
| |
定义列表中的定义术语 | 只能以dl为父容器,对应多个dd |
| ||
强调文本 |
|
| ||
表单 |
| action,target,method,name | ||
标题 | 从h1到h6,不可嵌套块级元素 |
| ||
内嵌一个网页 |
| frameborder,width,height,src,scrolling,name | ||
图像 |
| alt,src,width,height | ||
各种表单控件 |
| type,name,value,checked,disabled,maxlength,readonly,accesskey | ||
标签为input元素定义标注 |
| for | ||
| 列表项 | 只能以ul或ol为父容器 |
| |
引用样式或icon | 不可嵌套任何元素 | type,rel,href | ||
文档信息 | 只用于head | content,http-equiv,name | ||
| 有序列表 | 只能嵌套li |
| |
select中的一个选项 | 仅用于select | value,selected,disabled | ||
段落 | 不能嵌套块级元素 |
| ||
<script></script> | 引用脚本 | 不可嵌套任何元素 | type,src | |
列表框或下拉框 | 只能嵌套option或optgroup | name,disabled,multiple | ||
内联容器 |
|
| ||
强调文本 |
|
| ||
引用样式 | 不可嵌套任何元素 | type,media | ||
下标 |
|
| ||
上标 |
|
| ||
| 表格 | 只可嵌套表格元素 | width,align,background,cellpadding,cellspacing,summary,border | |
表格主体 | 只用于table |
| ||
表格中的单元格 | 只用于tr | colspan,rowspan | ||
多行文本输入控件 |
| name,accesskey,disabled,readonly,rows,cols | ||
表格表尾 | 只用于table |
| ||
表格中的标题单元格 | 只用于tr | colspan,rowspan | ||
表格表头 | 只用于table |
| ||
| 文档标题 | 只用于head |
| |
表格行 | 嵌套于table或thead、tbody、tfoot |
| ||
| 无序列表 | 只能嵌套li |
|
HTML规范 - 内容语义
内容类型决定使用的语义标签
在网页中某种类型的内容必定需要某种特定的HTML标签来承载,也就是我们常常提到的根据你的内容语义化HTML结构。
加强“资源型”内容的可访问性和可用性
在资源型的内容上加入描述文案,比如给img添加alt属性,在audio内加入文案和链接等等。
加强“不可见”内容的可访问性
背景图上的文字应该同时写在html中,并使用css使其不可见,有利于搜索引擎抓取你的内容,也可以在css失效的情况下看到内容。
适当使用实体
以实体代替与HTML语法相同的字符,避免浏览解析错误。
HTML规范 - 邮件内容
邮件环境
邮件内容所在上下文或者说所在外部容器(以下简称环境)都是由邮箱服务商决定的,这就要求邮件内容需要在任何一种情况下都要正确显示。
这些环境可能是以下某几种情况:
避免被嵌套在不正确的容器里
惑:因为容器可能是body或div,所以,我们邮件内容不应该是一个完整的html。
解:所以邮件内容应该是以div为根节点的html片段。
避免css冲突或被覆盖
惑:因为环境中可能已经设置了css,比如一些reset、一些.class。
解:所以我们只能使用行内style来确保我们的效果,并且在内容根节点上设置基础style,并且尽量使用div、span等无语义标签。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
内容区域
内容区域
|
避免盒模型错误
惑:因为doctype的不确定性,我们在写style的时候,应该考虑无论doctype是什么情况,都可以正常显示,doctype影响最大的就是盒模型的解析。
解:所以我们要将盒模型拆分开来写,比如我们将原本要定义在某个div上的height和padding分别写到这个div和他的父元素或子元素上。
1 2 3 |
内容
内容 |
其他注意事项
1 2 3 4 5 6 7 8 9 10 11 |
|
发现的问题及解决方案
问题:部分智能手机的邮件客户端可能会有只显示部分的bug(宽度被截)。
解决:在外面套一个同宽的table即可。
1 2 3 4 5 |
|
使用框架
推荐使用 email框架 来创建邮件内容。

htmltagsareessentialforwebdevelopmentastheyandendenhancewebpages.1)heSdefinElayout,语义和互动性。2)SemantictagsiCtagSimproveCacsibilitieAndseo.3)pose poseriblesibilityAndseoandseo.3)poser

一致的HTML编码风格很重要,因为它提高了代码的可读性、可维护性和效率。1)使用小写标签和属性,2)保持一致的缩进,3)选择并坚持使用单引号或双引号,4)避免在项目中混合使用不同风格,5)利用自动化工具如Prettier或ESLint来确保风格的一致性。

在Bootstrap4中实现多项目轮播的解决方案在Bootstrap4中实现多项目轮播并不是一件简单的事情。虽然Bootstrap...

如何实现鼠标滚动事件穿透效果?在我们浏览网页时,经常会遇到一些特别的交互设计。比如在deepseek官网上,�...

无法直接通过CSS修改HTML视频的默认播放控件样式。1.使用JavaScript创建自定义控件。2.通过CSS美化这些控件。3.考虑兼容性、用户体验和性能,使用库如Video.js或Plyr可简化过程。

在手机上使用原生select的潜在问题在开发移动端应用时,我们常常会遇到选择框的需求。通常情况下,开发者倾...

在手机上使用原生select的弊端是什么?在移动设备上开发应用时,选择合适的UI组件是非常重要的。许多开发者�...

使用Three.js和Octree优化房间内第三人称漫游的碰撞处理在Three.js中使用Octree实现房间内的第三人称漫游并添加碰�...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

Dreamweaver CS6
视觉化网页开发工具

Dreamweaver Mac版
视觉化网页开发工具

SublimeText3 Linux新版
SublimeText3 Linux最新版