前端与 HTML | 青训营笔记
这是我参与「第五届青训营」伴学笔记创作活动的第 1 天
0x1 前端
-
什么是前端
- 解决图形用户界面(GUI)人机交互的问题
- 跨终端
- PC/移动浏览器
- 客户端/小程序
- VR/AR 等
- Web 技术栈
一句话总结前端工程师的工作:使用 Web 技术栈解决多端 GUI 人机交互问题
-
前端技术栈
在浏览网页时:
- 在浏览器中,通过 HTML 展示结构和内容,通过 CSS 表现样式,通过 JavaScript 控制行为
- 在服务器中,渲染 “HCJ” 的代码,使其图形化
- 通过各种网络协议(HTTP,TCP/IP)等,完成人机交互
由此可见,前端的技术栈主要为 三件套 和 网络协议,其中,三件套为前端的范畴
-
前端应该关注功能、美观、无障碍、安全、性能、兼容性、用户体验
-
前端的科技树
- 通过
node.js开发服务端 - 通过
Electron或ReactNative开发客户端 - 通过
WebRTC开发 P2P 型在线传输,实现多人会议等 - 通过
WebGL开发一些 3D 游戏 - 通过
WebAssembly将 C++ 等代码编译渲染成网页
- 通过
-
开发环境
-
浏览器
IE/Edge Chrome Firefox Safari
-
编辑器
VSCode Vim WebStorm
-
0x2 HTML
-
什么是 HTML
超文本标记语言:
HyperText Markup Language-
超文本(HyperText):即除文本外,还包含图片、视频等信息表达形式
-
标记语言(Markup Language):即使用标签化的语言(如
<p>段落</p>)-
在标签化的语言中,可以在标签中添加属性,如
<p color="xxx"></p>中的color就是属性名、xxx就是属性值 -
当某个标签中不需要嵌套其他标签时,可以省略结束标签,如
<br />
-
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>页面标题</title> </head> <body> <h1>一级标题</h1> <p>一个段落</p> </body> </html>对于上述的一段简单的 HTML 代码,其中:
<!DOCTYPE html>用于说明使用的 HTML 版本<html></html>是页面的根标签<head></head>用于存放页面的源数据<body></body>用于存放需要面向用户展示的内容
-
-
文档对象模型(DOM)树
再次以上述代码举例,其对应的 DOM 树如下:
-
HTML 语法
- 标签和属性不区分大小写,推荐使用小写
- 空标签可以不闭合,如
<input /> - 属性值推荐使用双引号包裹
- 某些属性值可以省略,如
required、readonly
-
标签
-
标题(
h1~h6) -
列表
-
有序列表
<ol> <li>第一项</li> <li>第二项</li> <li>第三项</li> </ol> -
无序列表
<ul> <li>xyz</li> <li>abc</li> <li>!@#</li> </ul> -
key-value
<dl> <dt>xxx:</dt> <dd>xxx1</dd> <dt>yyy:</dt> <dd>yyy1</dd> <dd>yyy2</dd> <dd>yyy3</dd> </dl>
-
-
链接
<a href="http://example.com" target="_blank">链接</a> -
多媒体
图片:
<img src="xxx.jpg" alt="替代性文本" width="200" />音频:
<audio src="xxx.wav" controls />视频:
<video src="xxx.avi" coontrols /> -
输入
输入提示:
<input placeholder="提示文本" />条状选择:
<input type="range" />范围输入:
<input type="number" />日期输入:
<input type="date" min="2000-01-01" />多行输入:
<textarea>多行输入文本</textarea>单选输入:
<label><input type="radio" name="xxx">a</label> <label><input type="radio" name="xxx">b</label>多选输入:
<label><input type="checkbox" name="xxx">a</label> <label><input type="checkbox" name="xxx">a</label>下拉选择:
<select> <option>a</option> <option>b</option> <option>c</option> </select>辅助输入:
<input list="lists" /> <datalist id="lists"> <option>aaa</option> <option>bbb</option> <option>ccc</option> </datalist> -
文本
长引用:
<blockquote cite="引用地址"> <p>xxxxx</p> </blockquote>短引用:
-
作品引用
<p> xxx<cite>yyy</cite>zzz </p> -
内容引用
<p> xxx<q>yyy</q>zzz </p>
代码引用:
<p><code></code></p>多行代码:
<pre><code></code></pre>加粗:
<strong></strong>斜体:
<em></em> -
-
-
内容划分
0x3 HTML 语义化
-
什么是语义化
-
HTML 中的元素、属性及属性值都拥有某些含义
-
开发者应该遵循语义来编写 HTML
-
-
好处
- 代码可读性
- 可维护性
- 搜索引擎优化
- 提升无障碍性
-
传达内容,而非样式
-
如何做到
- 了解每个标签和属性的含义
- 选择最适合描述内容的标签
- 不使用可视化工具生成代码

浙公网安备 33010602011771号