这是我参与「第五届青训营 」伴学笔记创作活动的第1天
一、本堂课重点内容:
- 前端概览
- 什么是前端
- 前端的技术栈
- 前端的边界
- 前端的关注点
- HTML
- HTML 简介
- 常用标签
- HTML 语义化
二、详细知识点介绍:
1.什么是前端?
前端工程师是使用web技术栈解决多端图形用户交互问题的工程师。
2.前端技术栈
- HTML(最基础):负责页面的结构和内容
- CSS(样式):eg.位置、大小、颜色等信息
- JavaScript:定义网页的行为
3.前端应该关注哪些方面?
功能、美观、无障碍(Accessibility)、安全、性能、兼容性
4.前端的边界
- nodejs:开发服务器端的应用
- ELECTRON:开发客户端的应用
- React Native:开发客户端的应用
- Web RTC:进行P2P在线传输,实现多人的会议
- WebGL:开发3D游戏
- WebASSEMBLY:把c++、Rast等其他语言编写的代码编译成可以直接在浏览器运行的代码
4.开发环境
- 浏览器:IE/Edge、Chrome、Firefox、Safari
- 编辑器:VSCode、Vim、WebStorm
5.HTML(HyperText Markup Language)
-DOM树
-HTML语法
- 标签和属性不区分大小写,推荐小写
- 空标签可以不闭合,比如input、meta
- 属性值推荐用双引号包裹
- 某些属性值可以省略,比如required、readonly
-标题h1~h6
-列表标签
<ul><li>无序列表标签<ol><li>有序列表标签<dl><dt><dd>定义性列表标签
<dl>
<dt>第一项</dt>
<dd>叙述第一项的定义</dd>
</dl>
-链接
<a href="网址" target="_self">链接显示的文本</a>
<a href="网址" target="_blank">链接显示的文本</a>
技术点解释:
- a标签有target属性,代表标签打开的方式;
- 默认值“_self”代表在当前页面打开链接;
- “_blank”代表在新窗口打开链接
-多媒体(图片、音频、视频)
- img
- audio
- video
-控件(输入和选择)
1. <input>标签
<input placeholder="请输入用户名">
<br>
<input type="range">
<br>
<input type="number" min="1" max="10">
<br>
<input type="date" min="2018-02-10">
<br>
<textarea>Hey</textarea>
运行结果:
<p>
<label><input type="checkbox" />🍎</label>
<label><input type="checkbox" checked />🍏</label>
</p>
<p>
<label><input type="radio" name="sport" />⚽</label>
<label><input type="radio" name="sport" />🏀</label>
</p>
技术点解释:
- checkbox多选(方形选框)
- radio单选(圆形选框)
运行结果:
2. <select>标签
<select>
<option>🥑</option>
<option>🥩</option>
<option>🥓</option>
</select>
运行结果:
3.用户在文本框输入时给予一些提示,但不影响输入
代码实现:
<input list="countries" />
<datalist id="countries">
<option>Greece</option>
<option>United Kingdom</option>
<option>United States</option>
</datalist>
运行结果:
- 文本标签
(1).<blockquote>快捷引用
代码实现:
<blockquote cite="http://t.cn/RfjKO0F">
<p>天才并不是自生自长在深林荒野里的怪物, 是由可以使天才生长的民众产生、长育出来的,所以没有 这种民众,就没有天才。</p>
</blockquote>
技术点解释:cite属性(文字的来源)
运行结果:
(2).<cite>标签 短意引用
- 通常表示它所包含的文本对某个参考文献的引用,比如书籍或者杂志的标题。
- 引用的文本将以斜体显示
代码实现:
<p>我最喜欢的一本书是<cite>小王子</cite>。</p>
运行结果:
(3).<q>标签 短意引用
- 定义短的引用。
- 浏览器经常在引用的内容周围添加引号。
代码实现:
<p>在<cite>第一章</cite>,我们讲过<q>字符串是不可变量</q>。</p>
运行结果:
(4).<code>标签 代码引用
是一个短语标签,用来定义计算机代码文本。
代码实现:
<p><code>const</code>声明创建一个只读的常量。</p>
<pre><code>
const add = (a, b) => a + b;
const multiply = (a, b) => a * b;
</code></pre>
运行结果:
(5).<strong>标签 强调此东西重要、严重、紧急
对文档中的文本进行格式化:
<strong>加粗文本</strong>
代码实现:
<p>在投资之前,<strong>一定要做风险评估</strong>。</p>
运行结果:
(6).<em>标签 强调语气
告诉浏览器把其中的文本表示为强调的内容。文字用斜体显示
代码实现:
<p>Cats <em>are</em> cute animals.</p>
运行结果:
6.页面内容划分
7.语义化是什么?
- HTML中的元素、属性及属性值都拥有某些含义
- 开发者应该遵循语义来编写HTML
- 有序列表用ol;无序列表用ul
- lang属性表示内容所使用的语言
8.谁在使用我们写的HTML?
- 开发者-修改、维护页面
- 浏览器-展示页面
- 搜索引擎-提取关键词、排序
- 屏幕阅读器-给盲人读页面内容
9.语义化的好处?
- 代码可读性
- 可维护性
- 搜索引擎优化
- 提升无障碍性
HTML传达内容,而不是样式
10.如何做到语义化?
- 了解每个标签和属性的含义
- 思考什么标签最适合描述这个内容
- 不使用可视化工具生成代码
三.总结
通过第一节课的学习,对“前端要解决的基本问题”及“什么是 HTML”有了初步的了解,知道HTML中的元素、属性及属性值都有某些含义,开发者应该遵循语义来编写HTML,我们应该了解每个标签和属性的含义,思考什么标签最适合描述这个内容,不使用可视化工具生成代码。