HTML
HTML基础
- HTML(hypertext Markup Language)超文本标记语言
- 负责网页的三要素中的结构
- html使用标签的形式来标识网页中的不同组成部分
- 一个最基本的HTML页面
<!DOcTYPE html>
<!--DOCTYPE(document type): 文档类型
版本声明,声明版本是html5。
给浏览器声明,告诉浏览器应该按照html5的规范来解析当前的文档。
若不声明,那么按照什么规范解析,就看浏览器心情,可能会导致浏览器进入怪异模式,从而导致页面无法正常显示
<!DOCTYPE html> 不是html标签,他只是一条浏览器的指令,在所有版本中,这条指令对大小写都不敏感-->
<html lang="en">
<!--lang是语言 en是英语 告诉浏览器本网页是英文网页 ch是中文-->
<!--lang是html的属性 en是lang属性的值-->
<!--HTML 标记标签通常被称为 HTML 标签 (HTML tag)-->
<!--html标签是网页结构的最外层 里边包含两个标签 body 和 head -->
<head>
<!--head代表网页的头部,不会显示网页中,只要包含网页的元信息,标题,引入外部文件等等-->
<meta charset="UTF-8">
<!--meta标签是控制网页的元信息
元信息就是信息的信息(关于当前网页的信息)
charset代表字符编码,utf-8是万国码-->
<title>html的编码结构</title>
<!--title是网页的标题-->
</head>
<body>
<!--在html中,所有我们能够看到的内容全部书写在body中-->
</body>
</html>
HTML标签
块标签
- 独占一行 换行显示
- 可以设置宽高
- 块标签可以嵌套块标签和行标签(p标签、h标签都只能嵌套行标签)
div标签
- 没有任何具体的含义,主要用于网页的布局
- 通过一个一个的div将页面划分为不同的部分,之后在针对部分进行开发
标题标签(h标签)
- 在HTML中,一共有六级标签(h1-h6),在显示效果上h1最大,h6最小,默认加粗并且有一点间隙
- h1标签最重要,表示网页中主要的内容,一个页面中只能写一个h1标签,h1经常用在网页的标题或者是logo上
段落标签(p标签)
- p标记中的文字默认会独占一行,并且段与段之间会有一定间距
- 在HTML中字符间写再多的空格,浏览器只会当成一个空格解析,换行也会当成一个空格解析
- 页面中使用br标签来表示一个换行,它是一个单标签,也是一个空元素,另外hr标签可以在页面生成一条水平线
ol标签
- 表示多个有序的列表项,显示出是带有编号的列表
- ol元素前边的编号可以是任何的形式,我们可以通过css的list-style-type属性控制
ul元素
- 表示多个无序的列表项,显示出是带有项目符号列表
- ul元素前边的符号可以是任何的形式,我们可以通过css的list-style-type属性控制
- 无论是ol还是ul 里边的每一项都是一个li标签
dl dt dd组合标签
- dl是包含术语和对术语描述的列表,通常用来展示词汇表或者是对内容的解释
- dl是定义的列表的外层包裹
- dt是被解释的 术语
- dd是解释的内容
- dt和dd是兄弟关系,父元素只能是dl;dl的子元素只能是 dt和dd
行标签
- 行内显示 超出换行
- 不能设置宽和高
- 行标签只能嵌套行标签,不能嵌套块标签(a标签可以包含任意标签,除自身外)
span标签:
- 没有任何特殊的含义
- 主要是为了增加额外的结构,方便我们控制样式或者是数据
- 使用要求:在其他语义化标签不适用的情况下再使用
b i u 标签
- b标签呈现加粗状态
- i标签呈现倾斜状态
- u标签呈现下划线状态
- 这三个标签是吸引读者到需要注意的内容上,这些仅仅是添加了一些样式而已,只是表现层,尽管如此,我们也不必为了加粗倾斜等元素 而去使用b i u等标签,替代的方法是使用css
- 在目前使用最多的是i标签-通常在开发过程中,小图标之类的元素我们习惯用i标签来表示
em strong var 标签
- em标签:强调作用,标出用户着重需要阅读的内容,但是主要也给SEO(搜索引擎优化)强调,呈现的是倾斜的状态
- strong标签:强调(更强的强调)作用,表示文本十分重要,主要也给SEO(搜索引擎优化)强调,呈现的是一个加粗
- var标签:并没有起到强调或提示用户注意的作用,默认倾斜
a标签
- a标签就是超链接,用来做跳转,可以创建通向其他网页、文件 同一个页面的位置、邮件地址或者其他url链接、链接电话、链接短信
- a标签的href属性,用来写地址。如果是网络地址 需要些全http://或者https://协议;如果写本地地址,使用相对路径即可
- title属性:是鼠标悬浮在a链接上的时候,对当前链接的提示信息,弹窗显示
- target属性:_self:在当前标签页跳转;_blank:在新的标签页打开跳转
- download属性:书写下载文件的路径,那么可以直接下载。但需要注意的是a标签必须书写href属性,哪怕为空都可以执行download下载,否则a标签不具有任何功能
- 锚链接:在a标签的href中书写 #+名字;在相对应的跳转点标签书写id属性值为锚链接中的名字;这样点击锚链接就能跳转到相对应的位置
行内块标签
- 既拥有块标签属性可以设置宽高,也拥有行属性的行内显示
- 可以设置宽高
- 行内显示
img标签:
- 单标签,属于替换元素(<img><br>都属于空元素),代表文档中的一个图像
- src属性:图片路径 可以书写网络路径地址 也可以书写本地相对路径
- title属性:当鼠标悬浮在图像上的时候,对图像的解释
- alt属性:
1、定义了描述图像的替换文本
2、网络错误,路径错误等等图片没有正确加载的时候显示
3、alt属性还和SEO相关,爬虫到当前页面,并不会读取图片,而是读取img的src属性来确定图片信息- width/height:
1、img标签除了能够使用css设置宽高以外,自身也拥有width和height属性,可以设置宽和高
2、如果说只设置了宽度或者高度,那么另外一个将按照图片比例进行缩放
3、自身的width/height是不书写单位的
4、如果宽度和高度都一起设置,图片的宽高比例可能会改变
5、当自身的宽高属性和css设置的冲突以后,css的优先级较高- 图片常见的格式:
1、jpeg(jpg):一般图像(当图片不透明的时候,尽量选用jpg,因为jpg占用的大小比png小)
2、png: 透明图
3、gif: 动图
表单标签
form标签
- 为用户创建html表单,表单可以向服务器发送数据,form标签中可以包含很多表单元素
- action属性:
表单提交的地址method属性:
表单提交的方式 数据传输的方式
常见的两种方式是: get和post
- get可以当成小汽车:数据少,数据直接在地址栏上显示(不安全)
- post可以当成大货车:数据多 数据发送相对于get安全一点
<form action="http://www.baidu.com" method="get">
<input type="submit" value="提交">
</form>
input标签
- type类型的值不一样,呈现的状态也是不一样的
- name属性就是给表单起一个名字(自己命名,一般是后台提供)
- value属性就是表单的值,可以预定义,也可以等待用户输入name和value就构成了一个键值对,如果构不成一个键值对,就不会进行提交
type类型有以下几种:
text:单行文本输入框(文本域)
- 没有长度和内容限制,只能输入一行,明文显示
- 表单提交都是以键值对的形式提交的 比如 user = xiaoming
password:密码输入框
- 默认把输入的内容呈现出小黑点
radio:单选框
- 书写name属性后,可以进行单选
- 应书写value值,是向后台提供的数据
- 在input前写的内容,和input没有任何关系,只不过让用户视觉上觉得有关联
- checkbox:多选框
- file: 上传文件按钮
* hidden:提交隐藏内容
- 在表单提交过程中有的数据需要提交,但是不需要用户输入或者是修改,那么直接使用隐藏域提交
* button: 单纯的按钮
- 没有任何作用和功能,只是长了按钮的样子
- 如果需要添加功能,可以使用js
- value值是按钮中的文字
* reset: 重置按钮
- 当重置按钮被点击,就会重置当前reset所在的表单,变成默认的状态
submit:提交按钮
- input标签的type类型是submit代表提交 value是按钮显示的内容
- 提交按钮只会提交当前按钮所在的form表单中的内容
- 如果没有form标签,表单提交失效
<form action="http://www.baidu.com" method="get">
请输入用户名:
<input type="text" name="user" value="xiaoming">
<br>
请输入密码:
<input type="password" name="pass" value="">
<br>
请选择性别:
男:<input type="radio" name="sex" value="男">
女:<input type="radio" name="sex" value="女">
未知:<input type="radio" name="sex" value="未知">
<br>
选择你最喜欢的语言:
PHP:<input type="checkbox" name="lang" value="PHP">
JAVA:<input type="checkbox" name="lang" value="JAVA">
JS:<input type="checkbox" name="lang" value="JS">
HTML:<input type="checkbox" name="lang" value="HTML">
<br>
请上传你的照片:
<input type="file" name="photo">
<br>
<input type="hidden" name="id" value="00000000001">
<input type="button" value="点我啊" id="btn">
<br>
<input type="reset" value="重置啊">
<input type="submit" value="提交">
</form>
<script>
var oBtn = document.getElementById("btn");
oBtn.onclick = function () {
alert("hello world");
}
</script>
select&option 下拉列表
option代表列表的每一项
- 显示出来的值应该放在option标签中
- 提交的内容是放在option的value属性中
select是列表的外层
- 表单的name是在select中书写
textarea 多行文本输入框
- 右下角可以放大缩小
cols和rows用来控制宽和高
- cols代表一行有几个字符(一个汉字算两个字符)
* rows代表总共几行,超出是要生成滚动条的
- 我们很少这样控制,主要通过css的width和height控制
- textarea没有value属性,输入的值直接就是textarea标签中的内容
<form action="###" method="get">
请选择你喜欢的城市
<select name="city" >
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="深圳">深圳</option>
</select>
<br>
请说出你对我们的留言:
<textarea name="message" cols="30" rows="10" ></textarea>
<input type="submit" value="提交">
</form>
button标签
- 使用场景可以在表单中提交、重置 也可以做单纯的按钮
button的type类型控制按钮是做什么的
- type:submit 默认 提交当前的表单
- type:reset 重置当前的表单
- type:button 单纯的按钮 没有任何功能
button和input做按钮的区别?
- input是单标签 不能嵌套任何元素
- button是双标签 双标签中可以嵌套其他元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>button</title>
</head>
<body>
<form action="###" method="get">
<input type="text" name="user" value="">
<button type="button">点击我呀</button>
<button type="button">
<img src="../images/06.png" alt="">
</button>
</form>
</body>
</html>
label标签
label元素:为表单元素定义标注(点击标注的信息,可以让表单元素获取焦点)
- 获取焦点:当表单元素变成一个可以输入的状态的时候,被称作为获取焦点
- 失去焦点:当表单元素失去可以输入状态的时候,被称作为失去焦点
两种使用方法:
- label标签包含住标注元素,让label标签的for属性 和 相对应的表单元素的id属性 值相等
- label标签包住整个标注元素和相对应的表单元素,label不能出现for属性
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>button</title>
</head>
<body>
<form action="###" method="get">
<!--方法1-->
<label for="user">请输入用户名:</label>
<input type="text" name="user" value="" id="user">
<!--方法2-->
<label>
男 <input type="radio">
</label>
<button type="submit">点击我呀</button>
</form>
</body>
</html>
- label元素:对select标签,只能获取焦点,但是不能把列表下拉出来
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>button</title>
</head>
<body>
<form action="###" method="get">
<label for="city">选择城市</label>
<select name="city" id="city">
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="广州">广州</option>
</select>
<label for="mes">留言</label>
<textarea name="mes" id="mes" cols="30" rows="10"></textarea>
<button type="submit">点击我呀</button>
</form>
</body>
</html>
tabel标签
表格书写:
- table是表格的最外层
- caption:表格的标题 一般写在表格的最上边
- tr就是表格的每一行
- th表示表头单元格 默认居中和加粗
- td表示普通单元格
- 表格默认没有边框,宽度也是内容撑开的
table标签的属性:
- width:设置表格的宽度,每一列的内容都是自适应分配
- border:给表格设置边框 值为数字 代表外边框的宽度
- 表格的外层和单元格都设置上了边框,但是单元格的边框永远是1,外层边框是border属性的值
- border-collapse:collapse css设置给border元素,用来合并边框
- cellpadding:设置单元格与内容之间的间隙
- cellspacing:设置单元格与单元格之间的距离(单元格不合并 才有效果)
合并单元格:
- colspan:设置跨列,谁合并,给谁设置
- rowspan:设置跨行
- 表格的优化:使用thead、tbody、tfoot标签包裹tr标签使其更具有语义化
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>table</title>
</head>
<body>
<table width="400" border="1" style="border-collapse:collapse;" cellpadding="10" cellspacing="0">
<caption>0225班就业表</caption>
<tr>
<th colspan="2">学生就业就业薪资</th>
<th>备注</th>
</tr>
<tr>
<td>小王</td>
<td>12</td>
<td></td>
</tr>
<tr>
<td>老王</td>
<td rowspan="2">13</td>
<td></td>
</tr>
<tr>
<td>王中王</td>
<td></td>
</tr>
<tr>
<td>大王</td>
<td>15</td>
<td></td>
</tr>
</table>
</body>
</html>
iframe标签
- 创建一个包含另外一个文档的内联框架,就是把其他的html页面嵌入到当前的页面中
- src是嵌入html的地址,可以是网络,也可以是本地服务器
- width和height属性来设置内联框架的宽高
- iframe拥有自己的DOM树,也有自己的会话历史记录,页面中的每一个iframe都会占用额外的计算机资源
- 为了性能,我们尽量少的去书写iframe
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=UTF-8>
<tItle>Title</tItle>
</head>
<body>
<div>
<h1>学习iframe标签</h1>
<div>
哈哈哈哈
<iframe src="./05.table元素.html" width="300"></iframe>
<iframe src="./05.table元素.html" width="300"></iframe>
</div>
</div>
</body>
</html>
H5新增语义化标签(结构标签)
header标签
- 用来定义文档(网页或者是某一个段落)的页眉(头部)
- 可能包含一些标题元素,也可能包含其他元素,比如logo、搜索框、作者信息等等
- 完成的网页或者是完整的块(网页的一个独立区域)是头部、内容、 尾部组成的(并不是强制)
- header不是一个独立的分块,而是属于独立分块的头部
- 整个页面没有header限制个数,可以使用多个
footer标签
* footer标签代表一个网页或者章节内容的底部区域(页脚)
* footer通常包含章节的作者,版权数据和文章的其他链接
* 其他和header同理,比如不是独立的区域,应该是隶属于一个章节或者是网页nav标签:
- 目的:给文档提供导航列表
- 导航可以分为:菜单、目录表、索引
- 并不是所有的导航都需要用nav标签,只是当前页面中比较重要的热门的可以使用nav,比如在底部导航,就没有必要加入链接
- 一个网页可能会有多个导航,比如整个网页的导航,也可以是某一块区域的导航
- nav使用有两种方法:
- 当nav中的导航列表是静态的,nav中直接嵌套a标签使用即可
- 当nav中的导航是动态的(需要滑动查看更多,主要出现在移动端),nav中最好嵌套ul>li>a标签
section标签
- section是html中一个独立的区域,没有其他语义,一般会包含一个独立的标题
- 假设有一个效果,上边是nav导航栏,导航栏一般对对应一个区域,用来显示这个导航到的内容,这个区域我们就可以使用section
- section主要是对网页进行分块,也可以对网页中的某块内容进行分块
- 通常一个完成的section是有标题和内容组成的,不推荐给没有标题的区域设置section
- 如果想要给一个内容设置有个容器用来书写样式,那么还是推荐使用div
article标签
- 代表文档、页面、或程序中,可以独立的完整的被外部引用的内容
- 比如一篇博客、一篇文章、一段用户的评论、一个日历插件,或者是其他独立内容
- 一般来说,一个article也有自己的头部header,或者是footer
article和section区别
- article元素可以看做是特殊的section,但是强调独立性比section更强
- section主要强调分段分块,article是强调很强的独立性
- 原则上来说能用article的时候,也可以使用section,但是假设用article更合适,请使用article
div和article和section对比
- div、section、article语义依次递增
- div没有任何的语义,仅仅是用作样式,可以用在任何场景,但是我们容易看不清上下文关系
- 对于主题性的区域,我们可以使用section
- 加入这个区域可以脱离上下文,作为完整独立的内容存在,使用article
aside标签
- 表示一个和其余页面内容几乎无关的区域
- 被认为是独立于内容的一部分,并且可以拆出来而不会使整体收到影响,通常表现为侧边栏
- 这个里边的内容和其他元素内容关联性不强
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>header标签</title>
</head>
<body>
<div>
<!--头部区域-->
<header>
<h1>你看我像不像logo</h1>
<!--导航区域-->
<nav>
<a href="###">news</a>
<a href="###">my</a>
<a href="###">tiyu</a>
</nav>
</header>
<!--内容区域-->
<section>
<h2>这里是评论区域</h2>
<article>
<h3>评论人:张三</h3>
<p>今天天气真好</p>
</article>
<article>
<h3>评论人:李四</h3>
<p>今天天气真好</p>
</article>
<article>
<h3>评论人:王五</h3>
<p>今天天气真好</p>
</article>
</section>
<!--侧边栏-->
<aside>
我是侧边栏内容
</aside>
<!--底部区域-->
<footer>
<div>
<h3>友情链接</h3>
<a href="###">百度</a>
<a href="###">阿里巴巴</a>
<a href="###">阿里妈妈</a>
</div>
</footer>
</div>
</body>
</html>
H5新增语义化标签(媒体标签)
figure标签
- 代表一块独立的内容,是一个独立的引用单元
- 这个标签在主文中用来引用 图片、插画、表格、代码段等等信息
- 一般会在figure元素中插入figcaption元素(标题元素),将figcaption代表的标题与figure内容相关联
- 如果是单独一张图片 或者 单独的表格等等,那么直接使用相应的标签即可,如果存在图片和标题,那么请使用figure标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>figure</title>
</head>
<body>
<figure>
<figcaption>海贼王的图片</figcaption>
<img src="../images/05.jpg" alt="" width="300">
</figure>
</body>
</html>
source 标签
- 因为没有任何的视频格式可以兼容所有浏览器,我们也不能同一个视频书写多个video标签
- 可以在video标签中书写source标签,source用来引入不同的视频格式
- 浏览器会依次检测视频哪一个支持,如果支持,就不再向下寻找
video标签
src属性:视频的路径 如果只有src属性,那么现实的是视频的封面
- src是书写在source标签中
- width:给视频设置宽度 只设置宽度 高度自适应
height:给视频设置高度 这设置高度 宽度自适应
- 设置宽高是不会视频变形,只要宽高有一个达到设置的要求,视频就停止等比缩放,让视频在另一个没有充满的方向上居中
- controls:显示播放控件
- autoplay:视频自动播放 (浏览器限制不允许自动播放 但是当设置为静音的时候,自动播放生效)
- muted: 设置静音
- loop: 设置循环播放
preload:
- none:提示作者认为用户不需要查看该视频,服务器也想要最小化访问流量;换句话说就是提示浏览器该视频不需要缓存。
- metadata: 提示尽管我们认为用户不需要查看该视频,不过抓取元数据(比如:长度)还是很合理的。
- auto: 用户需要这个视频优先加载;换句话说就是提示:如果需要的话,可以下载整个视频,即使用户并不一定会用它。
- poster: 引入一个图片或者广告视频,作为视频的封面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>视频引入</title>
</head>
<body>
<video controls muted loop preload="auto" poster="../images/06.png">
<source src="../images/source/test.mp4">
<source src="../images/source/test.webm">
<source src="../images/source/test.ogv">
垃圾 给你一个链接 自己体会 <a href="">点击下载新版浏览器</a>
</video>
</body>
</html>
audio标签
- 几乎所有的属性都和video标签重合
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>音频</title>
</head>
<body>
<audio controls autoplay muted preload="metadata" loop>
<source src="../images/source/music/BIGBANG%20-%20Let's%20not%20fall%20in%20love.mp3">
<source src="../images/source/music/BIGBANG%20-%20Let's%20not%20fall%20in%20love.ogg">
<source src="../images/source/music/BIGBANG%20-%20Let's%20not%20fall%20in%20love.webm">
垃圾
</audio>
</body>
</html>
H5新增语义化标签(其他标签)
mark标签
- 为引用的内容进行标记或突出显示文本,用来表示和上下文之间的关联性
- 突出显示的文本通常可能和用户当前的活动等有一定的关联性
- 比如,用户搜索的时候,它可以显示搜索之后的关键字
- 不要把mark和 em、strong进行混淆;em、strong都是表示文本在上下文的重要性,而mark只是为了表示关联性
- mark标签是行内标签,默认黄色背景颜色
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>mark元素</title>
</head>
<body>
<input type="text" value="下雨">
<p>今天晚上可能会<mark>下雨</mark>,明天中秋节晴朗</p>
</body>
</html>
time标签
- 用来表示24小时制 或者是 一个公历时间
- 作用:以机器可读的格式去表示日期和时间,安排日程表的应用就可以使用这个time标签
- 通用时间格式 XXXX-XX-XX XX:XX:XX
两种用法:
- time标签直接包含时间
- 使用datetime属性来表示时间
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>time标签</title>
</head>
<body>
<div>
<!-- 主题区域-->
<section>
<h2>这里是评论区域</h2>
<article>
<h3>评论人:张三</h3>
<p>今天天气真好</p>
<p><time>2019-9-12 19:00:00</time></p>
</article>
</section>
</div>
</body>
</html>
datalist标签
- 包含了一组option元素,代表是列表可选的值
- 和input进行相关联,用来配套使用
- input中的list属性 == datalist的id属性
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>datalist元素</title>
</head>
<body>
<input list="city" type="text">
<datalist id="city">
<option value="河南">河南</option>
<option value="河北">河北</option>
<option value="湖北">湖北</option>
<option value="湖南">湖南</option>
<option value="胡建">胡建</option>
</datalist>
</body>
</html>
progress标签
- 主要用来显示一项任务的完成程度
- 规范没有规定默认的样式,所以各个浏览器默认的样式不一定相同
属性:
- value:是当前进度的值
- max:是总进度的长度
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>progress元素</title>
</head>
<body>
<progress max="100" value="80"></progress>
</body>
</html>
ruby 注释标签
- 通过rt标签对ruby标签的内容进行注释
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注释标签</title>
</head>
<body>
<p>
<ruby>蠡<rt>li</rt></ruby>
</p>
</body>
</html>
H5新属性
input新类型
- 如果input的新类型不被浏览器所支持,那么他会默认显示成text文本框
- input的新类型大多数都被谷歌浏览器支持,如果开发移动端,只要谷歌支持即可,因为所有安卓系统内置浏览器都是chrome
type旧类型:
- text: 文本框
- password: 密码框
- radio: 单选框
- checkbox: 多选框
- hidden: 隐藏域
file: 文件域
文件域 的 accept属性书写 image/* 代表接受任何格式的图片
- capture=camera 代表从相机拍照接收
- capture=photo 代表从相册选取照片
- 但是在pc端的表现都是选取文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>调用本地相册和相机</title>
</head>
<body>
<input type="file" accept="image/*" capture="camera">
<input type="file" accept="image/*" capture="photo">
</body>
</html>
- button: 按钮
- reset: 重置按钮
- submit: 提交按钮
type新类型
- color: 用来引入或者打开指定颜色的控件
- date: 日期的控件(年月日)
- week: 日期的控件(年周)(火狐不支持)
- month: 日期的控件(年月)(火狐不支持)
email: 编辑email的字段
- 自带验证,但是验证不完整,一般还是自己书写
- 在移动端上 有相对应的自动弹出键盘包含 @ .com 等按键
number: 用来输入数字的控件
- 多了一个上下的按键,可以增加和降低数字大小
- 验证必须是数字
其他属性
- min:最少数量
- max:最大数量
- value:当前数量
- step:每次累加累减数量
- search: 用来搜索框,当用户输入内容后,在末尾有一个删除按钮,单击可以删除输入好的文字
- tel: 电话号码输入框
- url: url地址
range: 输入一个拖拽的控件
属性:
- max:最大值
- min:最小值
- step:每次走的最小单位
- value:当前值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>新type类型-input</title>
</head>
<body>
<form action="###" method="get">
请选择你喜欢的颜色:
<input type="color" name="color">
<br>
请选择你的出生日期:
<input type="date" name="brithday">
<br>
请输入当前的周数:
<input type="week" name="week">
<br>
请输入你几月生日:
<input type="month" name="month">
<br>
请输入您的邮箱地址:
<input type="email" name="email">
<br>
请选择您购买的数量:
<input type="number" name="num" min="2" max="10" step="2">
<br>
请在本框中进行检索:
<input type="search" name="sear">
<br>
请输入您的电话号码:
<input type="tel" name="tel">
<br>
请输入你的个人博客的网址:
<input type="url" name="url">
<br>
请选择:
<input type="range" name="range" min="30" max="100" value="50">
<br>
<br>
<button>提交</button>
</form>
</body>
</html>
表单元素新属性
- placeholder: 占位符
- autocomplete: 是否提示用户曾经输入过的值 默认是on 关闭是off
autofocus: 默认自动获取焦点
- 他有唯一一个值是autofocus
- h5规范允许 当属性名和属性值相等的时候 可以直接书写属性名即可
- 在js中,h5允许以布尔值的形式控制属性开启或关闭,也就是在js中给autofocus属性设置值为true(真,打开)或者是 false(假,关闭),但是在元素的属性中 不允许使用true或者是false来控制开启或关闭
- 如果多个表单书写autofocus,那么以第一个书写的为准
- required: 必填项,当提交的时候,此表单必须填写
disabled: 禁用任何表单元素,这个元素就被禁止输入或选择等等操作
- 使用disabled禁用表单,表单元素是不会在被提交了
- checked: 单选框或多选框 默认被选中
readonly: 对于可编辑的表单来说 表示不能再次被编辑 但是是可以被提交的
- 对单选多选按钮不支持
form:
- 如果input存在form属性,表示当前的input属于某一个表单,此时form表单的id的值 就是这个input的值,那么form表单 和当前的input就进行关联了,无论input书写在哪里,都能随着表单发送数据
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表单元素的新属性</title>
</head>
<body>
<form action="###" method="get" id="form1">
请输入用户名:
<input type="text" name="user" placeholder="请输入用户名" autofocus autocomplete="on">
<br>
请输入密码:
<input type="text" name="pass" value="123456" autofocus required>
<br>
请确认性别:
男:<input type="radio" name="sex" value="男" disabled checked>
女:<input type="radio" name="sex" value="女" disabled>
<br>
请确认年龄:
大于30岁:<input type="radio" name="age" value="30-" checked readonly>
小于30岁:<input type="radio" name="age" value="30+" readonly>
请输入邮箱:
<input type="email" name="email" value="lipeihua@atguigu.com" readonly>
<br>
<button>提交</button>
</form>
<!--在form表单外有一个input,但是想点击form中的提交按钮的时候,把这个input也给提交了,form属性就这样使用-->
<input type="hidden" name="id" form="form1" value="12587">
</body>
</html>
select、option的新属性:
- selected: 默认选中项
- multiple: 让select可以进行多选(按住ctrl键进行多选)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>select元素的属性</title>
</head>
<body>
<form action="###" method="get">
请选择你喜欢的食物:
<select name="food" id="" multiple>
<option value="肉">肉</option>
<option value="鸡蛋">鸡蛋</option>
<option value="水果" selected>水果</option>
<option value="骨头">骨头</option>
</select>
<button>提交</button>
</form>
</body>
</html>
HTML相关规范
书写规范
- 标签的换行写法
- 双标签需要关闭
- 对代码进行缩进
- 标签的正确嵌套
- 合理加注释
- a标签不能嵌套a标签
- ......
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>html书写规范</title>
</head>
<body>
<!--标签的换行写法-->
<div>
<p>
今天的天
<span>真的好啊</span>
</p>
</div>
<!--标签需要关闭-->
<p>
<span>哈哈哈哈哈</span>
<em>呵呵呵呵</em>
</p>
<!--代码缩进使用tab键
tab每次缩进空格数量一样,我们可以设置。也为了方便代码合并
shift+tab是向前缩进
-->
<!--标签的正确嵌套-->
<ul>
<li></li>
<li></li>
</ul>
<dl>
<dt></dt>
<dd>
</dd>
</dl>
<!--合理加注释-->
<!--a标签不能嵌套a标签-->
<a href="">
<a href=""></a>
</a>
</body>
</html>
HTML实体(特殊符号)
- 在html中,会把一个或多个空格或回车解析成一个空格显示
-
在html中,特殊符号,一般不会直接书写,而是使用代表这个符号的实体(编码)
- 空格:
- 大于:>
- 小于:<
- 版权:©
- 双引号:"
为何使用语义化标签
- 语义化标签更具有可读性,便于团队的开发和维护
- 没有css的情况下,网页也能很好的呈现出内容结构和代码结构
- 关于SEO,搜索引擎更能理解到网页中各部分之间的关系,更准确更快速搜索信息
说明:笔者只是个在前端道路上默默摸索的初学者,若本文涉及错误请及时给予纠正,如果本文对您有帮助的话,请点赞收藏加关注,你的认可是我前进的动力,谢谢!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。