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
言
曾幾何時(shí),前端的頁面布局一直采用div,但是div本身并沒有實(shí)際的意義,它只是定義了一個(gè)區(qū)域,而且這個(gè)區(qū)域是做什么的瀏覽器并不知道,不利于頁面的SEO優(yōu)化。
因此HTML5中新增的語義化標(biāo)簽就很好的解決了這個(gè)問題,當(dāng)然它還有其他一些好處,接下來我們就一起來看看吧。
HTML5
語義化標(biāo)簽的優(yōu)點(diǎn)
即使在沒有CSS的支持下,瀏覽器依然能呈現(xiàn)出良好的內(nèi)容結(jié)構(gòu)。
有利于SEO,語義化的標(biāo)簽更有利于爬蟲去解析更多有效信息。
跨設(shè)備體驗(yàn),不同設(shè)備都支持語義化標(biāo)簽,那么即使在不同設(shè)備下依然可以有無縫體驗(yàn)。
便于代碼開發(fā)和維護(hù),語義化可以增加代碼的可讀性,讓團(tuán)隊(duì)成員可以更好理解彼此的代碼意圖。
HTML5新增的語義化標(biāo)簽
那么在HTML5中新增了哪些利于頁面布局的HTML5標(biāo)簽?zāi)兀?/p>
我們先通過以下這張圖來看看。
HTML5新增語義化標(biāo)簽
header標(biāo)簽
header標(biāo)簽表示頁面或一個(gè)區(qū)域(section)的頁眉部分,通常在里面包含h1-h6標(biāo)簽來使用。
我們直接通過代碼來看看在瀏覽器上的效果。
header標(biāo)簽效果
footer標(biāo)簽
footer標(biāo)簽和header標(biāo)簽類似,表示頁面或一個(gè)區(qū)域(section)的頁腳部分,通常會(huì)將網(wǎng)站的證書,許可,版權(quán)協(xié)議等內(nèi)容放在這塊。
footer標(biāo)簽
hgroup標(biāo)簽
hgroup標(biāo)簽一般用于h1-h6標(biāo)簽的組合,比如主標(biāo)題,副標(biāo)題,三級(jí)標(biāo)題的組合情況。
我們通過以下代碼段來看看其代碼組織形式。
hgroup標(biāo)簽
需要注意的一點(diǎn)是,如果需要使用hgroup標(biāo)簽則保證在hgroup標(biāo)簽里至少有兩個(gè)h標(biāo)簽,如果只有一個(gè)h標(biāo)簽,則應(yīng)該去掉hgroup標(biāo)簽。
nav標(biāo)簽
nav標(biāo)簽主要用于定義頁面的導(dǎo)航部分,例如頁面或者section中的側(cè)邊目錄欄。
其使用方式如下代碼段所示。
nav標(biāo)簽
aside標(biāo)簽
aside標(biāo)簽一般會(huì)指定網(wǎng)頁的相關(guān)內(nèi)容,友情鏈接等附注性的東西,類似于廣告也可以使用aside標(biāo)簽。
main標(biāo)簽
main標(biāo)簽定義一個(gè)頁面的主要內(nèi)容,在一個(gè)頁面中只能使用一次。
article標(biāo)簽
article標(biāo)簽表示的是一個(gè)獨(dú)立完整的內(nèi)容區(qū)域,比如一張報(bào)紙的某個(gè)獨(dú)立版塊。
在article標(biāo)簽內(nèi)部可以包含其他語義化標(biāo)簽,其基本使用如下所示。
article標(biāo)簽
section標(biāo)簽
section標(biāo)簽表示的是文檔中內(nèi)容的分節(jié)或分段,上述的article,nav或者aside其實(shí)都可以看做特殊的section標(biāo)簽,如果能用article,nav,aside標(biāo)簽,最好不要用section標(biāo)簽。
section標(biāo)簽與與article標(biāo)簽可以互相嵌套,需要視具體情況而定。
結(jié)束語
如果你的布局還是只有div,那么看完了今天這篇文章后完全可以嘗試下新的HTML5標(biāo)簽噢。
感興趣的同學(xué)可以加下我自己創(chuàng)建的Q群,大家相互學(xué)習(xí)交流,我也會(huì)盡力維護(hù)好群環(huán)境,群號(hào)如下所示。
號(hào)碼
增的HTML5結(jié)構(gòu)標(biāo)簽
結(jié)構(gòu)標(biāo)簽:(塊級(jí)元素) 有意義的div
標(biāo)簽 | 含義 |
---|---|
<article> | 定義獨(dú)立的、完整的相關(guān)內(nèi)容塊 |
<header> | 定義一個(gè)頁面或一個(gè)區(qū)域的頭部內(nèi)容 |
<nav> | 定義導(dǎo)航類輔助內(nèi)容 |
<section> | 定義一塊區(qū)域 |
<aside> | 定義頁面非正式內(nèi)容部分的側(cè)邊欄 |
<hgroup> | 定義h1~h6標(biāo)題組合 |
<figure> | 定義元素的組合,多用于圖片與圖片描述組合 |
<figcaption> | 定義 figure元素的描述 |
<footer> | 定義一個(gè)頁面或一個(gè)區(qū)域的底部內(nèi)容 |
傳統(tǒng)div+css布局方式
HTML5布局方式
div+css布局方式和HTML5布局方式的區(qū)別、意義
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ù)存儲(chǔ)以及多線程等。
可以通過html5test.com網(wǎng)站,測試HTML5各標(biāo)簽在各類瀏覽器中支持程度。
html5test.com
PC瀏覽器各版本支持HTML5考量
移動(dòng)瀏覽器各版本支持HTML5考量
對于IE6、7、8來講,支持極少部分的HTML5新標(biāo)簽,IE9也是部分支持。
在低版本瀏覽器中兼容使用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)簽的不識(shí)別,并導(dǎo)致CSS不起作用的問題。
<head>
<meta charset="utf-8">
<title>渲染 HTML5</title>
<!-- 專門針對IE瀏覽器的語句,且只能被IE9識(shí)別,其他瀏覽器將以下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外都可識(shí)別 <!--<![endif]-->
<!--[if IE]> 所有的IE可識(shí)別 <![endif]-->
<!--[if IE 6]> 僅IE6可識(shí)別 <![endif]-->
<!--[if lt IE 6]> IE6以及IE6以下版本可識(shí)別 <![endif]-->
<!--[if gte IE 6]> IE6以及IE6以上版本可識(shí)別 <![endif]-->
<!--[if IE 9]> 僅IE9可識(shí)別 <![endif]-->
(1)語義化標(biāo)簽
相對于無具體含義的div和span標(biāo)簽,語義化標(biāo)簽的優(yōu)點(diǎn)是方便搜索引擎能識(shí)別頁面結(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è)置自動(dòng)播放,
對于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瀏覽器將音頻、視頻自動(dòng)播放給默認(rèn)禁止了,視頻可以通過添加靜音播放折中解決,但是音頻單獨(dú)通過html標(biāo)簽和屬性是不能解決的,需要js配合使用。
(3)智能表單標(biāo)簽
1)新增input類型
tel:限制輸入電話號(hào)碼,目前只有 Safari 8 支持 tel 類型;
email:在提交時(shí)驗(yàn)證輸入內(nèi)容是否符合郵箱格式;
date:限制輸入的內(nèi)容為日期,瀏覽器會(huì)彈出日期選擇器;
time:限制輸入的內(nèi)容為時(shí)間,瀏覽器會(huì)彈出日期選擇器;
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。
*請認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。