前端与HTML | 青训营笔记

98 阅读5分钟

这是我参与「第四届青训营 」笔记创作活动的的第1天,今天的课程是「前端与 HTML」,老师主要讲解了什么是前端 、 前端技术栈 、 前端应该关注哪些方面 、 前端的边界 、 开发环境 这几部分内容,以及详述了 HTML 、 语义化 等内容。

一些概念和铺垫

什么是前端

  • 解决GUI人机交互的问题
  • 跨终端(如PC/移动浏览器,客户端/小程序,VR/AR等)
  • Web技术栈

总结:前端工程师是使用Web技术栈解决多端图形用户界面交互问题的工程师。

前端技术栈

前端主要的技术分为三层:

  1. HTML:负责页面的结构和内容。
  2. CSS:用于设置页面的样式,如位置、大小、颜色等。
  3. JavaScript:定义网页的行为,比如当用户点击后的响应。

这三者都是运行在浏览器里的,而浏览器是可以通过HTTP协议和服务器进行通信的。浏览器通过HTTP协议从服务器端拿到前端的代码并渲染成我们看到的页面,也可以把用户的行为和信息通过HTTP协议提交到服务器端。

前端应该关注哪些方面

  • 功能
    产品有什么功能,解决了什么问题,有没有满足用户某些方面的需求
  • 美观
    界面是否美观
  • 无障碍
    产品是否对所有人都可用
  • 安全
    能否保证用户数据的安全,有没有存在一些漏洞
  • 性能
    速度是否够快,动画是否流畅
  • 兼容性
    是否能在各种各样的设备上去使用
  • 体验
    用户体验是否足够好

前端的边界

随着新的技术不断发展,前端能做的东西也已经远远超出页面这样一个范畴。比如可以用Node.js去开发服务器端的一些应用,用Electron、React Native去开发客户端的应用,用WebRTC进行P2P的在线传输实现多人会议,用WebGL去开发一些流畅的3D游戏,用WebAssembly把C++和其他语言编写的一些代码编译成直接在浏览器里面运行的代码。

总结:前端在互联网行业里面是一个发展非常快的领域,因为前端的技术在不断更新,所以要进行持续地学习才能跟上技术的发展。

开发环境

常用浏览器:Edge,Chrome,Firefox,Safari 编辑器:VSCode,Vim,WebStorm

HTML

HTML是什么

HTML是HyperText Markup Language的缩写,意为超文本标记语言。
超文本并非单纯的文字,它包含图片、标题、链接、表格等更丰富的格式,并使用标签来表示。

一段简单的代码

<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>页面标题</title>
    </head>
    <body>
        <h1>一级标题</h1>
        <p>段落内容</p>
    </body>
</html>
  1. 第一行的<!doctype html>标记了当前文件的html版本,浏览器会根据这个来决定使用哪一种渲染模式。如果不写这一行,浏览器会用老旧的怪异模式来渲染这个页面。
  2. <html></html>是文档的根标签,所有其他的标签都是写在html标签里面的
  3. <head></head>里面会放一些页面的元数据,即页面需要的数据但又不需要呈现给用户的数据,比如页面的标题、页面的编码等。
  4. <body></body>里面放的是真正呈现给用户的内容,比如标题、文字、图片等。

浏览器会把HTML文件的代码进行解析,解析出来一个DOM树,包含了文档中的各节点。这就是一个DOM树,其中的每一个节点称为DOM节点。

image.png

HTML语法

  • 标签和属性不区分大小写
  • 空标签可以不闭合,比如input、meta等
  • 属性值推荐用双引号包裹
  • 某些属性值可以省略,比如required、readonly等

几种标签

标题

<h1>~<h6>分别是一级到六级标题,字体大小从最大的<h1>向最小的<h6>递减。

列表

1、有序列表ordered list
<ol></ol>标签,内含多个<li>,呈现的效果是前有数字的有序列表。
2、无序列表unordered list
<ul></ul>标签,内含多个<li>,呈现的效果是前有黑点的无序列表。 3、定义列表definition list 用<dl></dl>标签,自定义列表项始于<dt>标签,每个自定义列表项的定义始于<dd>

链接

使用标签<a></a>
常用属性href,属性值为超链接的引用地址。
常用属性target,属性值有多种,如_self在当前页面显示,_blank在新页面显示等。

多媒体

1、图片使用<img />标签,src属性标识了图片的地址,alt属性标识了当图片无法加载时显示的替代文字。
2、音频使用<audio></audio>标签,src属性标识了音频的地址,controls属性为音频加上了控制面板。

输入

使用<input>标签,常用属性placeholder的值会显示在输入框中,常用属性type包含多种值: 1、range:输入框呈现的效果是一条滑动框
2、number:用户输入数字,可以指定极值
3、date:输入框呈现的效果是可以选择日期
4、checkbox:多选框
5、radio:单选框,互斥关系通过name属性来实现
多行文本可以用<textarea></textarea>标签
下拉选择可以用<select></select>标签,其中的选项用<option></option>标签
*辅助输入示例:

<input list="countries" />
<datalist id="countries">
    <option>Greece</option>
    <option>United Kingdom</option>
    <option>United States</option>
</datalist>

这样当用户输入时,会自动显示相近的选项可供选择。

文字与引用

1、快捷引用标签<blockquote></blockquote>,属性cite的值为引用地址
2、短引用标签<cite></cite>,呈现的效果是倾斜,一般表示引用作品的名字或章节
3、短引用标签<q></q>,呈现的效果是被引号包裹,一般表示具体的引用内容
4、代码标签标签<code></code>,呈现的效果与代码编辑器中相似,多行代码在代码标签外加<pre></pre>
5、强调加粗标签<strong></strong>
6、强调倾斜标签<em></em>

内容划分

image.png

语义化

  • HTML中的元素、属性以及属性值都拥有某些含义
  • 开发者应遵循语义来编写HTML
  • 语义化便于开发者的修改和维护,也便于浏览器的展示和搜索引擎的爬取