H5(4)开始H5

H5解决的问题:web浏览器之间,兼容性低;文档结构不够明确;web应用程序的功能受到限制(所以添加了很多标签和属性,目的是为了适应不同的设备,浏览器)

不一样的地方

内容类型:

DOCTYPE声明:  不需要像以前那样指定版本了,直接<!DOCTYPE html>

指定字符串编码:   <meta charset="UTF-8">

可省略标记的属性:

具有boolean值的属性:例如disable,readonly,当只写属性,不指定属性值的时候表示属性为true,或者属性值设置为属性名。默认是false。例如:

            <input type="checkbox" checked > ------true

            <input type="checkbox" checked="checked">--------- true

             <input type="checkbox" checked="">-------true

            <input type="checkbox" >  -------false

省略引号:比如  <input type="checkbox"  checked=checked> true  单引号也可以省略

 

 

新增的结构元素::

    section(内容块,比如章节,页眉,可以与h1-h6结合使用)

    article(表示页面中一块与上下文不相关的独立内容。例如博客中的一篇文章)

    aside(article元素之外的,与article相关的辅助信息,例如侧边栏)

    header(通常表示页面中的区域块,标题)

    hgroup(标题进行结合)

    footer(页面中的区域块,通常表示区域块的脚部)

    nav(导航链接部分)

    figure(一段独立的流的内容)

新增的其他元素
  video audio embed mark progress meter time ruby rt rp wbr

   canvas(画布) command details datalist datagrid keygen output source menu


新增input元素:
email(输入的必须是email地址)url number range(输入框内数字的范围值) DatePickers(日历)

全局属性:(对任何元素都适用)

contentEditable属性:允许用户编辑元素中的内容,bool类型。默认根据父级状态。什么都不填表示true
designMode属性:整个页面是否可编辑,属性值 on off
hidden属性:为true时元素处于不可见状态
spellcheck属性:对用户输入的内容,进行拼写和语法检查。就是英语单词是否正确
tabindex属性:表示该控件是第几个被访问到的,就是当你按table获得焦点的时候。当为-1的时候就无法获得焦点了。

 

 

具体介绍::


    section元素:对网站或应用程序中页面上的内容进行分块。不推荐为那些没有标题内容的使用section元素。article元素强调独立性,section元素强调分块。
     nav元素:应用场景:传统导航条,侧边栏导航条,翻页操作

 

  header元素:是一个具有引导和导航作用的结构元素,通常用来放置整个页面,或页面内的一个区域块的标题,但是也可以包含其他内容,例如数据表格,搜索表单,相关的logo图片。
footer元素:
hgroup元素:
address元素:用来在文章中呈现联系信息,包括文档作者或者文档维护者的名字,网站链接,电子邮箱,地址,电话号码,展示跟文档相关联系人的所有信息。里面承载的就是这些东西

aside 元素: 用来表示当前页面或者文章的附属信息部分,他可以包含与当前页面或主要内容相关的引用,侧边栏,广告,导航条,以及其他类似的有区别与主要内容的部分。


article元素
article元素代表文档,页面或应用程序中独立的,完整的,可以独自被外部引用的内容。它可以是一篇博客或者报刊中的文章,一篇论坛帖子,一段用户评论或独立的插件,或者是其他任何独立的内容。
可以嵌套使用(就像是div里面有div),可以用来表示插件。
footer元素:上层父级内容区块或者一个根区块的脚注。
hgroup元素:将标题和子标题进行分组的元素。通常会将h1到h6元素进行分组。就是说标题过多的时候,把他们包裹起来,代表一个子标题。


time元素与微格式:
微格式:利用html的class属性对网页添加附属信息的方法。
<time datetime="2015-10-10">2015-10-10</time> 只是一个单纯的时间
<time datetime="2015-10-10T20:00">2015-10-10</time>
<time datetime="2015-10-10T20:00Z">2015-10-10</time>

 

 

表单属性:

 

表单内元素的form属性 :指向的表单的ID
表单内元素的formaction属性(写道提交按钮里面)使得不同的按钮可以将表单提交到不同的页面。
表单内元素的formmethod属性:以前常常用get和post对整个表单。现在这个属性可以对每一个表单元素指定不同的提交方法
表单内元素的formenctype属性:类比H4中enctype(表单内容发送到服务器之前如何对内容进行编码)。formenctype对不同的表单元素分别指定不同的编码方式。formenctype="text/plain"表单数据中的空格,被转换成加号,但不对特殊字符进行编码。formenctype="multiparty/form-data"不对文件进行编码,在使用包含文件上传时必须使用该值。

表单内元素的formtarget属性:用于指定在何处打开表单提交后所需要加载的页面,可以对多个提交按钮分别使用formtarget.属性值:_blank新的浏览器页面 _self当前窗口打开 _parent当前窗口的父窗口打开。当然都依赖于frame。 _top在当前窗口打开。 frameName指定的frame框架打开。
表单内元素的autofocus属性:当画面打开,该控件自动获取光标焦点。
表单内元素的required属性:required属性,应用在大多数的输入元素上,在提交的时候,如果元素的内容为空白,则不允许提交,同时在浏览器中显示信息提示文字。required="required"
表单内元素的labels属性:为所有可使用标签的表单元素,button,select元素等,定义一个labels属性,属性值为NodeList对象,代表该元素所绑定的标签元素所构成的集合。

 

标签的control属性:H5中可以在标签内部放置一个表单元素,并且通过该标签的control属性来访问该表单元素。 
文本框的placeholder属性:当文本框处于未输入状态时显示输入提示,当文本框处于未输入状态且未获取光标焦点时,模糊显示输入提示文字。<input type="text" placeholder="请输入用户名">
文本框的list属性:该属性的值为某个datalist元素的id。datalist类似选择框,但是允许用户输入不同的值。datalist本身不现实,而是当输入框聚焦时候提示输入的方式。下面有案例
文本框的AutoComplete属性::自动完成功能。on off 填写 不填写
文本框的pattern属性:将属性值设为某个格式的正则表达式,在提交的时候对这些进行检查,检查其内容是否符合给定的格式。不符合则不提交。<input pattern="[A-Z]{3}">
文本框的SelectionDirection属性:是对input元素和textarea元素,当用户选取文字时属性值“forward”反向选取文字时,属性值为“backward”。当用户没有选取任何文字的时候,“forward”.
复选框的indeterminate属性(checkbox只有选取和非选取两种状态)h5中js可对该属性使用indeterminate属性,说明该复选框处于“尚未明确”的状态
image提交按钮的height属性与width属性 :类型为image的input元素。height,width,分别用指定的图片按钮的高频度和宽度。

pubdate属性:
<time datetime="2015-10-10" pubdate></time> 当有多个time的时候 这个属性代表了整个文章的发布日期。

 


labels属性:

<object>   // 定义一个嵌入的对象
<embed src="#" width="300" height="300"></embed>  // 标签定义嵌入的内容,比如插件。
</object>

 

labels的使用方式::验证输入框是否为空
<body>
<script>
    function Validate(){
      var txtName=document.getElementById("txt_name");

      var button=document.getElementById("btnValidate");

      var form=document.getElementById("testform");
      if(txtName.value.trim()=="")
      {
         var label =document.creatElement("label");
         label.setAttribute("for","txt_name");
         form.insertBefore(label,button);
         txtName.labels[1].innerHTML="请输入姓名";
         txtName.labels[1].setAttribute("style","font-size:9px;color:red")
      }

}
</scrip>

    <form id="testform">
        <label id="label" for="txt_name">姓名:</label>
        <input id="txt_name">
        <input type="button" id="btnValidate" value="提交" onclick="Validate()">
        </form>
    </body>

 

 


H5网页编排

<body>
    <header>
     <h1>网页标题</h1>
     <nav>
         <ul>
         <li><a href="#"/>首页</a></li>
         <li><a href="#"/>帮助</a></li>
         </ul>
     <nav>
   </header>
   <article>
    <hgroup>
      <h1>文章主标题</h1>
      <h2>文章子标题</h2>
    </hgroup>
    <p>文章正文。</p>
    <section>
    <div><article><h1>评论标题</h1><p>评论内容</p></article></div>
    </section>
  </article>
 <footer>
    <small>
    版权所有......
    </small>
  </footer>

</body>

 





selectionDirection的案例:用户是正向选取文字,还是反向选取文本。
<script>
  function AD(){
    var control=document.forms[0]['text'];
    var Direction=control.selectionDirection;
    alert(Direction);以这种方式,获取用户的操作。
  }
</script>
<form>
  <input type="test" name="text">
  <input type="button" value="点击我" onclick="AD()">
</form>

 

list的案例::输入的提示
<form>
  <input type="text" name="greeting" list="greetings">
  <datalist id="greetions" style="displayt:none">
    <option value="h5">h5</option>
    <option value="css3">css3</option>
    <option value="js">js</option>
  </datalist>
</form>

 

不再支持frame框架,支持iframe

posted @ 2017-02-27 23:33  二环东路  阅读(269)  评论(0编辑  收藏  举报