该系列文章记录博主学习前端入门课程的笔记,同时也为了方便查阅,有任何问题都可以在评论区提问。本文主要介绍HTML基础知识
1.思维导图
2.VSCode 插件
2.1插件
为了操作方便,在使用VSCode编写HTML文档之前需要下载几个插件
插件 | 作用 |
Chinese (Simplified) (简体中文) Language Pack | 将VSCode汉化,方便查看功能 |
open In Browser | Alt+B即可在浏览器预览网页效果(修改代码后需要刷新网页才能看到效果) |
Auto Rename Tag | 自动重命名配对的标签 |
live server | Alt+L+O即可在浏览器预览网页效果(实时刷新) |
3.HTML标签
3.1基本结构(骨架)标签
<html> 根目录
<head> 头部标签
<title></title> 网页标题
</head>
<body> 主体
</body>
</html>
注:HTML注释不能直接写,需要使用注释符,这里是为了方便展示
骨架标签是每个HTML文档中必然存在的
所有标签都在<>中,通常是成双出现的,第一个是开始标签,第二个是结束标签。如<html></html>
有些特殊的单标签。如<br/>
3.2特殊标签
在VSCode输入! + tab键即可自动生成HTML骨架
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="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>
这里比骨架标签多出了一些部分,从上往下对这些标签的作用进行解释
3.2.1文档类型声明标签
作用:告诉浏览器使用哪种HTML版本显示网页
<!DOCTYPE html>
这句代码的意思:让浏览器用最新版本的HTML5显示网页。
注:
<!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前
<!DOCTYPE> 不是HTML标签,不属于HTML的一部分
3.2.2lang语言种类
作用:定义当前文档显示的语言,如en:英语,zh-CN:中文
<html lang="en">
定义为en就是英文网页,定义为zh-CN就是中文网页。其实,对于文档显示来说,定义为en的文档也可以显示中文,定义为zh-CN的也可以显示英文。但是这个属性对浏览器和搜索引擎还是有作用的(例如翻译等),所以还是尽量定义为zh-CN
3.2.3字符集(character set)
作用:多个字符的集合。方便计算机识别和存储各种文字
常用值:GB2312(简体),BIG5(繁体),GBK(简体+繁体),UTF-8(被称为万国码,基本包含了所有国家文字显示所用的字符)
<meta charset="UTF-8">
3.2.4 移动端开发用的标签*
以下标签为移动端开发内容,暂时不做讲解
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
3.3常用标签(一)
3.3.1标签语义
含义:解释标签的含义、作用
作用:根据语义确定需要的标签,让页面结构更清晰
3.3.2标题标签<h1>-<h6>
语义:作为标题使用,并且依据重要性递减
特点:
一个标题独占一行
标题的文字会加粗,字号也变大
为阅读方便,如无需要,以后的代码都不包括骨架标签
<h1>标题共有六级选,</h1>
<h2>文字加粗一行选。</h2>
<h3>由大到小依次减,</h3>
<h4>从重到轻随之变。</h4>
<h5>语法规范书写后,</h5>
<h6>具体效果刷新见。</h6>
--pink老师
效果图
3.3.3段落标签和换行标签
标签 | 段落<p> | 换行<br/> |
语义 | 把HTML文档划分为不同段落 | 强制换行 |
特点 |
|
|
<h1>水花61分伊戈达拉制胜抢断 西决勇土再胜开拓者总分2-0</h1>
<h4>数据统计:水花兄弟合砍61分</h4>
<p>库里22投11中,三分14投4中,罚球11罚全中得到37分8篮板8助攻,职业生涯季后赛得分30+次数来到35次,超过哈登排名现役第3位,仅次于詹姆斯和社兰特。汤普森22投8中,三分8投4中得到24分3篮板2助攻,德拉蒙德-格林得到16分10篮板7助攻5盖帽,凯文-鲁尼得到14分7篮板2助攻,今天勇士有7名皆补出场。</p>
<h4>兄弟对决升级:小库里给哥哥造成压力</h4>
<p>库里兄弟是NBA历史上第一对在分区决赛相遇的兄弟。在西决第1场中,小库里没有给哥哥造成压力。他出场19分钟,7投1中只得到3分3篮板2助攻,在场期间输掉10分。但在西决第2场中,小库里攻防两端都打出杰出的表现,全场送出4次抢断,包括直接抢断自己的哥哥库里,在防守端给库里造成了极大的困扰。</p>
<p>作者: pink老师<br/>
2019-8-8</p>
效果图
3.3.4文本格式化标签
语义:突出重要性,比普通文字更重要
语义 | 标签 | 说明 |
加粗 | <strong> / <b> | 更推荐使用<strong>,语义更强烈 |
倾斜 | <em> / <i> | 更推荐使用<em>,语义更强烈 |
删除线 | <del> / <s> | 更推荐使用<del>,语义更强烈 |
下划线 | <ins> / <u> | 更推荐使用<ins>,语义更强烈 |
3.3.5<div>和<span>标签
语义:没有语义,相当于一个盒子,用来装内容,布局网页。
特点:
<div>用于布局,一行只能放一个<div>。大盒子
<span>用于布局,一行可以放多个<span>。小盒子
<div>我是一个div标签我一个独占一行</div>
<div>我是一个div标签我一个独占一行</div>
<div>我是一个div标签我一个独占一行</div>
<span>百度</span>
<span>新浪</span>
<span>搜狐</span>
效果图
3.3.6图像标签
作用:显示图片
<img src="img.jpg" alt="这是pink老师" title="这是pink老师的图片"/>
属性 | 值 | 说明 |
src | 图片路径 | 必须属性 |
alt | 文本 | 替换文本(当图片不能显示时显示的文字) |
title | 提示文本(鼠标放在图片上显示的文本) | |
width | 像素 | 宽度 |
height | 高度 | |
border | 边框粗细 |
总结:
属性必须在标签名后面
属性的先后顺序不影响功能,但是属性之间、标签名与属性之前要用空格分开
属性采取键值对的形式,即key="value"的格式
3.3.7路径(补充知识)
目录文件夹:普通的文件夹,只不过存放了做网页所需的素材,如HTML、图片等等。示例:如图“案例”文件夹就是一个目录文件夹
根目录:目录文件夹的第一层
路径
相对路径:指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。有以下三种分类
分类 | 符号 | 说明 |
同一级 | 文件位于HTML文档同一级,如<img src=baidu.gif> | |
下一级 | / | 文件位于HTML文档下一级,如<img src=/baidu.gif> |
上一级 | ../ | 文件位于HTML文档上一级,如<img src=../baidu.gif> |
绝对路径:根目录下的绝对位置,通常是以盘符开始的如:"D:\web\img\logo.gif"(注:绝对路径和相对路径使用的斜杠不同),或者完整的网页地址"http://www.baidu.com"
3.3.8超链接标签<a>
语义:用于定义超链接
作用:从一个页面链接到另一个页面
属性 | 值 | 作用 |
href | 链接 | 必须属性 |
target | _self:在当前窗口打开链接(默认) _blank:在新窗口打开链接 | 设置链接打开方式 |
链接分类有六种,如下:
<h4>外部链接</h4> 指向外部的链接
<a href="http://qq.com" target="_blank">腾讯</a>
<h4>内部链接</h4> 指向网站内部的链接
<a href="10.demo.html">demo</a>
<h4>空链接</h4> 不指向任何网页,在网站未完善时暂时使用
<a href="#">空链接</a>
<h4>下载链接</h4> 当链接是一个文件时,点击后会自动下载
<a href="images.zip">图片压缩包</a>
<h4>网页元素链接</h4> 网页元素如文本、图像、表格、音/视频等都可以添加超链接
<a href="https://baike.baidu.com/link?url=IouDYMAUSr2HiIgn7HrNAyCeyP4nLE1TFrOSc5xhKA8sa2Pdk1c7BgLIC6sry4CVl0EVpNi5N55fVwqHdmdF1vnOnZVFmTivJum2SiPhr4u"><img src="img.jpg"></a>
第六种超链接标签是锚点标签,它的使用方法比较特殊。
作用:快速定位到网页的某个位置,例如左栏目录起到的效果
写法如下:
<a href="#slogan">slogan</a> herf值设置为"#+名称"的格式,点击后
<h3 id="slogan">从善如登,虽难可达昆仑</h3> 即可跳转到页面内id为相同名称的位置,通常用于目录
<a href="#">任意字符</a> 跳转到顶部
3.3.9注释
写法:以"<!--"开始,"-->"结束
作用:便于程序员阅读和理解代码,且程序不执行注释内容
<!-- 这是一个注释标签 -->
效果图:
发现网页不显示任何内容
3.3.10特殊字符
作用:在HTML中,一些特殊的符号很难或者不方便直接使用,此时就可以使用特殊字符来代替
重点记住:空格、大于号、小于号这三个,其他的很少使用,如需使用查阅即可
空 格
<p>是段落标签
效果图
3.3.11练习
素材可以在视频评论区置顶下载,注意不用下载视频
3.4常用标签(二)
3.4.1表格标签
作用:用于展示数据,可以将繁杂的数据表现规整,可读性好。
基础语法
<table> 定义表格
<thead> 和<tbody>都为表格标签结构,可以帮助程序员更好地分清表格结构
<tr> 定义行
<th></th> 定义表头部分
<th></th>
<th></th>
</tr>
</thead>
<tbody> 表格标签结构
<tr>
<td></td> 定义单元格
<td></td>
<td></td>
</tr>
</tbody>
</table>
<table>:用于定义表格
<tr>:定义表格中的行,必须嵌套在<table>中
<td>:定义表格中的单元格,必须嵌套在<tr>中
<th>:定义表格中的表头部分,会加粗居中显示,常用于表格第一行,以突出重要性
<thead>和<tbody>:表格结构标签,帮助程序员更好地分清表格结构
表格属性
作用:设置表格的格式。实际开发中并不常用,基本是通过CSS来实现
属性名 | 属性值 | 描述 |
align | left、center、right | 规定表格相对周围元素的对齐方式 |
border | "1"或"" | 规定表格单元是否拥有边框。默认为"0",即没有边框 |
cellpadding | 像素值 | 规定单元格边沿与其内容之间的空白,默认为1 |
cellspacing | 像素值 | 规定单元格之间的空白,默认为2 |
width | 像素值或百分比 | 规定表格的宽度 |
height | 像素值或百分比 | 规定表格的高度 |
合并单元格
跨行合并:rowspan="合并单元格的个数"
目标单元格为最上侧单元格,写合并代码
跨列合并:colspan="合并单元格的个数"
目标单元格为最左侧单元格,写合并代码
示例
<table border="1" cellspacing="0" width="500" height="249">
<tr>
<td></td>
<td colspan="2"></td>
</tr>
<tr>
<td rowspan="2"></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
效果图
总结:
先确定合并单元格方式
找到目标单元格写合并代码
删除多余单元格
3.4.2列表标签
作用:布局网页
根据使用场景,可以分为无序列表、有序列表、自定义列表
无序列表
语法格式
<ul>
<li></li>
<li></li>
</ul>
tips:
无序列表中的列表项没有顺序级别之分,是并列的
<ul>中只能嵌套<li>,直接在<ul>中输入其他标签或文字的做法是不被允许的
<li>可以容纳所有元素
无序列表会带有默认的样式属性,在实际开发中,可以通过CSS更改
有序列表
语法格式
<ol>
<li></li>
<li></li>
</ol>
tips:
有序列表的列表项会按照一定的顺序排列定义
<ol>中只能嵌套<li>,直接在<ul>中输入其他标签或文字的做法是不被允许的
<li>可以容纳所有元素
无序列表会带有默认的样式属性,在实际开发中,可以通过CSS更改
自定义列表
通常用于对术语/名词进行解释或者描述
语法格式:
<dl>
<dt>名词</dt>
<dd>名词解释1</dd>
<dd>名词解释2</dd>
</dl>
tips:
<dl>里只能包含<dd>和<dt>
<dl>里可以包含多个<dd>和<dt>
3.4.3表单标签
由表单域、表单控件(也称表单元素)、提示信息组成,作用是收集用户信息。
表单域
作用:将范围内的表单元素信息提交给服务器
<form action="demo.php" method="POST" name="name1">
</form>
属性名 | 属性值 | 作用 |
action | url地址 | 指定接收并处理表单数据的服务器程序的url地址 |
method | get/post | 设置表单数据的提交方式 |
name | 名称 | 指定表单的名称,以区分同一个页面中的多个表单域 |
<input>表单元素
作用:
语法格式
<form action="demo.php" method="GET" name="demo">
<!-- text 文本框 用户可以在里面输入任何文字 -->
用户名:<input type="text" name="username" value="请输入用户名" maxlength="8"> <br>
<!-- password 密码框 用户看不见输入的密码 -->
密码:<input type="password" name="pwd"> <br>
<!-- radio 单选按钮 可以实现单选 -->
<!-- name 是表单元素名字 这里的单选按钮必须有相同的name 才可以实现多选一 -->
<!-- 单选按钮和复选框可以设置checked属性,当页面打开时就会默认选择这个选项 -->
性别:男 <input type="radio" name="sex" value="男"> 女 <input type="radio" name="sex" value="女" checked> <br>
<!-- checkbox 复选框 可以实现多选 -->
爱好:吃饭<input type="checkbox" name="hobby" value="吃饭"> 睡觉<input type="checkbox" name="hobby" value="睡觉"> 打豆豆<input type="checkbox" name="hobby" value="打豆豆"> <br>
<!-- 点击了提交按钮,就可以把表单域<form>中的表单元素提交到服务器 -->
<input type="submit" value="免费注册">
<!-- 重置按钮可以还原表单元素的初始状态 -->
<input type="reset" value="重新填写">
<!-- 普通按钮 button 后期结合js使用-->
<input type="button" value="点击发送短信"><br>
<!-- 文件域 用于上传文件 -->
上传头像:<input type="file">
</form>
效果图
属性名 | 属性值 | 作用 |
type | text | 定义单行的输入字段。用户可在其中输入文本,默认宽度为20个字符 |
password | 定义密码字段。该字段中的字符被掩码 | |
radio | 定义单选按钮 | |
checkbox | 定义复选框 | |
submit | 定义提交按钮。提交按钮会把表单数据发给服务器 | |
reset | 定义重置按钮。重置按钮会清除表单中的所有数据 | |
button | 定义可点击按钮(多数情况下,配合JavaScript使用) | |
file | 定义输入字段和“浏览”按钮,供文件上传 | |
image | 定义图像形式的提交按钮 | |
hidden | 定义隐藏的输入字段 | |
name | 自定义 | 规定input元素的名词 |
value | 自定义 | 规定input元素的值 |
checked | checked | 规定input元素首次加载时应当被选中 |
maxlength | 正整数 | 规定输入字段中字符的最大长度 |
tips:
value和name是每个表单元素都有的属性,
name是表单元素的名字,同组复选框要求有相同的name值
checked主要用于单选按钮
<label>标签
作用:绑定一个表单元素,当点击<label>标签内的文本时,浏览器就会自动将光标转到对应的表单元素,以增加用户体验
语法格式
<label for="username">用户名:</label><input type="text" id="username">
<select>下拉表单标签
如果有多个选项供用户选择,使用<select>标签可以节省空间
<form>
籍贯:
<select>
<option>山东</option>
<option selected>广东</option>
<option>北京</option>
</select>
</form>
效果图
tips:
<select>内至少有两个<option>
在<option>内定义selected属性,该项会变为默认选项
<textarea>文本域表单元素
定义多行文本输入的控件,适用于用户输入内容较多的场景
<textarea>文本内容</textarea>
属性 | 属性值 | 作用 |
cols | 字符数 | 定义文本域每行的字符数 |
rows | 字符数 | 定义文本域中每列的字符数 |
注:实际开发中并不使用,选择CSS会是更好的选择
练习
根据所学内容做出以下网页
做出来之后或者没有思路的话可以看看pink老师的讲解