这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
前端的基本概念
什么是前端
-
解决GUI人机交互问题
-
跨终端
- PC/移动浏览器
- 客户端/小程序
- VR/AR 等
-
Web技术栈
前端技术栈
- JavaScript(行为)
- CSS(样式)
- HTML(内容)
前端应该关注的方面
- 功能
- 美观
- 无障碍
- 安全
开发环境
-
浏览器
- IE/Edge
- Chrome
- Firefox
- Safari
-
编辑器
- VSCode - Visual Studio Code
- Vim
- WebStorm
HTML 的基本概念
HTML 是什么
-
HyperText Markup Language - 超文本标记语言
- HyperText - 超文本 - 图片/标题/链接/表格
- Markup Language - 标记语言 -
<h1>一级标题</h1>
HTML 的基本结构
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>页面标题</title>
</head>
<body>
<h1>一级标题</h1>
<p>段落内容</p>
</body>
</html>
-
<html></html>- 文档根标签<head></head>- 文档元数据<body></body>- 文档主体
HTML 的元素与属性
-
元素
<!--开始标签--> <p> 段落内容 <!--结束标签--> </p>一个元素由一个开始标签和一个结束标签组成,
<p></p>组成了一个段落元素 -
属性
<img src="photo.jpg" />一个属性由属性名
src和属性值photo.jpg组成,即key="value"img元素可以不使用额外内容,故仅插入
/省略结束标签
HTML头 的常用元素
| 标签 | 描述 |
|---|---|
<title> | 文档标题 |
<base> | 页面链接标签的默认链接地址 |
<link> | 一个文档和外部资源之间的关系 |
<style> | HTML文档的样式文件 |
<meta> | HTML文档中的元数据 |
<script> | 客户端的脚本文件 |
HTML 语法
HTML 标题
<h1>一级标题</h1>
<h2>二级标题</h2>
<h6>六级标题</h6>
HTML由6种标题,分别对应<h1> - <h6>,<h1>最大,<h6>最小
HTML 列表
-
有序列表 - ordered list
<ol> <li>阿凡达</li> <li>泰坦尼克号</li> <li>复仇者联盟</li> </ol> -
无序列表 - unordered list
<ul> <li>阿凡达</li> <li>泰坦尼克号</li> <li>复仇者联盟</li> </ul> -
描述列表 - description list
<dl> <dt>键</dt> <dd>值</dd> <dt>键</dt> <dd>值1</dd> <dd>值2</dd> <dd>值3</dd> </dl>在描述列表中,使用
键值对的形式表示每组值的关系,多个键可以对应多个值<dt>:键 - terms<dd>:值 - describes
HTML 链接
<a href="https://www.bytedance.com/">字节跳动官网</a>
<a href="https://www.bytedance.com/" target="_blank">字节跳动官网</a>
href="···":定义超链接地址
target="_blank":在新页面中打开
HTML 多媒体
-
图片 - img
<img src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ubqnuhbnuho/movable_type.jpg" alt="Metal movable type" width="400" />src="":图片源(本地路径或网络地址)alt="":替代性文本(Alternative Text),降级传达图片信息width="":图片宽度 -
音频 - audio
<audio src="/assets/music.ogg" controls ></audio>src:"":音频源controls:显示浏览器默认音频控件(进度条/暂停/音量等) -
视频 - video
<video src="/assets/video.mp4" controls ></video>src:"":视频源controls:显示浏览器默认视频控件(进度条/暂停/音量等)
HTML 表单控件
-
<input>- 输入<input placeholder="请输入用户名"> <input type="range" min="0" max="10" value="5"> <input type="number" min="1" max="10"> <input type="date" min="2018-02-10">placeholder="":文本框占位符type="range":创建一个滑条type="number":限定文本框输入为数字type="date":设置文本框为日历 -
<textarea>- 多行文本框<textarea>Hey</textarea><textarea>:多行文本输入框 -
<checkbox>- 复选框<label><input type="checkbox" />apple</label> <label><input type="checkbox" checked />banana</label><label>:为input元素定义标注,即当用户选择该标签时,自动将焦点转到和标签相关的表单控件上<type="checkbox">:复选框<chechboxed>:初始选中 -
<radio>- 单选框<label><input type="radio" name="sports" />football</label> <label><input type="radio" name="sports" />basketball</label>type="radio":单选框name="":name值相同的input元素只能选定一个 -
<select>- 下拉框<select> <option>peer</option> <option>apple</option> <option>bananan</option> <option>orange</option> </select><select>:下拉框<option>:下拉框选项 -
<datalist>- 预定义列表<input list="countries" /> <datalist id="countries"> <option>Greece</option> <option>United kingdom</option> <option>United States</option> </datalist>list="":加载预定义列表<input list="">:该文本框允许输入任意值,但是为预定义列表提供补全功能<datalist>:预定义选项列表id="":与input元素的list属性相等,用于绑定<datalist>和<input>
HTML 文本控件
-
<blockquote>- 长引用<blockquote cite="http://t.cn/RfjKO0F"> 天才并不是自生自长在深林荒野里的怪物,是由可以使天才生长的民众产生、长育出来的,所以没有这种民众,就没有天才。 </blockquote><blockquote>:长引用<cite>:引用的来源 -
<cite>- 短引用我最喜欢的一本书是<cite>小王子</cite>。 在<cite>第一章</cite>,我们讲过<q>字符串时不可变量</q>。<cite>:一般用于作品名字或章节名<q>:一般用于引用具体的内容 -
<code>- 代码块<code>const</code>声明创建一个只读的常量。 <pre><code> const add = (a, b) => a + b; const multiply = (a, b) => a + b; </code></pre><code>:定义一个代码块,长度不限<pre>:定义一个预格式化文本,使用等宽字体其余常用的还有:
<samp>:定义程序输出<kbd>:定义键盘输入<var>:定义变量
-
<strong>- 加粗在投资之前,<strong>一定要做风险评估</strong>。</strong>:粗体,一般强调事情重要,严重,紧急 -
<em>- 斜体Cats <em>are</em> cute animals.<em>:斜体,一般用于强调语气上的强调
HTML 页面内容划分
<header>:页面头,一般放LOGO、导航等
<main>:页面主体,一般页面内只有一个main元素
<article>:页面正文,例如博客页面的一篇文章
<aside>:与页面内容相关,但不直接属于页面内容的,例如广告、热点文章等
<footer>:页尾,一般放参考、版权、备案等
HTML 语法的注意事项
- 标签和属性不区分大小写,推荐
小写 - 空标签可以不闭合,比如
input、meta - 属性值推荐使用
双引号包裹,即"属性值" - 某些属性值可以省略,例如
required、readonly等
HTML 的相关知识
语义化
-
HTML中的
元素、属性及属性值都拥有某些含义 -
开发者应当遵循
语义来编写HTML- 有序列表用
ol;无序列表用ul lang属性表示内容的语言
- 有序列表用
语义化的好处
- 代码可读性
- 可维护性
- 搜索引擎优化
- 提升无障碍性
谁在使用我们写的 HTML
- 开发者 - 修改、维护页面
- 浏览器 - 展示页面
- 搜索引擎 - 提取关键词、排序
- 屏幕阅读器 - 无障碍性,给盲人读页面内容
如何做到语义化
- 了解每个标签和属性的含义
- 思考什么标签最适合描述这个内容
- 不使用可视化工具生成代码