自学前端之HTML5(一)

165 阅读4分钟

设计目的为了在移动设备上支持多媒体。

文档声明

<!DOCTYPE html>

浏览器支持

ie8以下的浏览器不支持

解决方案:使用htmlshiv垫片包。

html5新标签

nav

nav标签定义导航链接部分

之前写法

<div class = 'nav'>
    <a href ="#">1</a>
    <a href ="#">2</a>    
    <a href ="#">3</a>    
    <a href ="#">4</a>    
    <a href ="#">5</a>  
</div>    

nav表示法

<nav>
    <a href ="#">1</a>
    <a href ="#">2</a>    
    <a href ="#">3</a>    
    <a href ="#">4</a>    
    <a href ="#">5</a>  
</nav>

header

header标签,定义网页的头部区域。它是作为网页的头部介绍内容或者是导航链接栏的容器。在一个文档中,可以定义多个header标签。

注意:header标签不能放在footer、address或另一个header中

<header>
    <div class = 'container'>
        <a href = "#">logo</a>
        <nav>
	    <a href ="#">首页</a>
    	    <a href ="#">沸点</a>    
    	    <a href ="#">话题</a>    
    	    <a href ="#">小册</a>    
    	    <a href ="#">活动</a>  
	</nav>
    </div>
</header>

main

定义文档的主要内容,一个文档中只能有一个。

以前写法

<div class = 'content'>
    主要内容
</div>
<main>
	主要内容
</main>

aside

定义article标签外的内容,aside的内容应该与附近的内容相关。

section

定义文档的某个区域,如章节、头部、顶部、其他区域

article

定义页面独立的内容,必须独立于文档的其余部分。

应用在

  • 论坛帖子
  • 博客文档
  • 新闻故事
  • 评论

figure

定义独立的流内容(图像、图标、照片、代码等),应与主内容有关,同时元素的位置相对于主内容是独立的,如果被删除,则不对文档流产生影响。

footer

定义文档的脚部区域

其他语义化标签

mark

高亮文本

<p>
    <mark>高亮文本</mark>
</p>

progress

显示进度

<progress max="100" value="70"></progress>

address

个人或某个组织的联系信息

智能表单

html5新增了新的表单元素

  • datalist
  • ke'gen
  • output

datalist

该元素规定输入域的选项列表,规定了form或input应该拥有自动完成功能

注意:input中的list必须和datalist中的id关联。

<form action="">
        <input type="text" list="word">
        <input type="submit">
        <datalist id='word'>
            <option value="hello"></option>
            <option value="hello 1"></option>
            <option value="hello w"></option>
            <option value="hello d"></option>
        </datalist>
</form>

kegen(了解)

提供了一种验证用户的可靠方法,当提交表单时,会生成两个键,一个私钥,一个公钥,私钥存储与客户端,公钥则被发送给服务器。公钥可用于之后验证用户的客户端证书。

output

用于不同类型的输出,如计算或脚本输出。

新增表单属性

autocomplete

记录输入记录,自动完成

<form action="" autocomplete="on">
        <input type="text">
        <input type="submit">
 </form>

novalidate

是否校验

新的input类型

color

<input type="color">

date

<input type="date">

email

 <form action="">
      <input type="email">
      <input type="submit">
 </form>

search

<form action="">
     <input type="search">
     <input type="submit">
</form>

新的input属性

autofocus

自动获得焦点

formaction

修改提交地址

<input type="submit" formaction="">

HTML5中的API

新的操作方法

获取元素的方法

获取单个
document.querySelector('选择器');
获取多个
document.querySelectorAll('选择器');

此处的选择器与css中的一致,就是说css中的所有选择器都可以。

类的操作

    <div class="box"></div>
    <script>
        var oDiv = document.querySelector('.box');
        console.log(oDiv.classList);
        //添加
        oDiv.classList.add('list');
        //删除
        oDiv.classList.remove('box');
        //校验
        oDiv.classList.contains('box');
        //切换
        oDiv.classList.toggle('box');
    </script>

自定义属性

我们可以通过data-自定义属性,来给元素添加自定义的属性名。一旦添加完成之后,可以通过js来获取以及设置自定义属性,如data-test

获取自定义的属性名
oDiv.dataset.test
设置自定义属性
oDiv.dataset.自定义属性名 = 值

文件读取

读取文件,首先得上传文件

<input type = 'file'>

其次,通过FileReader读取文件。读取文件后,会将结果存储在result属性中,而不是直接返回。

FileReader常用的方法

FileReader提供的事件

网络状态监测

window.navigator.onLine;

地图定位

百度地图定位

可以用第三方平台,百度地图开放平台

本地存储

json

各大网站交换数据的标准格式

特点:

  • 书写简单,一目了然
  • 符合js语法
{
    "key1":"value",
    "key2":"value2"
}

规定

  1. 复杂类型的值只能是数组或对象,不能是函数、正则、日期
  2. 基本数据类型的值只有四种:字符串、数值、布尔值、null
  3. 字符串必须使用双引号表示,不能使用单引号
  4. key必须放在引号里
  5. 数组或对象最后一个成员后不能加逗号
var myData = {
    "data":{
        "name":"john",
        "age":25,
        "friends":["huahua","job"]
    }
}
把JSON转换成JSON字符串
var jsonStr = JSON.stringify(myData);
把JSON字符串转换成JSON
JSON.parse(jsonStr);
localStorage

比cookie更好的本地存储方式

特点

  • 永久存储
  • 多窗口共享
  • 容量大约20M
常用方法

sessionStorage

特点

  • 生命周期为关闭当前窗口
  • 可以在同一个窗口下访问
  • 数据大小为5M左右
常用方法

与localStorage一样