一天通关HTML80%核心细节(新手友好版)
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
一、基础认知1.HTML 是超文本标记语言(HyperText Markup Language) ,只有标签,没有逻辑、变量、循环,本质是给浏览器看的 "说明书",告诉浏览器页面结构是什么样的。 2.HTML5 不是新语言,HTML5 是 HTML 的第 5 个大版本,我们现在写的所有 HTML 代码,本质都是 HTML5。 3.即使你写错标签、少写闭合、语法错误,浏览器也会尽量渲染页面,不会直接报错。这是 HTML 最友好也最坑人的地方 —— 代码错了但看起来正常,留下隐形 bug。 二、文档结构: 新手都会忽略的细节
三、最容易踩坑的基础属性
超级大坑:
2. class vs id
3. 路径问题
坑点:本地打开 HTML 文件时,根路径会指向电脑磁盘根目录,而不是项目文件夹,导致资源加载失败。 四、核心标签深度细节
✅ 最佳实践:
3. 列表标签
4. 超链接 |
| type 值 | 作用 | HTML5 专属 |
|---|---|---|
text | 单行文本输入框 | ❌ |
password | 密码框,输入内容掩码 | ❌ |
radio | 单选框,相同 name 为一组 | ❌ |
checkbox | 复选框,相同 name 为一组 | ❌ |
submit | 提交按钮,点击自动提交表单 | ❌ |
button | 普通按钮,无默认行为 | ❌ |
email | 邮箱输入框,自带格式验证 | ✅ |
number | 数字输入框 | ✅ |
date | 日期选择器 | ✅ |
time | 时间选择器 | ✅ |
tel | 电话号码输入框 | ✅ |
search | 搜索框 | ✅ |
超级重要:
单选框必须设置相同的 name 才能实现单选效果
复选框的 name 应该写成数组形式:name="hobby[]",后端才能接收多个值
<input type="submit"> 自带提交功能,不需要写任何 JS
<select>:下拉选择框,包含 <option> 子元素
<textarea>:多行文本域,不能用 value 属性设置默认值,默认值写在标签中间
<button>:按钮标签,比 input 按钮更灵活,可以包含图片、文字等内容

controls:显示播放控件
poster:视频封面图
标签中间的文字是浏览器不支持时的备用内容
Canvas 画布

Canvas 是用 JS 绘图的画布,适合画复杂图形、动画、游戏
getContext("2d") 是固定写法,开启 2D 绘图模式
3D 绘图用 getContext("webgl")
3.SVG 矢量图

SVG 是用标签画的矢量图,放大不会失真
适合画图标、简单图形
可以直接嵌入 HTML,也可以作为外部文件引入
localStorage:永久存储,关闭浏览器不会消失
sessionStorage:会话存储,关闭浏览器就消失
| 标签 A | 标签 B | 核心区别 |
|---|---|---|
<div> | <section> | div 纯布局,section 代表独立内容板块 |
<section> | <article> | article 是特殊的 section,代表可以独立存在的内容 |
<b> | <strong> | b 只是视觉加粗,strong 语义化加粗,表示重要 |
<i> | <em> | i 只是视觉斜体,em 语义化斜体,表示强调 |
<input type="button"> | <button> | input 按钮只能显示文字,button 按钮可以包含任意内容 |
<img> | <canvas> | img 显示图片,canvas 用 JS 绘图 |
<canvas> | <svg> | canvas 是位图,放大失真;svg 是矢量图,放大不失真 |
<details> 和 <summary>:折叠面板
<mark>:高亮文字
<sup> 和 <sub>:上标和下标
<blockquote>:长引用
<code>:行内代码
<pre>:预格式化文本,保留空格和换行
语义化优先:能用语义化标签就不用 div,提升 SEO 和无障碍
结构和样式分离:不要用行内样式,所有样式都写在 CSS 文件中
标签闭合:所有标签都要正确闭合,单标签不要写闭合标签
属性小写:所有标签和属性都用小写字母
alt 属性必写:所有图片都要加 alt 属性
label 必绑 input:所有输入框都要有对应的 label 标签
不要用废弃标签:<font>、<center>、<strike>等已经被 HTML5 淘汰,全部用 CSS 代替
移动端适配:必须加 viewport 标签
安全:外链加 rel="noopener noreferrer"