1.前言
HTML(Hypertext Markup Language 超文本标记语言)
网页大致可以分为结构(HTML)表现(CSS)行为 (JS) (web标准的三个组成);
元素和标签是一样的,元素就是标签,标签就是元素。一般来说,一个HTML元素都有开始标签和结束标签。这样的标签就叫做双标签。注意:某些HTML元素没有结束标签,只有开始标签(自封闭标签,也叫单标签)。
html中的标签不区分大小写。
2.基础元素
<!DOCTYPE html>
#根标签
<html lang="en"> #这个lang表示语言,zh-CN是中文的意思,就是说,你整个文档的内容以中文为主,如果以英文为主,就写成lang='en'
#head标签标识文档的头部
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
#body标签标识文档的主体
<body>
</body>
</html>
对上述内容的解释:
- DOCTYPE元素:h5文档声明,声明该网页是按照h5标准写的。独一无二的,都以他为开头。可以注释掉,不影响网页,但是在源代码中还是会显示
- 根元素html:lang=en代表语言是英文的
- 头元素head
- meta元素:可提供有关页面的元信息(meta-information),针对搜索引擎和更新频度的描述和关键词。
- charset属性:编码的,保证不会出现乱码
- title元素:标题
- body元素:内容都在body元素中输入,面向对象的,网页中输出的标签可以嵌套,但是不可以交叉嵌套
1.head标签内的常用标签:
- <title></title> 定义网页标题
- 定义内部样式表
- 定义JS代码或引入外部JS文件
- 引入外部样式表文件
// 例如:
<link rel="stylesheet" type="text/css" href="https://www.w3cschool.cn/html5/theme.css">
- 定义网页原信息
2.meta标签
meta标签的组成:meta标签共有两个属性,它们分别是http-equiv属性和name 属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。
- http-equiv属性:相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确地显示网页内容,与之对应的属性为content,content中的内容其实就是各个参数的变量值。
<!--将页面重定向到另一个网站-->
<!--2秒后跳转到对应的网址,注意引号-->
<meta http-equiv="refresh" content="2;URL=https://www.baidu.com"> #如果把URL和后面的内容去掉,就是2秒钟刷新一次,这些内容了解一下就行
<!--指定文档的编码类型-->
<meta http-equiv="content-Type" charset=UTF-8">
<!--告诉IE以最高级模式渲染文档-->
<meta http-equiv="x-ua-compatible" content="IE=edge"> #edge是微软的一个全新的浏览器,其实就是告诉IE浏览器,你按照最高标准来渲染我的页面,了解一下就可以啦
- name属性: 主要用于描述网页,与之对应的属性为content,content中的内容主要是便于搜索引擎机器人查找信息和分类信息用的。
<!--keywords 表示网站的关键字-->
<meta name="keywords" content="meta总结,html meta,meta属性,meta跳转"> #关键字,也就是别人是可以通过这些关键字搜索到我的这个文章的,搜索引擎就是能够这个content内容来帮别人搜索到你的这个文档的
#SEO就是做这个的,就是怎么让你们公司的网站在别人搜索的时候能够靠前显示,不算那个花钱的,百度是充值的,你冲个20w,别人可能一天就给你点击完了,特别的贵
<!--description 用于指定网站的描述-->
<meta name="description" content="xxxxxpythonxxx学习"> #是对这个文档的描述,在百度一些内容的页面上,f12打开看看
3. charset属性:指定网页的字符集
标签中几个重要的属性:
- id:用于区分页面上相同的标签
- class:为html元素定义一个或多个类名(classname)(CSS样式类名)
- style:规定元素的行内样式(CSS样式)
<h1 style="color:red;">举个例子</h1>
结果是举个例子这四个字被渲染成红色。
标签中的分类(两类):
- 内敛标签(行内标签,inline element):不独占一行。如b标签/span/i/u/s/button/img/a/
- 块级标签(行外标签,block element):独占一行。如h1标签~h6标签/hr标签/div/br/p
注意:内联标签只能嵌套内联标签,而块级标签可以切套某些块级标签和内联标签。p标签不能嵌套p标签,也不能嵌套其他块级标签。
3.body中的元素
- h1标签:一级标题,将文字以较大的形式输出(还有h2—h6,字体逐渐变小)
- p标签:表示一个段落,一个标签独占一行,自动换行
- b标签:粗体
- em元素和i元素:斜体 (前者强调语气,后者不强调)
- strong元素:粗体(强调内容)对于H5中规定,对于不需要着重的内容而是单纯的加粗或者是斜体就可以用b和i标签
- small标签:H5中使用small标签来表示一些细则一类的内容,比如:合同中的小字,网站的版权声明
small标签的内容会比他的父元素中的文字要小一些 - cite标签(网页中所有的加书名号的内容都可以用cite标签,表示参考的内容)
- q标签(表示一个短的引用 即行内引用,q标签引用的内容,浏览器默认会加上引号)
- blockquote标签(表示一个长引用即块级引用 )
- sup标签(表示上标)
- sub标签(表示下标)
- del标签(表示一个删除的内容,del标签中的内容,会自己添加删除线)
- ins标签(ins内容会自动添加下划线)
需要页面中直接编写一些代码,pre是一个预格式标签,会将代码的格式保存,不会忽略多个空格,code专门用来表示代码,我们一般结合使用pre和code来表示一段代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Title</title>
</head>
<body>
<p>2<sup>2</sup></p>
<p>H<sub>2</sub>o</p>
<p><del>19.99</del></p>
</body>
</html>
- u元素:下划线(但是HTML5不推荐使用)
- s元素:文字中间有一道线
- hr标签(自结束标签,生成一条水平线)
<!DOCTYPE html>
<html lang = 'en'>
<head>
<meta charset="utf-8">
<title>Title</title>
</head>
<body>
<p><s>a</s></p>
<hr/>
</body>
</html>
- 实体(一些特殊元素不能直接使用,例如大于号之类的,因为与标签冲突,所以一般用一些特殊符号表示,这些特殊符号称为实体,又叫转义字符串)
- < <;
- 大于号: >;
- 空格  ;在网页中编写的多个空格默认情况会自动被浏览器解析为一个空格
- 版权符号:©;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Title</title>
</head>
<body>
a < b
<br/>
©微软公司
</body>
</html>
- a标签:构成超链接,后面href属性代表所链接的url,可以访问本地项目中的资源(如html等),也可以访问外部资源;
- target属性用于指定超链接打开的位置,其值有_blank和_self等;_blank:构成的url点击后以新的窗口打开。_self即默认属性,就是在当前网页中进行打开url。(超链接可以用#做占位符,可以跳转到顶部。href属性使用
#目标元素的id属性值
跳转到页面的指定位置,在开发中可以将#作为超链接的路径的占位符使用 )
- target属性用于指定超链接打开的位置,其值有_blank和_self等;_blank:构成的url点击后以新的窗口打开。_self即默认属性,就是在当前网页中进行打开url。(超链接可以用#做占位符,可以跳转到顶部。href属性使用
<!DOCTYPE html>
<html lan = 'en'>
<head>
<meta charset = 'utf-8'>
<title>Title</title>
</head>
<body>
<a href="#bottom">去底部</a>
<a href = 'http://www.baidu.com' target="_self">百度一下</a>
<!--给图像加超链接-->
<a href = "https://www.baidu.com/"><img src = timg.gif /></a>
<!--跳转到顶部-->
<a id="bottom" href="#">回到顶部</a>
<!--javascript:;作为href的属性,此时点击这个超链接什么也不会发生-->
<a href="javascript:;">这是一个新的超链接</a>
</body>
</html>
- table 元素 (表格元素):展示数据
- tr元素:代表着表格中的一行(表格行);可以嵌套着td元素,代表着一个单元格(表格单元)
- th元素:标题,字体加粗,且居中(表头的单元格)
- border属性:边框属性,但是不推荐使用,后面可以跟1px,代表着1像素。
- colspan:拆分单元格,用来合并列;
- rowspan:拆分单元格,用来合并行;
- width属性:宽度
- bgcolor:背景色
- align:对齐方式
- thead元素:定义表格的表头
- tbody元素:定义表格中的主体内容
- tfoot元素:定义表格中的表注内容(脚注即表格的底部)
<!DOCTYPE html>
<html lan = 'en'>
<head>
<meta charset="utf-8">
<title>Title</title>
</head>
<body>
<table border="1px">
<!--表格中有两行,每行有三个单元格-->
<tr>
<td>AAA</td>
<td>BBB</td>
<td>CCC</td>
</tr>
<tr>
<td>aaa</td>
<td>bbb</td>
<td>ccc</td>
</tr>
<!--表格中的第三行,合并列-->
<tr>
<td>aaa</td>
<td colspan="2">ccc</td>
</tr>
<!--合并行-->
<tr>
<td rowspan="2">AAA</td>
<td>BBB</td>
<td>CCC</td>
</tr>
<tr>
<td>bbb</td>
<td>ccc</td>
</tr>
</table>
</body>
</html>
<!DOCTYPE html>
<html lang = 'en'>
<head>
<meta charset = 'utf-8'>
<title>Title</title>
</head>
<body>
<table border = '1px'>
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>爱好</th>
</tr>
</thead>
<tbody>
<tr>
<td>Jack</td>
<td>23</td>
<td>打乒乓</td>
</tr>
</tbody>
</table>
</body>
</html>
继续:capture元素定义表格标题,例如<capture>学生信息表</capture>
20. 列表元素(li:表示列表中的项)(有序列表和无序列表可以互相嵌套)
1. 有序列表ol(默认升序,可以进行嵌套的,在一个有序列表中可以嵌套多个有序列表,从而实现标题的整齐)。ol的reversed属性:可以实现列表降序排列.type属性:可以改变排序的前标,是123还是ABC都可以选择
2. 无序列表(ul)顺序用黑点排列(由于每个浏览器的符号大小不一样,所以我们一般都不用默认的符号,用css中ul的list-type的none去掉)ul和ol都是块元素
<!DOCTYPE html>
<html lang = 'en'>
<head>
<meta charset="utf-8">
<title>Title</title>
</head>
<body>
<!--默认按照数字升序的有序列表-->
<ol>人按照性别可以分为几种人?
<li>男人</li>
<li>女人</li>
<li>人妖</li>
</ol>
<!--降序的有序列表-->
<ol reversed>人按照性别可以分为几种人?
<li>男人</li>
<li>女人</li>
<li>人妖</li>
</ol>
<!--改变排序的前标-->
<ol type = 'A'>关于本道题说法正确的是():
<li>xxx</li>
<li>ccc</li>
<li>vvv</li>
<li>bbb</li>
</ol>
<!--无序列表-->
<ul>人按照性别可以分为几种人?
<li>男人</li>
<li>女人</li>
<li>人妖</li>
</ul>
</body>
</html>
- 标题列表(dl dd dt来创建一个定义列表):就像大纲一样,有层级效果。
dl有两个子标签,dt为被定义的内容,dd是对定义内容的描述
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--dl:definition list-->
<dl>
<dt>中国</dt>
<!--dd可以有多个-->
<dd>最强大的国家</dd>
<dt>俄罗斯</dt>
<dd>面积最大的国家</dd>
</dl>
</body>
</html>
22. 表单元素即form元素(用户可以自己输入东西进去,就相当于填写账号密码的那种),用于定义范围,范围代表采集用户数据的范围。其主要属性有:
1. method属性:指定提交方式
一共有七种提交方式: 1.get(常用):请求参数会在地址栏中显示;请求参数长度有限制;不太安全 2.post(常用):请求参数不会再地址栏中显示,会封装在请求体中。请求参数的长度没限制;较为安全
2. action属性:指定提交数据的URL.当提交表单时,填写的内容将会提交到action指定的地址
<!-- form的action属性指定表单项的数据提交到执行的URL--> <form action = "www.baidu.com"> <!-- 表单项中的数据要想被提交,需要name属性--> 账号:<input type = "text" name="user"/><br/> 密码:<input type = "text" name="passward"/><br/> <input type = "submit" value="登录" /> </form> <!-- 定义在表单元素form外的元素不会被提交--> 男<input type = "radio">
3. textarea元素(文本域),其属性有cols,rows
4. datalist属性
- input元素(单行文本框,有29种属性)其主要的属性有:
- type属性(默认值就是text)
text:表示常规文本输入,就是一个文本框用于用户输入 radio:定义单选按钮输入,选择多个选择之一。 注意事项:1.要想让多个单选框实现单选的效果,则多个单选框的name属性需要一样 2. 一般会给每一个单选框提供一个value属性,指定当前单选框被选中后提交的值。 3. checked属性可以提供默认选项(复选框类似的道理) submit:一个提交按钮(提交表单),其value属性设置提交按钮上的文本 passward:密码输入框 checkbox:复选框 file:文件选择框 hidden:隐藏域,用于提交信息 button:一个普通按钮。使用button创建的按钮和input创建的按钮功能一致。 只不过button标签更加的灵活。 <button type="submit">提交按钮</button> <button type="reset">重置</button> <button type="button">单纯的按钮</button> image:图片提交按钮,src属性指定图片的路径 reset:重置按钮,可以将表单恢复到默认值
- value属性(占位符,自动填充上所写的字):可以为文本框提供一个默认值。
- placeholder属性(不占文本框位置的,就相当于那个密码账号的提示,没点进去之前是暗的,点进去会没)
- maxlength属性(最大字符数,超过就输不进去)
- size属性(拓宽单行文本框,文本框显示所规定的字符数)
- readonly属性(只读)
- 属性type中password为值 (placeholder)实现以黑点形式出现
- 属性type中button为值(按钮属性)
- type中range属性(数字滑动块 )
- max:滑块最大值
- min:滑块最小值
- step:每次滑动的距离
- value:起始的位置,默认为0,在滑表的中间
- type中number属性(可以手动输入的,可以调节大小的值)
- type中checkbox属性(相当于打对勾的功能,只有选择才能传输到服务器中去,传送到服务器上是布尔型)
- type中radio属性(和checkbox功能一样,但是这个选择后就不能取消了,生成一组固定选项)
- name属性,当多个选项出现时,由name选项可以实现三选一的效果
- checked属性,默认一个选项
- input的hidden属性隐藏某些东西,但是在提交表单中还是会显示,value输入值
- input的image属性实现图片按钮功能,导入图片,src属性代表地址的选择,width代表图片的宽度
- multiple属性:可以上传多个文件
- required属性:必须上传一个文件
- label属性
- select元素(可以进行选择,但是不可以自己输入):option是select的子元素,用于指定列表项
- option元素:下拉列表中的可供选择的项。
- selected属性:属性值为selected表示设置默认选中
省份:<select name = "province">
<option value="">请选择</option>
<option value="1">北京</option>
<option value="2">广东</option>
<option value="3">上海</option>
</select>
<!-- 创建一个表单 -->
<form action="target.html" method="get">
<!-- 文本输入框 -->
用户名<input type="text" placeholder="请输入用户名"/><br/>
<!-- 密码框 -->
密码<input type="password" placeholder="请输入密码"><br/>
<!-- 单选按钮 -->
性别<input type="radio" name="gender" value="男"/>
<input type="radio" name="gender" value="女" checked="checked"/><br/>
<!-- 复选框 -->
爱好<input type="checkbox" name="hobby" value="唱歌"/>
<input type="checkbox" name="hobby" value="跳舞" checked="checked"/>
<input type="checkbox" name="hobby" value="学习" checked="checked"/><br/>
<!-- 下拉列表 -->
你最喜欢的明星<select name="star">
<option value="lisi">李斯</option>
<option value="wbq">王宝强</option>
<option value="zzd" selected="selected">甄子丹</option>
</select><br/>
<!-- 注册按钮 -->
<input type="submit" value="注册按钮"/><br/>
<!-- 提交按钮 -->
<input type="reset" value="重置按钮">
</form>
- datalist元素(实现选择,类似是select,但是这个可以自己输入,不过要用id引导)用id引导后,用input元素中的list属性来进行引导
<!DOCTYPE html>
<html lang = 'en'>
<head>
<meta charset="utf-8">
<title>Title</title>
</head>
<body>
<!--input标签使用text属性/value属性,input即单行文本框
type属性(默认值就是text)
value属性(占位符,自动填充上所写的字)-->
<form>
<input type="text" value="搜索网页">
</form>
<!--placeholder属性(不占文本框位置的,就相当于那个密码账号的提示,没点进去之前是暗的,点进去会没)-->
<form>
<input type = 'text' placeholder="密码">
</form>
<!--maxlength属性(最大字符数,超过就输不进去)-->
<form>
<input type = 'text' maxlength="8">
</form>
<!--属性type中值为password-->
<form>
<input type = 'password' placeholder="密码" maxlength="16">
</form>
<!--type中值为button-->
<form>
<input type = 'button'>
</form>
<!--type中值为submit(即提交按钮)-->
<form>
<input type = 'submit'>
</form>
<!--type中值为range(数字滑动块)-->
<form>
<input type = 'range' step="1" max="100" min="0" value="0">
</form>
<!--type中number属性(可以手动输入的,可以调节大小的值)-->
<form>
<input type="number" min="0" max="100" value="0">
</form>
<!--type中checkbox属性(相当于打对勾的功能,只有选择才能传输到服务器中去,传送到服务器上是布尔型)-->
<form>
<input type="checkbox" >
</form>
<!--type中radio属性(和checkbox功能一样,但是这个选择后就不能取消了,生成一组固定选项)
name属性,当多个选项出现时,由name选项可以实现三选一的效果-->
<form>你最喜欢的水果
<br/>
<input type="radio" name="a">苹果
<input type="radio" name="a">葡萄
<input type="radio" name="a">芒果
</form>
<!--checked属性,默认一个选项-->
<form>你最喜欢的水果
<br/>
<input type="radio" name="a" checked>苹果
<input type="radio" name="a">葡萄
<input type="radio" name="a">芒果
</form>
<!--select元素(可以进行选择,但是不可以自己输入)
option元素:可供选择的项-->
<select>
<option>香蕉</option>
<option>橙子</option>
<option>西瓜</option>
</select>
<!--datalist元素(实现选择,类似是select,但是这个可以自己输入,不过要用id引导)
用id引导后,用input元素中的list属性来进行引导-->
<form>你最喜欢的水果
<input type="text" list="1">
<datalist id="1">
<option>香蕉</option>
<option>西瓜</option>
<option>橙子</option>
</datalist>
</form>
<!--type中的data值-->
<form>
<input type="date">
</form>
<!--type中的color值-->
<form>
<input type="color">
</form>
<!--type的image值-->
<form>
<input type="image" src="E:\pythonProject\屏幕截图(1).png" width="180px">
</form>
<!--type中的file按钮上传文件
multiple属性:可以上传多个文件
required属性:必须上传一个文件-->
<form>
<input type="file" multiple>
</form>
</body>
</html>
- img标签
img标签即图片标签,引入外部图片,src属性可以指定图片的地址,也就是指定图片路径。width属性是宽度,height属性是高度(一般开发不设置这两个,设置了图片可能会失真),alt属性是一个必需的属性,它规定在图像无法显示时的替代文本(当图片找不到时候,会出现alt备用的内容,搜索引擎会通过alt属性来识别不同的图片,如果没有alt属性,搜索引擎不会对img图片进行收录)
img标签的title属性:鼠标放在图片上显示的文字
#img标签和a标签相结合构成图片,可以点击图片进入url
<!DOCTYPE html>
<heml lang = 'en'>
<head>
<meta charset="utf-8">
<title>Title</title>
</head>
<body>
<a href = 'http://www.baidu.com' target="_blank">
<img src="./屏幕截图(1).png" alt="这是一张截图">
</a>
</body>
</heml>
- video元素中基本属性
- src:视频地址
- height:视频高度
- width:宽度大小
- autoplay:自动播放
- contros:播放控制键
- preload:预先载入视频
- none:不会载入视频。
- metadata:只载入第一帧。
- auto:请求下载整个视频,默认行为。
- loop:循环播放。
- poster:视频载入时显示图片,视频的封面。
<video controls >
<source src="./source/flower.mp4">
</video>
-
source元素:设置视频格式的元素,包括src(设置地址和type(设置格式)属性
-
audio元素(插入音频,音视频文件引入时,默认情况下不允许用户自己控制播放停止)
- src:音频地址
- autoplay:音频文件是否自动播放
- controls:是否允许用户控制播放,音量,是否播放还有播放进度条。
- loop:音乐是否循环播放
- source作为audio的子标签来指定音频文件的路径
<audio src="./source/audio.mp3" controls autoplay loop></audio>
<audio controls>
<!--不支持audio标签的低版本浏览器则显示下面文字-->
对不起,您的浏览器不支持播放音频,请升级浏览器!
<source src="./source/audio.mp3">
</audio>
- br(break)标签:换行
- div标签:用来布局的,一行只能一个div。每队div标签中的内容都可以占据一行(块级标签中可以使用块级标签和行内标签,包括span标签)
- span标签:用来布局的,一行可以多个span。span标签会和其他标签元素会在一行显示,块级标签除外(行内标签)div和span标签很常用。
span标签的宽度、高度都无法通过css样式设置,它的宽高受其本身内容(文字、图片)控制,随着内容的宽高改变而改变;span标签无法控制外边距和内边距,虽然可以设置左右的外边距和内边距,但上下的外边距和内边距无法设置。
且,span标签里只能容纳文本或者是其他的行内元素,不能容纳块级元素。
- 注释标签:
- 铆接链接:
创建铆接链接分为两步:
1.使用相应的id名标注跳转的目标位置
<h1 id = "two">跳转的目标位置</h1>
2.使用<a href = "#id名">链接文本</a>
<a href = "#two"></a>
- pre标签:预格式化文本,按照预先写好的格式显示文本,保留空格和换行等。
- center标签:文字居中显示
- 一些结构化语义标签(布局标签)
header 表示网页的头部
main 表示网页的主体部分(一个页面中只会有一个main)
footer 表示网页的底部
nav 表示网页中的导航
aside 和主体相关的其他内容(侧边栏)
article 表示一个独立的文章
section 表示一个独立的区块,上边的标签都不能表示时使用section
- iframe标签:表示内联框架,用于在当前页面引入一个其他页面。
- src属性:指定要引入的网页的路径
- frameborder:指定内联框架的边框
<iframe src="https://www.qq.com" width="800" height="600" frameborder="0"></iframe>
目前学到的自结束标签:
1. <br/>:换行标签
2. <hr/>
3. <img/>