Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
用語義化代碼更直觀,而且更方便SEO優化。但是此HTML5新標簽在IE6/IE7/IE8上并不能識別,需要進行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瀏覽器將創建HTML5標簽, 這樣非IE瀏覽器就會忽視這段代碼,也就不會有無謂的http請求了。
<!--[if lt IE 9]>
<script type="text/javascript" src="http://cdn.bootcss.com/html5shiv/r29/html5.min.js"></script>
<![endif]-->
上面這段代碼僅會在IE瀏覽器下運行,還有一點需要注意,在頁面中調用html5.js文件必須添加在頁面的head元素內,因為IE瀏覽器必須在元素解析前知道這個元素,所以這個js文件不能在頁面底部調用。
不管使用以上哪種方法,都要初始化新標簽的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標簽設計的界面。
版本瀏覽器不識別新的語義化標簽。
上面這些標簽, 都是塊級元素, 沒有任何默認樣式, 容器級標簽, 可以包裹任何東西, 在語義上都比div大, 它們能包裹div, 但是div不能包裹它們。
新的提綱標簽, IE9開始兼容, IE8還是不能用這些標簽, 移動端中可以正常使用, 因為手機沒有IE。
解決方案:利用html5shiv.js
下載地址: https://www.bootcdn.cn/html5shiv/
HTML是web開發中三大規范之一,可以參考:Web前端開發-HTML入門干貨 。
HTML產生于1990年,1997年的HTML4.0成為互聯網標準并廣泛應用,HTML5是在HTML4.01(1999年發布)的基礎上發展而來,在2008年正式發布,在2012年形成了穩定版本。
其實在HTML4.01之后,W3C組織除了HTML5之外,為了嚴格html編寫規范,發布了XHTML。經過了跌宕起伏的分歧、融合之路,本來預計要逐步被XHTML替代的HTML5,最終成了W3C組織確認的html規范。
在HTML5規范中添加了很多新元素及功能,比如: 更好的頁面結構(語義化標簽)、圖形的繪制(畫布)、多媒體(音頻、視頻)內容、智能表單、地理位置、數據存儲以及多線程等。
可以通過html5test.com網站,測試HTML5各標簽在各類瀏覽器中支持程度。
html5test.com
PC瀏覽器各版本支持HTML5考量
移動瀏覽器各版本支持HTML5考量
對于IE6、7、8來講,支持極少部分的HTML5新標簽,IE9也是部分支持。
在低版本瀏覽器中兼容使用HTML5標簽,有兩種方案,一:自定義標簽;二:使用第三方js插件
(1)自定義標簽
可以利用添加自定義標簽的方式為IE 瀏覽器添加 HTML5 元素。
<script>
//可以使用自定義標簽
document.createElement("header");
document.createElement("article");
document.createElement("aside");
document.createElement("section");
document.createElement("footer");
</script>
但是Internet Explorer 8 及更早 IE 版本的瀏覽器不支持以上的方式,所以采用以下方式。
(2)利用第三方js插件
html5shiv.js是第三方插件,能夠解決IE9以下瀏覽器對html5新增標簽的不識別,并導致CSS不起作用的問題。
<head>
<meta charset="utf-8">
<title>渲染 HTML5</title>
<!-- 專門針對IE瀏覽器的語句,且只能被IE9識別,其他瀏覽器將以下if endif語句認為是注釋 -->
<!--[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]-->
(1)語義化標簽
相對于無具體含義的div和span標簽,語義化標簽的優點是方便搜索引擎能識別頁面結構,有利于SEO。
header:該標簽定義了頁面的頭部區域;
nav:該標簽定義了頁面的導航鏈接區域;
footer:該標簽定義了頁面或section的頁腳;
section:該標簽定義了頁面區域;
article:該標簽定義了頁面的內容區域;
(2)多媒體標簽
1)視頻標簽
video:用來定義視頻內容,支持多種視頻格式,包括.mp4、.ogg、.webm等,最常用的是.mp4。
<body>
<!-- src屬性設置視頻源,
width、height設置視頻大小,單位是像素,
autoplay屬性設置自動播放,
對于google瀏覽器需要添加muted屬性,表示靜音播放,
controls屬性設置播放控件,包括播放、暫停等,
loop屬性設置視頻循環播放,
poster屬性設置視頻封面,
-->
<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)音頻標簽
audio:用來定義音頻內容,支持多種音頻格式,包括.mp3、.wav、.ogg等,最常用的是.mp3。
音頻標簽的用法和視頻標簽的基本一樣,屬性及屬性值含義也基本一樣。
Google的chrome瀏覽器將音頻、視頻自動播放給默認禁止了,視頻可以通過添加靜音播放折中解決,但是音頻單獨通過html標簽和屬性是不能解決的,需要js配合使用。
(3)智能表單標簽
1)新增input類型
tel:限制輸入電話號碼,目前只有 Safari 8 支持 tel 類型;
email:在提交時驗證輸入內容是否符合郵箱格式;
date:限制輸入的內容為日期,瀏覽器會彈出日期選擇器;
time:限制輸入的內容為時間,瀏覽器會彈出日期選擇器;
number:限制輸入的內容僅為數字;
url:在提交時驗證輸入內容是否符合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>時間:<input type="time" /></li>
<li>數量:<input type="number" min="1" max="5"/></li>
<li>網址:<input type="url" /></li>
<li>附件:<input type="file" /></li>
<li><input type="submit" /></li>
</ul>
</form>
2)新增input的屬性
min和max屬性可以限制數字的最值,可以限制日期、時間類型的最值;其屬性值為具體內容。
required屬性表示必填項;其屬性值為required。
placeholder屬性表示提示信息,其屬性值為提示信息。
multiple屬性表示input類型為file時,可以文件多選;其屬性值為multiple。
autocomplete屬性表示是否顯示之前提及過的文本信息;其屬性值為on或者off。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。