HTML5+CSS3 学习笔记1

HTML5

概念

  1. 而是HTML语言的第五次重大修改——版本
  2. 支持所有主流浏览器(IE9以上有选择的支持,但是IE8及以下不支持)
  3. 改变了用户与文档的交互性:多媒体:vidio、audio、canvas
  4. 增加了其他的特性:语义特性,本地存储特性、网页多媒体、二维三维、特效(过渡、动画)
  5. 相对于h4:
    • 进步:抛弃了一些不合理不常用的标记和属性。
    • 新增了一些标记和属性——表单。
    • 从代码角度而言,h5的网页结构代码更简洁。

新增语义标签

标签名说明
nav导航
header页眉
main文档主要内容
article文章
aside主题内容之外
footer文档 或 页脚

结构如下:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Title</title>
</head>
<body>
    <header>头部</header>
    <nav>导航</nav>
    <main>
        <article>左边</article>
        <aside>右边</aside>
    </main>
    <footer>底部</footer>
</body>
</html>

关于语义标签的兼容性

IE9:行级元素在设置宽度的时候是失效的(解决方法:设置display:block;)
IE8:完全不支持语义标签(不支持HTML5)–在IE8中,它不认识语义标签,所以无法解析这些标签,也就意味着缩写的样式无效。
解决方法:

  1. 手动创建标签;即document.createElement("标签名");–注意:默认的标签都是行级元素。
  2. 引入第三放插件html5shiv.min.js,即<script src="../html5shiv.min.js"></script> 在默认情况下,IE8及以下的IE版本不支持HTML5,引入这个文件就能兼容。

表单新增

参考代码:

        电子邮箱:<input type="email"><br>
        电话:<input type="tel"><br>
        网址:<input type="url"><br>
        数量:<input type="number" value="60" max="100" min="0"><br>
    	商品名称:<input type="search"><br>
        范围:<input type="range" max="100" min="0" value="50"><br>
    	颜色:<input type="color"><br>
        时间:<input type="time"><br>
        日期:<input type="date"><br>
        日期时间:<input type="datetime"><br>
        日期时间:<input type="datetime-local"><br>
        月份:<input type="month"><br>
        星期:<input type="week"><br>

新增type属性

邮箱email

格式:<input type="email">
作用:提供了默认电子邮箱的完整验证:要求必须包含@符号,同时必须包含服务器名称;如果不能满足验证,则会阻止当前的数据提交。

电话tel

格式:<input type="tel">
作用:为了能够在移动端打开数字键盘;意味着数字键盘限制了用户只能输入数字。
注意:不具备验证功能。验证功能参考表单新增其他属性。

网址url

格式:<input type="url">
作用:验证只能输入合法的网址:必须包含http://

数量number

格式:<input type="number" value="" max="" min="">
作用:只能输入数字(包含小数点),不能输入其他字符。value设置默认值;max设置最大值;敏设置最小值。

search

格式:<input type="search">
作用:可以提供更人性化的输入体验,在输入后含有清空按钮作用。

范围range

格式:<input type="range" max="" min="" value="50">
作用:设置进度条

颜色color

格式:<input type="color">
作用:颜色拾取器

时间time

格式:<input type="time">
作用:时分秒`

日期date

格式:<input type="date">
作用:年月日

日期时间1 datetime

格式:<input type="datetime">
作用:年月日 时分秒

  • 注意:大多数浏览器不能支持,只能Safari支持
日期时间2 datetime-local

格式:<input type="datetime-local">
作用:年月日 时分秒

月份month

格式:<input type="month">
作用:月份

星期week

格式:<input type="week">
作用:星期

表单新增其他属性

参考代码:

<form action="" id="myForm">
    	电子邮箱:<input type="email"><br>
        电话:<input type="tel"><br>
        网址:<input type="url"><br>
        数量:<input type="number" value="60" max="100" min="0"><br>
    	商品名称:<input type="search"><br>
        范围:<input type="range" max="100" min="0" value="50"><br>
    	颜色:<input type="color"><br>
        时间:<input type="time"><br>
        日期:<input type="date"><br>
        日期时间:<input type="datetime"><br>
        日期时间:<input type="datetime-local"><br>
        月份:<input type="month"><br>
        星期:<input type="week"><br>
        
        用户名:<input type="text" placeholder="请输入用户名" autofocus autocomplete="on"><br>
        电话:<input type="tel" required pattern="^(\+86)?1\d{10}$"><br>
        文件:<input type="file" name="photo" multiple><br>
        电子邮箱:<input type="email" name="email" multiple><br>
        <input type="submit"><br>
    </form>
    地址:<input type="text" name="address" form="myForm">
placeholder

作用:提示文本,提示占位。

autofocus

作用:自动获取焦点。

autocomplete

取值:on打开、``off`关闭
作用:自动完成。
使用前提:

  1. 必须成功提交过
  2. 当前元素必须有name属性
required

作用:必须输入;如果没有输入则会阻止当前数据提交。

pattern

作用:添加验证——正则表达式
补充:

  1. *:表示任意个
  2. ?:表示0个或1个
  3. +:表示1个或多个
multiple

作用:

  1. 可以选择多个文件
  2. 可以允许输入多个邮箱地址–以逗号,分隔
form

作用:指定表单id,可以实现将表单外的元素提交到指定表单。

  • 注意:指定表单form需要有id属性值

表单新增元素

参考代码:

<form action="">
        专业:<input type="text" list="subjects"><br>
        <datalist id="subjects">
        	<option value="前端与移动开发" label="前景非常好"></option>
            <option value="java" label="使用人数多"></option>
            <option value="JavaScript" label="做特效"></option>
            <option value="C" label="不知道" />
            <!--注意:option可以是单标签,也可以是双标签-->
        </datalist>

    	用户名:<input type="text" name="userName"><br>
        密码:<input type="text" name="userPwd"><br>
        加密:<keygen></keygen><br>
        <input type="submit">
    </form>
    <output>总金额:¥100.00</output>
datalist

作用:不仅可以输入,还可以进行选择。
使用:给input元素指定list属性的值–为datalist的id属性值

  • 注意:如果input输入框的type类型是url,那么value值必须添加http://

格式:

<input type="" list="指定列表">
<datalist id="指定列表">
    <!--注意:option可以是单标签,也可以是双标签-->
    <option value="选项内容" label="提示文本"></option>
        或
    <option value="选项内容" label="提示文本" />
        ...
</datalist>
keygen

作用:密钥对生成器–生成公钥、私钥。
说明:当提交表单时,会生成两个键,一个是私钥,一个是公钥。私钥存储于客户端,公钥则会被发送到服务器。公钥可用于之后验证用户的客户端证书,即实现非对称加密目前,浏览器支持率极低。
格式:<keygen></keygen>

output

作用:显示输出信息(只能显示不能修改)
说明:

  1. 语义性更强
  2. 值需要设置,不能自动计算。
    格式:<output></output>

新增表单事件

参考代码:

    <form action="">
    	用户名:<input type="text" name="userName" id="userName"><br>
        电话:<input type="tel" name="userPhone" id="userPhone" pattern="^1\d{10}$"><br>
        <input type="submit">
    </form>
    <script>
    	document.getElementById("userName").function(){
			console.log("oninput:"+this.value);
		}
		document.getElementById("userName").function(){
			console.log("onkeyup:"+this.value);
		}
		document.getElementById("userPhone").oninvalid=function(){
			this.setCustomValidity("请输入合法的11位手机号");
		}
    </script>
oninput 当内容改变时

作用:监听当前指定元素内容的改变(添加、删除内容)。

onkeyup 当键盘弹起时

作用:每一个键弹起都会触发该事件。

oninvalid 当验证不通过时

应用:当验证不通过时,设置默认的提示信息。——调用this.setCustomValidity("")

  • 注意:要存在验证——pattern属性

新增标签——进度条

1. progress

格式:<progress max="" value=""></progress>
属性:
1. max:最大值
2. value:当前进度值

2. meter

作用:度量器,衡量当前进度值(体现出来)。
格式:<meter max="" min="" high="" low="" value=""></meter>
属性:
1. max:最大值
2. min:最小值
3. high:规定的较高的值
4. low:规定的较低的值
5. value:当前度量值
实现效果参考代码:

    <meter max="100" min="0" high="80" low="40" value="30"></meter>
    <meter max="100" min="0" high="80" low="40" value="60"></meter>
    <meter max="100" min="0" high="80" low="40" value="90"></meter>

新增标签——多媒体

audio 音频

格式:<audio src="" controls autoplay loop></audio>
属性:
1. src:音频文件路径;取值 路径
2. controls:播放器控制面板
3. autoplay:自动播放
4. loop:循环播放

video 视频

格式:<video src="" controls autoplay loop width="" height="" poster="" ></video>
属性:
1. src:视频文件路径;取值 路径
2. controls:播放器控制面板
3. autoplay:自动播放
4. loop:循环播放
5. width:宽度;取值 长度单位
6. height:高度;取值 长度单位 (注意:一般情况下只会设置宽度或高度,自动等比缩放;如果同时设置宽高,那么视频并不会真正调整到设置的宽高,除非设置的值刚好是等比例的。)
7. poster:当视频还没有完全下载或者用户还没有点击播放时默认显示的封面;默认显示当前视频文件的第一幅画面; 取值 图片的路径

source的设置

说明:不同浏览器支持的视频文件格式不一。在对网页进行添加视频时,需要考虑到浏览器是否支持;可以采用source准备多个格式的视频文件,让浏览器自动选择。
格式例子:

<video>
    	<source src="" type="vidio/flv">
        <source src="" type="vidio/mp4">
        您的浏览器不支持当前的视频播放
    </video>

新增DOM元素

querySelector()

作用:获取单个元素,如果获取的元素不止一个,则返回满足条件的第一个元素。
比较:getElementsByTagName———获取到的是指定标签名称的数组。
格式:document.querySelector("选择器");
说明:
1. query查询 Selector选择器
2. 参数要求:如果是类选择器必须添加.;如果是id选择器,就必须添加#;否则当成标签处理。

querySelectorAll()

作用:获取所有满足条件的元素。
格式:document.querySelectorAll("选择器");

新增类样式操作—— classList

作用:获取当前元素的所有class样式列表 ——数组
比较:className —— 获取/赋值 到当前元素的class样式
格式:元素.classList;
例子:document.querySelector("选择器").classList;

add()

作用:为元素添加指定名称的class样式。

  • 一次只能添加一个样式
    格式:元素.classList.add(class样式名称);

remove()

作用:为元素移除指定名称的样式(不是移除class属性)。

  • 一次只能让移除一个样式
    格式:元素.classList.remove(class样式名称);

toggle()

作用:切换元素的样式——如果元素之前没有指定名称的样式则添加;如果有则移除。
格式:元素.classList.toggle(class样式名称);

contains()

作用:判断元素是否包含指定名称样式;返回bool类型
格式:元素.classList.contains(class样式名称);

自定义属性

应用:通过自定义属性值,获取当前标签。

例子如下:

<p data-school-name="itcast">例子</p>
<script>
	var p=document.querySelector("p");
	var value=p.dataset["schoolName"];
	console.log(value);
</script>

定义

规范:
1. 规范:data-开头,多个单词使用-连接
2. data-后必须 至少有一个字符
建议:
1. 名称应该都是用小写,不包含任何大写
2. 名称不要有任何特殊符号
3. 名称不要使用纯数字

取值dataset

格式:var变量=元素.dataset["驼峰命名名称"];
步骤

  1. 获取自定义属性值
  2. date-后的单词使用驼峰命名法连接
  3. 使用dataset获取属性值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值