1、HTML5
1.1 新增布局标签
- header:用于定义文档或者section的页眉;
- footer:用于定义页面或section的底部信息;
- nav:用于定位页面上的导航链接部分;
- article:用于定位文档或者页面中的独立部分,可以在不丢失原本意义的情况下独立存在;
- section:用于定位文档中的节,代表可以是一个独立的部分,通常包含标题;
- aside:用于定位和页面主要内容有关但可以被单独引用的内容;
- main:文档的主要内容,WHATWG中没有语义;
- hgroup:包裹连续的标题,W3C将其删除。
article中可以有多个section;
section强调将内容分为一块,article强调内容为一个整体,内容比较完整。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>新增布局标签</title>
<style>
* {
margin: 10px auto;
text-align: center;
}
aside {
float: right;
}
</style>
</head>
<body>
<header>个人博客</header>
<nav>
<a href="#">首页</a>
<a href="#">文章分类</a>
<a href="#">我的</a>
</nav>
<main>
<article>
<h3>文章1</h3>
<section>
<h3>章节1</h3>
<p>主要内容:.........................</p>
</section>
<section>
<h3>章节2</h3>
<p>主要内容:.........................</p>
</section>
<section>
<h3>章节3</h3>
<p>主要内容:.........................</p>
</section>
</article>
</main>
<aside>
<nav>
<ul>
<li><a href="#">链接1</a></li>
<li><a href="#">链接2</a></li>
<li><a href="#">链接3</a></li>
</ul>
</nav>
</aside>
<footer>
<p>联系我们</p>
<p>网站备案号:✖️✖️✖️✖️✖️✖️✖️</p>
</footer>
</body>
</html>
1.2 新增状态标签
- meter:展示测量结果在已知范围的位置,如手机电量提示。
- max:最大值;
- min:最小值;
- high:高值;
- low:低值;
- optimum:最优值;
- value:当前值。
- progress:显示操作进度,如文件上传进度条。
- max:最大值;
- value:当前值。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>新增状态标签</title>
</head>
<body>
<span>手机电量: </span>
<meter max="100" min="0" high="20" low="10" optimum="90" value="50"></meter>
<br>
<span>上传进度: </span>
<progress max="100" value="60"></progress>
</body>
</html>
1.3 新增列表标签
- datalist:用于对搜索框关键字的提示;
- details:用于展示问题和答案,或对专有名词进行解释;
- summary:写在details中,指定问题或专有名词。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>新增列表标签</title>
</head>
<body>
<input type="text" list="data">
<button>搜索</button>
<datalist id="data">
<option value="d1">d1</option>
<option value="d2">d2</option>
<option value="d3">d3</option>
<option value="d4">d4</option>
</datalist>
<details>
<summary>标题</summary>
<p>这是标题的解释</p>
</details>
</body>
</html>
1.4 新增文本标签
- ruby:包裹需要注音的文字;
- rt:包裹拼音,写在待注音文字的下面;
- mark:标记文字,使其背景变为淡黄色。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>新增文本标签</title>
</head>
<body>
<ruby>
<span>注音文字</span>
<rt>zhù yīn wén zì</rt>
</ruby>
<hr>
<p>这是一个<mark>段落</mark>。</p>
</body>
</html>
1.5 表单新增功能
- placeholder:提示文字;
- required:表示该字段不能为空;
- autofocus:光标焦点自动锁定,多个该标签光标锁定第一个;
- autocomplete:自动根据历史记录生成相关关键词;
- pattern:正则表达式,验证输入的格式,输入不能为空值;
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>新增表单控件属性</title>
<style>
#self {
margin-left: 100px;
height: 100px;
width: 200px;
}
#button {
position: relative;
left: 10px;
bottom: 10px;
}
textarea::placeholder {
text-align: center;
line-height: 100px;
font-size: 30px;
}
</style>
</head>
<body>
<form action="">
<label for="account">账号:</label>
<input type="text" name="account" id="account" placeholder="请输入账号" required autofocus autocomplete="on" pattern="\w{6}">
<br>
<label for="password">密码:</label>
<input type="password" name="password" id="password" placeholder="请输入密码" required>
<br>
<label for="gender">性别:</label>
<input type="radio" name="gender" id="gender" required>男
<input type="radio" name="gender" id="gender">女
<br>
<label for="hobby">爱好:</label>
<input type="checkbox" name="hobby" id="hobby" required>爱好1
<input type="checkbox" name="hobby" id="hobby">爱好2
<input type="checkbox" name="hobby" id="hobby">爱好3
<br>
<label for="self">个人简介:</label>
<br>
<textarea name="self" id="self" placeholder="点击输入" required></textarea>
<button id="button">提交</button>
</form>
</body>
</html>
1.6 input新增属性
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>input新增属性</title>
</head>
<body>
<!-- 表单在属性中添加 novalidate 表示去除表单中所有验证 -->
<form action="" novalidate>
邮箱:<input type="email" name="email" required>
<br>
网址:<input type="url" name="url" required>
<br>
数字:<input type="number" name="number" max="80" min="20" step="5" required>
<br>
搜索:<input type="search" name="search" required>
<br>
电话:<input type="tel" name="tel" required>
<br>
滑块:<input type="range" name="range" max="80" min="20" step="5" value="25" required>
<br>
颜色选择器:<input type="color" name="color" required>
<br>
日期:<input type="date" name="date" required>
<br>
月份:<input type="month" name="month" required>
<br>
周:<input type="week" name="week" required>
<br>
时间:<input type="time" name="time" required>
<br>
时间和日期:<input type="datetime-local" name="datetime-local" required>
<br>
<button>提交</button>
</form>
</body>
</html>
1.7 video新增属性
- controls:媒体控制;
- loop:循环播放;
- autoplay:自动播放,必须静音播放属性在时才播放,除非媒体参与度为高;
- muted:静音播放;
- poster:视频封面,未点击时为引入图片大小,视频播放为视频大小,最好大小一致;
- src:引入视频地址;
- width:视频的宽;
- height:视频的高。
- proload:视频预加载;
- none:不预先加载视频;
- metadata:仅预先获取视频的元数据(基本信息);
- auto:下载整个视频文件。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>新增媒体标签</title>
<style>
video {
height: 300px;
margin-top: 10px;
}
.video {
text-align: center;
}
</style>
</head>
<body>
<div class="video">
<video src="./videos/video.mp4" controls loop autoplay></video>
<br>
<video src="./videos/video.mp4" controls muted loop poster="./videos/touxiang.png" preload="auto"></video>
</div>
</body>
</html>
1.8 audio新增属性
audio中与视频的属性基本一致,但是没有
poster
、width
、height
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>音频新增属性</title>
<style>
audio {
width: 600px;
}
.mask {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-color: rgba(0, 0, 0, 0.592);
}
.dialog {
position: absolute;
top: 0;
bottom: 0;
left: 0;
background-color: aqua;
right: 0;
text-align: center;
width: 400px;
height: 400px;
line-height: 400px;
margin: auto;
font-size: 40px;
}
span {
border: 1px wheat solid;
cursor: pointer;
}
</style>
</head>
<body>
<audio id="music" src="./videos/反方向的钟 - 周杰伦.mp3" controls loop preload="auto"></audio>
<div class="mask" id="mask">
<div class="dialog" id="dialog">
<span>登录</span>
<span onclick="play()">试听</span>
</div>
</div>
<script>
function play(){
music.play()
mask.style.display = "none"
}
</script>
</body>
</html>
1.9 新增全局属性
- contenteditable:是否可被用户编辑;
- draggable:元素是否可被拖动;
- hidden:隐藏元素;
- spellcheck:拼写检查,需要在浏览器设置中打开;
- contextmenu:规定元素的上下文菜单,用户鼠标右键点击元素时显示;
- data-*:存储页面私有定制数据。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>新增全局属性</title>
<style>
.contenteditable {
border: 1px solid black;
padding: 5px;
}
.draggable {
cursor: move;
}
.hidden {
display: none;
}
.spellcheck {
border-bottom: 1px dotted red;
}
.contextmenu {
display: inline-block;
margin: 5px;
}
[data-custom] {
background-color: yellow;
}
</style>
</head>
<body>
<div contenteditable="true" class="contenteditable">Contenteditable 属性: 使元素可编辑</div>
<div draggable="true" class="draggable">Draggable 属性: 使元素可以拖动</div>
<div class="hidden">Hidden 属性: 隐藏元素</div>
<div spellcheck="true" class="spellcheck">Spellcheck 属性: 开启拼写检查</div>
<div contextmenu="exampleMenu" class="contextmenu">Contextmenu 属性: 规定元素的上下文菜单</div>
<div data-custom="customData">Data-* 属性: 存储页面私有定制数据</div>
<!-- 示例上下文菜单 -->
<menu type="context" id="exampleMenu">
<li><a href="#copy">复制</a></li>
<li><a href="#paste">粘贴</a></li>
<li><a href="#cut">剪切</a></li>
</menu>
</body>
</html>
1.10 H5兼容问题
在一些低版本ie浏览器中有些H5样式不支持,引入谷歌写的js文件和一些设置可使得兼容性更好。
<head>
<!-- 让IE浏览器处于最优渲染模式 -->
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<!-- 针对国产浏览器,让浏览器优先使用webkit内核 -->
<meta name="render" content="webkit">
<!--[if lt ie 9]>
<script src="./html5shiv.js"></script>
<![endif]-->
</head>