html5 学习第四天

2019-10-22  本文已影响0人  罗_c857

HTML5 语义元素

什么是语义元素?

一个语义元素能够清楚的描述其意义给浏览器和开发者。

无语义 元素实例: <div> 和 <span> - 无需考虑内容.

语义 元素实例: <form>, <table>, and <img> - 清楚的定义了它的内容.

HTML5 <section> 元素

<section> 标签定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。

根据W3C HTML5文档: section 包含了一组内容及其标题。

<section> 

 <h1>WWF</h1> 

 <p>The World Wide Fund for Nature (WWF) is....</p>

</section>

HTML5 <article> 元素

<article> 标签定义独立的内容。.

<article> 元素使用实例:

Forum post

Blog post

News story

Comment

<article> 

 <h1>Internet Explorer 9</h1>  

<p>Windows Internet Explorer 9(缩写为 IE9 )在2011年3月14日21:00 发布。</p>

</article>

HTML5 <nav> 元素

<nav> 标签定义导航链接的部分。

<nav> 元素用于定义页面的导航链接部分区域,但是,不是所有的链接都需要包含在 <nav> 元素中!

<nav> <a href="/html/">HTML</a> |

    <a href="/css/">CSS</a> |

    <a href="/js/">JavaScript</a> |

    <a href="/jquery/">jQuery</a>

</nav>

HTML5 <aside> 元素

<aside> 标签定义页面主区域内容之外的内容(比如侧边栏)。aside 标签的内容应与主区域的内容相关.

<p>My family and I visited The Epcot center this summer.</p> 

<aside> 

 <h4>Epcot Center</h4> 

 <p>The Epcot Center is a theme park in Disney World, Florida.</p>

</aside>

HTML5 <header> 元素

<header>元素描述了文档的头部区域,<header>元素主要用于定义内容的介绍展示区域.在页面中你可以使用多个<header> 元素,以下实例定义了文章的头部:

<article> 

     <header> 

         <h1>Internet Explorer 9</h1> 

         <p><time pubdate datetime="2011-03-15"></time></p> 

     </header> 

     <p>Windows Internet Explorer 9(缩写为 IE9 )是在2011年3月14日21:00发布的</p>

</article>

HTML5 <footer> 元素

<footer> 元素描述了文档的底部区域,<footer> 元素应该包含它的包含元素,一个页脚通常包含文档的作者,著作权信息,链接的使用条款,联系信息等,文档中你可以使用多个 <footer>元素.

<footer> 

     <p>Posted by: Hege Refsnes</p> 

     <p><time pubdate datetime="2012-03-01"></time></p>

</footer>

HTML5 <figure> 和 <figcaption> 元素

<figure>标签规定独立的流内容(图像、图表、照片、代码等等)。

<figure> 元素的内容应该与主内容相关,但如果被删除,则不应对文档流产生影响。

<figcaption> 标签定义 <figure> 元素的标题.

<figcaption>元素应该被置于 "figure" 元素的第一个或最后一个子元素的位置。

<figure> 

     <img src="img_pulpit.jpg" alt="The Pulpit Rock" width="304" height="228"> 

     <figcaption>Fig1. - The Pulpit Pock, Norway.</figcaption>

</figure>

我们可以开始使用这些语义元素吗?

以上的元素都是块元素(除了<figcaption>).

为了让这些块及元素在所有版本的浏览器中生效,你需要在样式表文件中设置一下属性 (以下样式代码可以让旧版本浏览器支持本章介绍的块级元素):

header, section, footer, aside, nav, article, figure

{

    display: block;

}

Internet Explorer 8 及更早IE版本中的问题

IE8 及更早IE版本无法在这些元素中渲染CSS效果,以至于你不能使用 <header>, <section>, <footer>, <aside>, <nav>, <article>, <figure>, 或者其他的HTML5 elements.

解决办法: 你可以使用HTML5 Shiv Javascript脚本来解决IE的兼容问题。HTML5 Shiv下载地址:https://cdn.static.runoob.com/libs/html5shiv/3.7/html5shiv.min.js

<!--[if lt IE 9]>

<script src="html5shiv.js"></script>

<![endif]-->

以上代码在浏览器小于IE9版本时会加载html5shiv.js文件. 你必须将其放置于<head> 元素中,因为 IE浏览器需要在头部加载后渲染这些HTML5的新元素

HTML5 Web 存储

什么是 HTML5 Web 存储?

使用HTML5可以在本地存储用户的浏览数据。

早些时候,本地存储使用的是 cookie。但是Web 存储需要更加的安全与快速. 这些数据不会被保存在服务器上,但是这些数据只用于用户请求网站数据上.它也可以存储大量的数据,而不影响网站的性能.

数据以 键/值 对存在, web网页的数据只允许该网页访问使用。

localStorage 和 sessionStorage 

客户端存储数据的两个对象为:

localStorage - 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除。

sessionStorage - 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。

localStorage 对象

localStorage 对象存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。

localStorage.sitename="菜鸟教程";

document.getElementById("result").innerHTML="网站名:" + localStorage.sitename;

移除 localStorage 中的 "sitename" :

localStorage.removeItem("sitename");

不管是 localStorage,还是 sessionStorage,可使用的API都相同,常用的有如下几个(以localStorage为例):

保存数据:localStorage.setItem(key,value);

读取数据:localStorage.getItem(key);

删除单个数据:localStorage.removeItem(key);

删除所有数据:localStorage.clear();

得到某个索引的key:localStorage.key(index);

实例展示了用户点击按钮的次数。

if (localStorage.clickcount){ 

             localStorage.clickcount=Number(localStorage.clickcount)+1;}

        else{     

                localStorage.clickcount=1;}

document.getElementById("result").innerHTML=" 你已经点击了按钮 " + localStorage.clickcount + " 次 ";

Web Storage 开发一个简单的网站列表程序

网站列表程序实现以下功能:

    可以输入网站名,网址,以网站名作为key存入localStorage;

    根据网站名,查找网址;

    列出当前已保存的所有网站;

//保存数据 function save(){

    var siteurl = document.getElementById("siteurl").value; 

    var sitename = document.getElementById("sitename").value; 

    localStorage.setItem(sitename, siteurl);

    alert("添加成功");}

//查找数据  function find(){ 

    var search_site = document.getElementById("search_site").value; 

    var sitename = localStorage.getItem(search_site); 

    var find_result = document.getElementById("find_result"); 

    find_result.innerHTML = search_site + "的网址是:" + sitename;  }

<div style="border: 2px dashed #ccc;width:320px;text-align:center;">

    <label for="sitename">网站名(key):</label> 

    <input type="text" id="sitename" name="sitename" class="text"/> 

    <br/> 

    <label for="siteurl">网 址(value):</label> 

    <input type="text" id="siteurl" name="siteurl"/> 

    <br/> 

    <input type="button" onclick="save()" value="新增记录"/> 

    <hr/> 

    <label for="search_site">输入网站名:</label> 

    <input type="text" id="search_site" name="search_site"/> 

    <input type="button" onclick="find()" value="查找网站"/> 

    <p id="find_result"><br/></p>  </div>

HTML5 Web SQL 数据库

Web SQL 数据库 API 并不是 HTML5 规范的一部分,但是它是一个独立的规范,引入了一组使用 SQL 操作客户端数据库的 APIs。如果你是一个 Web 后端程序员,应该很容易理解 SQL 的操作。Web SQL 数据库可以在最新版的 Safari, Chrome 和 Opera 浏览器中工作。

核心方法

以下是规范中定义的三个核心方法:

1,openDatabase:这个方法使用现有的数据库或者新建的数据库创建一个数据库对象。

2,transaction:这个方法让我们能够控制一个事务,以及基于这种情况执行提交或者回滚。

3,executeSql:这个方法用于执行实际的 SQL 查询。

打开数据库

我们可以使用 openDatabase() 方法来打开已存在的数据库,如果数据库不存在,则会创建一个新的数据库,

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

openDatabase() 方法对应的五个参数说明:

1,数据库名称

2,版本号

3,描述文本

4,数据库大小

5,创建回调(会在创建数据库后被调用)

执行查询操作

执行操作使用 database.transaction() 函数:

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

db.transaction(function (tx) {

  tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');});

插入数据

在执行上面的创建表语句后,我们可以插入一些数据:

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

db.transaction(function (tx) { 

 tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');

  tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "菜鸟教程")');

  tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "www.runoob.com")');});

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

db.transaction(function (tx) {

  tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');

  tx.executeSql('INSERT INTO LOGS (id,log) VALUES (?, ?)', [e_id, e_log]);});

读取数据

以下实例演示了如何读取数据库中已经存在的数据:

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

db.transaction(function (tx) { 

tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');

  tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "菜鸟教程")');

  tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "www.runoob.com")');});

db.transaction(function (tx) {  

 tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {      

        var len = results.rows.length, i;

      msg = "<p>查询记录条数: " + len + "</p>";

      document.querySelector('#status').innerHTML +=  msg;

      for (i = 0; i < len; i++){       

             alert(results.rows.item(i).log );

      }   

  }, null);});

删除记录

删除记录使用的格式如下:

db.transaction(function (tx) { 

 tx.executeSql('DELETE FROM LOGS WHERE id=1');});

删除指定的数据id也可以是动态的:

db.transaction(function(tx) { 

 tx.executeSql('DELETE FROM LOGS WHERE id=?', [id]);});

更新记录

更新记录使用的格式如下:

db.transaction(function (tx) { 

 tx.executeSql('UPDATE LOGS SET log=\'www.w3cschool.cc\' WHERE id=2');});

更新指定的数据id也可以是动态的:

db.transaction(function(tx) { 

 tx.executeSql('UPDATE LOGS SET log=\'www.w3cschool.cc\' WHERE id=?', [id]);});

上一篇下一篇

猜你喜欢

热点阅读