zoukankan      html  css  js  c++  java
  • HTML5的元素与结构标签

    HTML5新增标签

    新增的结构元素:

    一个普通的页面,会有头部,导航,文章内容,还有附着的右边栏,还有底部等模块,而我们是通过class进行区分,并通过不同的css样式来处理的。但相对来说class不是通用的标准的规范,搜索引擎只能去猜测某部分的功能,另外就是此页面程序交给视力障碍人士来阅读的话,文档结构和内容也不会很清晰。而HTML5新标签带来的新的布局则是下面这种情况:(简约版)

    相关的HTML代码是:

    <body>
      <header>...</header>
      <nav>...</nav>
      <article>
       <section>...</section>
      </article>
      <aside>...</aside>
      <footer>...</footer>
     </body>

     

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

    ●article:<article> 标签规定独立的自包含内容。

        一篇文章应有其自身的意义,应该有可能独立于站点的其余部分对其进行分发。

        <article> 元素的潜在来源:论坛帖子、报纸文章、博客条目、用户评论。

    ●aside:<aside>标签表示article标签内容之外的、与article标签内容相关的辅助信息。

         <aside>的内容可用作文章的侧栏。

    ●header:<header> 标签定义文档的页眉(介绍信息)。

    ●hgroup:<hgroup> 标签用于对网页或区段(section)的标题元素(h1-h6)进行组合。

    ●footer:<footer>标签表示整个页面或页面中一个内容区块的脚注,一般来说,它包含创作者的姓名、创作日期以及创作者的联系信息。

        提示:<footer> 元素内的联系信息应该位于<address> 标签中。

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

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

    ●figcaption:<figcaption> 标签定义 figure元素的标题(caption)。

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

    新增的媒体元素:

    ●video:<video> 标签定义视频,比如电影片段或其他视频流。

    ●audio:<audio> 标签定义声音,比如音乐或其他音频流。

    ●enbed:<embed> 标签定义嵌入的内容,比如插件。

    新增的表单控件标签:

    ●email:必须输入email

    ●url:必须输入url地址

    ●number:必须输入数值

    ●range:必须输入一定范围内数值

    ●Date Pickers(日期选择器):拥有多个可供选取日期和时间的新输入类型:date-选取日、月、年  month-选取月、年  week-选取周和年  time-选取时间(小时和分钟)                datetime-选取时间、日、月、年(UTC时间)  datetime-local - 选取时间、日、月、年(本地时间)

    ●search:用于搜索域,域显示为常规的文本域。

    ●color:颜色选择器。

    新增的其它:

    ●mark:<mark> 标签定义带有记号的文本。请在需要突出显示文本时使用 <m> 标签。

    ●progress:<progress> 标签标示任务的进度(进程)。ep:<progress value="22" max="100"></progress> 

    ●ruby:<ruby> 标签定义 ruby 注释(中文注音或字符)。ruby 元素由一个或多个字符(需要一个解释/发音)和一个提供该信息的 rt 元素组成,还包括可选的 rp 元素,定义当浏览器不支持 "ruby" 元素时显示的内容。

    ●wbr:Word Break Opportunity (<wbr>) 规定在文本中的何处适合添加换行符。

    ●canvas:<canvas> 标签定义图形,比如图表和其他图像。

         <canvas> 标签只是图形容器,您必须使用脚本来绘制图形。

    ●details:<details> 标签用于描述文档或文档某个部分的细节。

         目前只有 Chrome 和 Safari 6 支持 <details> 标签。

    ●datalist:<datalist> 标签定义选项列表。请与 input 元素配合使用该元素,来定义 input 可能的值。

         datalist 及其选项不会被显示出来,它仅仅是合法的输入值列表。

         请使用 input 元素的 list 属性来绑定 datalist。

         所有主流浏览器都支持 <datalist> 标签,除了 Internet Explorer 和 Safari。

    ●keygen:<keygen> 标签规定用于表单的密钥对生成器字段。

          当提交表单时,私钥存储在本地,公钥发送到服务器。

    ●output:<output> 标签定义不同类型的输出,比如脚本的输出。

    HTML5被删除的元素:

    ●能被css代替的标签:basefont、big、center、font、s、strike、tt、u。这些标签纯粹是为画面展示服务的,HTML5中提倡把画面展示性功能放在css中统一编辑。

    ●不再使用frame框架,HTML5不再支持,只支持iframe框架。

    ●只有部分浏览器支持的标签:applet、bgsound、blink、marquee等标签。

    ●其它被废除的标签:废除rb,使用ruby替代;

               废除acronym使用abbr替代;

               废除dir使用ul替代;

               废除isindex使用form与input相结合的方式替代;

               废除listing使用pre替代;

               废除xmp使用code替代;

               废除nextid使用guids;

               废除plaintex使用“text/plian”(无格式正文)MIME类型替代。

    HTML5全局属性

    ●data-*:使用 data-* 属性来嵌入自定义数据。

         data-* 属性用于存储页面或应用程序的私有自定义数据。

         data-* 属性赋予我们在所有 HTML 元素上嵌入自定义 data 属性的能力。

         存储的(自定义)数据能够被页面的 JavaScript 中利用,以创建更好的用户体验(不进行 Ajax 调用或服务器端数据库查询)。

         属性名不应该包含任何大写字母,并且在前缀 "data-" 之后必须有至少一个字符,属性值可以是任意字符串。

    ●hidden:如果设置该属性,它规定元素仍未或不再相关。浏览器不应显示已规定 hidden 属性的元素。hidden 属性也可用于防止用户查看元素,直到匹配某些条件(比如选择了某个复选框)。然后,JavaScript 可以删除 hidden 属性,以使此元素可见。

    ●spellcheck:spellcheck 属性规定是否对元素进行拼写和语法检查。

          可以对以下内容进行拼写检查:input 元素中的文本值(非密码)、<textarea> 元素中的文本、可编辑元素中的文本。

    ●tabindex:tabindex 属性规定元素的 tab 键控制次序(当 tab 键用于导航时)。

          以下元素支持 tabindex 属性:<a>, <area>, <button>, <input>, <object>, <select> 以及 <textarea>。

    ●contenteditable:contenteditable 属性规定元素内容是否可编辑。

             如果元素未设置 contenteditable 属性,那么元素会从其父元素继承该属性。

    IE(IE6/IE7/IE8)不兼容HTML5标签的解决方法

    原理:创建对应名称的Html5标签,这样IE浏览器就能认识H5新标签了。

    方法一:Coding JavaScript (必须放在head中)

     1 <!--[if lt IE9]> 
     2 <script> 
     3   (function() {
     4    if (! 
     5    /*@cc_on!@*/
     6    0) return;
     7    var e = "abbr, article, aside, audio, canvas, datalist, details, dialog, eventsource, figure, footer, header, hgroup, mark, menu, meter, nav, output, progress, section, time, video".split(', ');
     8    var i= e.length;
     9    while (i--){
    10      document.createElement(e[i])
    11    } 
    12 })() 
    13 </script>
    14 <![endif]-->

    方法二:使用Google的html5shiv包(推荐)

    <!--[if lt IE9]> 
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->

    由于国内google的服务器访问卡,建议调用国内的cdn

    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
    <![endif]-->

    但是不管使用以上哪种方法,都要初始化新标签的CSS.因为HTML5在默认情况下表现为内联元素,对这些元素进行布局我们需要利用CSS手工把它们转为块状元素方便布局

     /*html5*/ article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}  

    但是如果ie6/7/8 禁用脚本的用户,那么就变成了无样式的"白板"网页,我们该怎么解决呢?

    我们可以参照facebook的做法,即引导用户进入带有noscript标识的 “/?_fb_noscript=1”页面,用 html4 标签替换 html5 标签,这要比为了保持兼容性而写大量 hack 的做法更轻便一些。

    <!--[if lte IE 8]> 
    <noscript>
       <style>.html5-wrappers{display:none!important;}</style>
       <div class="ie-noscript-warning">您的浏览器禁用了脚本,请<a href="">查看这里</a>来启用脚本!或者<a href="/?noscript=1">继续访问</a>.
       </div>
    </noscript>
    <![endif]-->

    这样可以引导用户开启脚本,或者直接跳转到HTML4标签设计的界面。

  • 相关阅读:
    从进入这里,没有写过什么文章,现在开始吧
    24)
    23)
    22)
    21)
    20)
    19)
    18)
    17)
    16)
  • 原文地址:https://www.cnblogs.com/Vayne-N/p/6806228.html
Copyright © 2011-2022 走看看