整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          解決舊版IE(678)不兼容HTML5標(biāo)簽的方法

          用語義化代碼更直觀,而且更方便SEO優(yōu)化。但是此HTML5新標(biāo)簽在IE6/IE7/IE8上并不能識別,需要進(jìn)行JavaScript處理。以下就介紹幾種方式。

          方式一:Coding JavaScript

          <!--[if lt IE 9]>
          <script>
             (function() {
               if (! 
               /*@cc_on!@*/
               0) return;
               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(', ');
               var i= e.length;
               while (i--){
                   document.createElement(e[i])
               } 
            })() 
          </script>
          <![endif]-->

          如果是IE9以下的IE瀏覽器將創(chuàng)建HTML5標(biāo)簽, 這樣非IE瀏覽器就會忽視這段代碼,也就不會有無謂的http請求了。

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

          <!--[if lt IE 9]>
            <script type="text/javascript" src="http://cdn.bootcss.com/html5shiv/r29/html5.min.js"></script>
          <![endif]-->

          上面這段代碼僅會在IE瀏覽器下運(yùn)行,還有一點(diǎn)需要注意,在頁面中調(diào)用html5.js文件必須添加在頁面的head元素內(nèi),因?yàn)镮E瀏覽器必須在元素解析前知道這個(gè)元素,所以這個(gè)js文件不能在頁面底部調(diào)用。

          不管使用以上哪種方法,都要初始化新標(biāo)簽的CSS。因?yàn)镠TML5在默認(rèn)情況下表現(xiàn)為內(nèi)聯(lián)元素,對這些元素進(jìn)行布局我們需要利用CSS手工把它們轉(zhuǎn)為塊狀元素方便布局

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

          如果IE6/7/8 禁用腳本的用戶,那么就變成了無樣式的"白板"網(wǎng)頁,我們該怎么解決呢?

          我們可以參照facebook的做法,即引導(dǎo)用戶進(jìn)入帶有noscript標(biāo)識的 “/?_fb_noscript=1”頁面,用 html4 標(biāo)簽替換 html5 標(biāo)簽,這要比為了保持兼容性而寫大量 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">繼續(xù)訪問</a>.
            </div>
          </noscript>
          <![endif]-->

          這樣可以引導(dǎo)用戶開啟腳本,或者直接跳轉(zhuǎn)到HTML4標(biāo)簽設(shè)計(jì)的界面。

          版本瀏覽器不識別新的語義化標(biāo)簽。

          上面這些標(biāo)簽, 都是塊級元素, 沒有任何默認(rèn)樣式, 容器級標(biāo)簽, 可以包裹任何東西, 在語義上都比div大, 它們能包裹div, 但是div不能包裹它們。

          新的提綱標(biāo)簽, IE9開始兼容, IE8還是不能用這些標(biāo)簽, 移動端中可以正常使用, 因?yàn)槭謾C(jī)沒有IE。

          解決方案:利用html5shiv.js

          下載地址: https://www.bootcdn.cn/html5shiv/

          .HTML5是什么

          HTML是web開發(fā)中三大規(guī)范之一,可以參考:Web前端開發(fā)-HTML入門干貨 。

          HTML產(chǎn)生于1990年,1997年的HTML4.0成為互聯(lián)網(wǎng)標(biāo)準(zhǔn)并廣泛應(yīng)用,HTML5是在HTML4.01(1999年發(fā)布)的基礎(chǔ)上發(fā)展而來,在2008年正式發(fā)布,在2012年形成了穩(wěn)定版本。

          其實(shí)在HTML4.01之后,W3C組織除了HTML5之外,為了嚴(yán)格html編寫規(guī)范,發(fā)布了XHTML。經(jīng)過了跌宕起伏的分歧、融合之路,本來預(yù)計(jì)要逐步被XHTML替代的HTML5,最終成了W3C組織確認(rèn)的html規(guī)范。

          在HTML5規(guī)范中添加了很多新元素及功能,比如: 更好的頁面結(jié)構(gòu)(語義化標(biāo)簽)、圖形的繪制(畫布)、多媒體(音頻、視頻)內(nèi)容、智能表單、地理位置、數(shù)據(jù)存儲以及多線程等。

          2.支持HTML5的瀏覽器版本

          可以通過html5test.com網(wǎng)站,測試HTML5各標(biāo)簽在各類瀏覽器中支持程度。

          html5test.com

          PC瀏覽器各版本支持HTML5考量

          移動瀏覽器各版本支持HTML5考量

          對于IE6、7、8來講,支持極少部分的HTML5新標(biāo)簽,IE9也是部分支持。

          3.如何解決低版本瀏覽器兼容HTML5標(biāo)簽

          在低版本瀏覽器中兼容使用HTML5標(biāo)簽,有兩種方案,一:自定義標(biāo)簽;二:使用第三方j(luò)s插件

          (1)自定義標(biāo)簽

          可以利用添加自定義標(biāo)簽的方式為IE 瀏覽器添加 HTML5 元素。

          <script>
          //可以使用自定義標(biāo)簽
          document.createElement("header");
          document.createElement("article");
          document.createElement("aside");
          document.createElement("section");
          document.createElement("footer");
          </script>

          但是Internet Explorer 8 及更早 IE 版本的瀏覽器不支持以上的方式,所以采用以下方式。

          (2)利用第三方j(luò)s插件

          html5shiv.js是第三方插件,能夠解決IE9以下瀏覽器對html5新增標(biāo)簽的不識別,并導(dǎo)致CSS不起作用的問題。

          <head>
          <meta charset="utf-8">
          <title>渲染 HTML5</title>
          <!-- 專門針對IE瀏覽器的語句,且只能被IE9識別,其他瀏覽器將以下if endif語句認(rèn)為是注釋 -->
           <!--[if lt IE 9]>
           <script src="http://apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
           <![endif]-->
          </head>

          <!--[if !IE]><!--> 除IE外都可識別 <!--<![endif]-->

          <!--[if IE]> 所有的IE可識別 <![endif]-->

          <!--[if IE 6]> 僅IE6可識別 <![endif]-->

          <!--[if lt IE 6]> IE6以及IE6以下版本可識別 <![endif]-->

          <!--[if gte IE 6]> IE6以及IE6以上版本可識別 <![endif]-->

          <!--[if IE 9]> 僅IE9可識別 <![endif]-->

          4.新增常用的HTML5標(biāo)簽

          (1)語義化標(biāo)簽

          相對于無具體含義的div和span標(biāo)簽,語義化標(biāo)簽的優(yōu)點(diǎn)是方便搜索引擎能識別頁面結(jié)構(gòu),有利于SEO。

          header:該標(biāo)簽定義了頁面的頭部區(qū)域;

          nav:該標(biāo)簽定義了頁面的導(dǎo)航鏈接區(qū)域;

          footer:該標(biāo)簽定義了頁面或section的頁腳;

          section:該標(biāo)簽定義了頁面區(qū)域;

          article:該標(biāo)簽定義了頁面的內(nèi)容區(qū)域;

          (2)多媒體標(biāo)簽

          1)視頻標(biāo)簽

          video:用來定義視頻內(nèi)容,支持多種視頻格式,包括.mp4、.ogg、.webm等,最常用的是.mp4。

           <body>
           <!-- src屬性設(shè)置視頻源,
          width、height設(shè)置視頻大小,單位是像素,
          autoplay屬性設(shè)置自動播放,
          對于google瀏覽器需要添加muted屬性,表示靜音播放,
          controls屬性設(shè)置播放控件,包括播放、暫停等,
          loop屬性設(shè)置視頻循環(huán)播放, 
          poster屬性設(shè)置視頻封面,
          -->
          <video
          src="media/xiaomitv.mp4"
          width="300"
          height="100"
          autoplay="autoplay"
          muted="muted"
          controls="controls"
          loop="loop"
          poster="images/a.jpg"
          ></video>
          </body>

          還可以采用如下代碼,兼容多種格式的視頻文件

          <video width="320" height="240" controls="controls">
          <source src="movie.mp4" type="video/mp4" />
          <source src="movie.ogg" type="video/ogg" />
          <source src="movie.webm" type="video/webm" />
          Your browser does not support the video tag.
          </video>

          2)音頻標(biāo)簽

          audio:用來定義音頻內(nèi)容,支持多種音頻格式,包括.mp3、.wav、.ogg等,最常用的是.mp3。

          音頻標(biāo)簽的用法和視頻標(biāo)簽的基本一樣,屬性及屬性值含義也基本一樣。

          Google的chrome瀏覽器將音頻、視頻自動播放給默認(rèn)禁止了,視頻可以通過添加靜音播放折中解決,但是音頻單獨(dú)通過html標(biāo)簽和屬性是不能解決的,需要js配合使用。

          (3)智能表單標(biāo)簽

          1)新增input類型

          tel:限制輸入電話號碼,目前只有 Safari 8 支持 tel 類型;

          email:在提交時(shí)驗(yàn)證輸入內(nèi)容是否符合郵箱格式;

          date:限制輸入的內(nèi)容為日期,瀏覽器會彈出日期選擇器;

          time:限制輸入的內(nèi)容為時(shí)間,瀏覽器會彈出日期選擇器;

          number:限制輸入的內(nèi)容僅為數(shù)字;

          url:在提交時(shí)驗(yàn)證輸入內(nèi)容是否符合url格式;

          <form action="">
          <ul>
          <li>搜索:<input type="search" name="" id="" /></li>
           <li>電話:<input type="tel" /></li>
           <li>郵箱:<input type="email" /></li>
          <li>日期:<input type="date" /></li>
          <li>時(shí)間:<input type="time" /></li>
          <li>數(shù)量:<input type="number" min="1" max="5"/></li>
          <li>網(wǎng)址:<input type="url" /></li>
          <li>附件:<input type="file" /></li>
          <li><input type="submit" /></li>
          </ul>
          </form>


          2)新增input的屬性

          min和max屬性可以限制數(shù)字的最值,可以限制日期、時(shí)間類型的最值;其屬性值為具體內(nèi)容。

          required屬性表示必填項(xiàng);其屬性值為required。

          placeholder屬性表示提示信息,其屬性值為提示信息。

          multiple屬性表示input類型為file時(shí),可以文件多選;其屬性值為multiple。

          autocomplete屬性表示是否顯示之前提及過的文本信息;其屬性值為on或者off。


          主站蜘蛛池模板: 国产成人av一区二区三区不卡| 欧美日韩综合一区二区三区| 亚洲色精品三区二区一区| 国产福利电影一区二区三区| 精品熟人妻一区二区三区四区不卡| 一区二区三区杨幂在线观看| 日本精品一区二区在线播放| 性色AV一区二区三区天美传媒| 亚洲AV无码一区二区二三区入口| 亚洲一区二区三区免费| 香蕉久久AⅤ一区二区三区 | 无码日韩人妻AV一区免费l| 欧美一区内射最近更新| 欧美一区内射最近更新| 性色av闺蜜一区二区三区| 97久久精品无码一区二区| 亚洲一区在线免费观看| 久久精品一区二区三区AV| 中文字幕在线一区二区在线| 一区二区三区观看免费中文视频在线播放| 中文字幕久久亚洲一区| 中文字幕精品一区二区精品| 亚洲人成人一区二区三区| 欧洲精品无码一区二区三区在线播放| 精品视频在线观看你懂的一区| 变态拳头交视频一区二区| 日本大香伊一区二区三区| 国产精华液一区二区区别大吗| 精品国产一区二区三区久久| 日韩一区二区在线观看视频| 日本片免费观看一区二区| 国产精品视频一区| 国产精品一区二区三区99| 国产福利视频一区二区| 人妻久久久一区二区三区| 亚洲欧美日韩一区二区三区| 国产一区二区三区内射高清| 黑人大战亚洲人精品一区| 久久无码AV一区二区三区| 国模吧一区二区三区精品视频| 痴汉中文字幕视频一区|