前端与HTML|青训营笔记

432 阅读6分钟

这是我参与「第五届青训营 」笔记创作活动的第1天。

今日要点:

  • 前端:

    • 什么是前端
    • 前端的技术栈
    • 前端的边界
    • 前端的关注点
    • 开发环境
  • HTML:

    • HTML简介
    • 常用标签
    • HTML语义化

前端

什么是前端

前端的要点为:

  • 解决GUI人机交互问题

  • 跨终端

    • PC移动浏览器
    • 客户端/小程序
    • VR/AR等
  • Web技术栈

因此,前端工程师就是使用Web技术栈解决多端图形界面交互问题的工程师。

前端的技术栈

HTMLCSSJavaScript网络协议构成了前端最基础的技术栈。

  • HTML:HTML是网页的骨架,它决定了网页的整体结构。
  • CSS:CSS样式为网页提供美化,使网页更加饱满。
  • JavaScript:JavaScript为网页提供了行为,让网页能够”动“起来。

前端的边界

随着新的技术不断地发展,前端的范畴已经不局限于网页页面,例如:

  • 通过node.js开发服务器端的内容
  • 通过ELECTRON或者React Native开发客户端的应用
  • 用webrtc进行在线传输,实现多人的会议
  • 使用WebGL开发3D游戏
  • 使用WebASSEMBLY把C++等其他的语言编译的代码转换成可以在浏览器运行的代码

前端的关注点

  • 产品的功能有没有满足客户的需求
  • 产品的美观
  • 无障碍,即做出来的网站是不是所有人都可用
  • 产品能否保护所有用户数据的安全,有没有存在可能被利用的漏洞
  • 产品的性能
  • 产品的兼容性,产品是否能在各种环境下流畅运行
  • 用户的体验

开发环境

  • 编辑器
  • 浏览器

使用编辑器(如VSCode)将代码保存成html文件,然后在浏览器(IE/Edge、chrome、FireFox、Safari等)打开就能看到效果。

HTML

HTML简介

HTML(Hyper Text Markup Language),即超文本标记语言,它决定了网页的整体结构。

在VSCode中,我们可以通过输入“!”+回车或TAB快速生成一个如下的html基础框架。

<!DOCTYPE html>
/*告诉浏览器网页的HTML版本*/
<html lang="en">
/*文档根标签(开始部分),与</html>一起承载整个网页的数据,lang=“en”表示该网页语言使用的语言(lang)为英语(en)*/
<head>
/*网页头部(用来存放特殊的内容)的开始*/
    <meta charset="UTF-8">
    /*网页使用的字符编码为UTF-8*/
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    /*避免渲染时的兼容性问题*/
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    /*将视区设为设备的物理宽度相同的宽度*/
    <title>Document</title>
    /*网页标题*/
</head>
/*网页头部的结束*/
<body>
/*网页主体部分的开始*/
​
    .../*网页主体部分内容*/
    
</body>
/*文档主体部分的结束*/
</html>
/*网页结束*/

常用标签

标签由<,>,/,英文单词或字母组成。并且把标签中<>包括起来的英文单词或字母称为标签名

标签按照结构分为单标签(<a><img>,<hr>...)和双标签(<p></p>,<div></div>...)。
  • 只有一个标签的是单标签。
  • 有开始标签和结束标签,并且将内容包裹在开始标签与结束标签中的是双标签。

1. 排版标签

1.1 标题标签:

1~6级标题

<h1>一级标题</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</h5>
<h6>六级标题</h6>

标题.png

特点:

  • 文字都有加粗
  • 文字都有变大,并且从h1->h6文字逐渐减小
  • 独占一行
1.2 段落标签:
<p>内容</p>

每个段落之间存在间隙,但在本段中各行之间没有间隙独占一行

1.3 换行标签
<br>
1.4 水平线标签
<hr>

2. 文本格式化标签

加粗(2种写法):
  • <b>内容</b>
    

    内容

  • <strong>内容</strong>
    

    内容

下划线(2种写法):
  • <u>内容</u>
    

    内容

  • <ins>内容</ins>
    

    内容

倾斜(2种写法):
  • <i>内容</i>
    

    内容

  • <em>内容</em>
    

    内容

删除线(2种写法):
  • <s>内容</s>
    

    内容

  • <del>内容<del>
    

    内容

3. 媒体标签

图片标签:
 <img src="" alt="图片加载中,请稍后...">

img.png

src:目标图片的路径

alt:图片未加载出时,显示的文字

音频标签:
<audio src=""></audio>

src:音频文件的路径

视频标签:
<video src=""></video>

src:视频文件的路径

4. 链接标签

<a href="">点击跳转</a>

点击跳转

href:目标网页的路径

5. 列表标签

5.1 无序列表
    <ul>
        <li>第1li标签</li>
        <li>第2li标签</li>
        <li>第3li标签</li>
    </ul>

无序列表.png

 <ul></ul>代表无序列表这个整体。
 每个<li></li>标签对应无序列表的每一项,它们的开头默认有一  个圆点。
5.2 有序列表
<ol>
        <li>第1个有序列表的标签</li>
        <li>第2个有序列表的标签</li>
        <li>第3个有序列表的标签</li>
    </ol>

有序列表.png

 <ol></ol>代表无序列表这个整体。
 每个<li></li>标签对应有序列表的每一项,它们的开头默认有数字排序。
5.3 自定义列表
    <dl>
        <dt>自定义列表的标题1</dt>
        <dd>自定义列表的第1dd标签</dd>
        <dd>自定义列表的第2dd标签</dd>
        <dd>自定义列表的第3dd标签</dd>
        <dt>自定义列表的标题2</dt>
        <dt>自定义列表的标题3</dt>
        <dd>自定义列表的第4dd标签</dd>
        <dd>自定义列表的第5dd标签</dd>
        <dd>自定义列表的第6dd标签</dd>
    </dl>

自定义列表.png

<dl></dl>代表自定义列表这个整体。
<dt></dt>代表自定义列表的标题。
<dd></dd>代表自定义列表中的每一项,它们的开头默认有一段间距。
一个<dl></dl>标签可以有多个<dt></dt>标签,一个<dt></dt>标签可以有多个<dd></dd>标签。

6.表格标签

   <table border="3">
        <tr>
            <td>第1td</td>
            <td>第2td</td>
            <td>第3td</td>
        </tr>
        <tr>
            <td>第4td</td>
            <td>第5td</td>
            <td>第6td</td>
        </tr>
    </table>

表格.png

<table></table>代表表格整体
<tr></tr>代表表格的每一行
<td></td>代表表格的每一项
(上图通过border="3"给表格添加了边框,table标签默认没有边框宽度)

7. 表单标签

7.1 input标签
<input type="text">

文本框.png

type属性的值为“text”时,生成一个可以输入内容的文本框。

<input type="password">

密码框.png

type属性的值为“password”时,生成一个可以输入内容的密码框,在密码框中输入的内容都显示为原点。

<input type="radio">单选框

单选框.png

type属性的值为“radio”时,生成一个单选框,默认没有选中。

<input type="checkbox">复选框

复选框.png

type属性的值为“checkbox”时,生成一个复选框,默认没有选中。

<input type="file">

文件.png

type属性的值为“file”时,生成一个点击选择文件的标签。

7.2button按钮标签
<button type="submit">提交</button>

提交.png

type属性的值为“submit”时,生成一个提交按钮,点击之后提交数据给后端服务器。

<button type="reset">重置</button>

重置.png

type属性的值为“reset”时,生成一个重置按钮,点击之后回复表单默认值。

<button type="button">按钮</button>

按钮.png

type属性的值为“button”时,生成一个普通按钮,默认无功能,之后配合js添加功能。

7.3textarea文本域标签
<textarea></textarea>

文本域.png

生成一片可以输入文本的区域,拖拽右下角可以调节区域的大小。

HTML语义化

语义化是什么?

  • HTML中的元素属性属性值都拥有某些含义

  • 开发者应该遵循语义来编写HTML

    • 有序列表用ol;无序列表用ul
    • lang属性表示内容所使用的语言

谁在使用我们写的HTML?

  • 开发者-修改、维护页面
  • 浏览器-展示页面
  • 搜索引擎-提取关键字
  • 屏幕阅读器-给盲人读页面内容

语义化的好处

  • 提高代码可读性
  • 提升代码可维护性
  • 搜索引擎优化
  • 提升无障碍性

如何做到语义化?

  • 了解每个标签和属性的含义
  • 思考什么标签最适合描述这个内容
  • 不适用可视化工具生成代码