首頁  >  文章  >  web前端  >  html5基礎教學常用技巧整理

html5基礎教學常用技巧整理

PHPz
PHPz原創
2016-05-16 15:48:541355瀏覽

HTML5的一些新增屬性和功能是讓程式碼變得更簡潔,這總歸是一件好事,應該值得我們推崇,希望這篇HTML5的文章對你有一些幫助

1. 新的Doctype聲明 

XHTML的聲明太長了,我相信很少有前端開發人員能手寫出這個Doctype聲明。 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

HTML5的Doctype聲明很短,看到這個聲明相信你馬上就能記住,不用浪費腦細胞去記那長的有點變態的XHTML的Doctype聲明了。

<!DOCTYPE html>

HTML5的簡短的DOCTYPE聲明是讓Firefox、Chrome等現代瀏覽器和IE6/7/8等瀏覽器都進入(準)標準模式,你可能會奇怪IE6/ 7居然也可以支援HTML5 Doctype,事實上,IE是只要doctype符合這種格式,都會進入標準模式。

2.

標籤
 

<img alt="About image" src="path/to/image"> 
<h6>Image of Mars.</h6>

看看下面一段簡單的程式碼: 

遺憾的是,這裡的h6標籤和img標籤好像沒有什麼關係,語意不夠明確。 HTML5意識到了這一點,於是就採用了

標 簽。當
結合
標籤的使用,可以讓h6標籤和img標籤組合起來,程式碼就更具語意化了。

<figure> 
<img alt="About image" src="path/to/image"> 
<figcaption> 
<h6>This is an image of something interesting. </h6> 
</figcaption> 
</figure>

3. 重新定義 

不久前,我使用了標籤來建立與logo相關的副標題。但是在HTML5中重新定義了標籤,使之更能表現語義化,在的字號都會變小,想想如果這個標籤用於網站的底部的版權信息還是個不錯的做法。

4. 去掉了Javascript和CSS標籤的type屬性 

通常你會在和<script>加上type屬性: <br/></script>

<link rel=stylesheet type=text/css href="path/to/stylesheet.css"> 
<script type=text/javascript src="path/to/script.js"></script>

在HTML5中,不再需要type屬性了,因為這顯得有點多餘,去掉之後可以讓程式碼更為簡潔。

<link href="path/to/stylesheet.css"> 
<script src="path/to/script.js"></script>

5. 是否使用雙引號 

這有點讓人糾結,HTML5並不是XTHML,你可以省去標籤中的雙引號。相信大多數同志也包括我都習慣了加上雙引號,因為這讓代碼看起來會更標準。不過,這可以根據你的個人喜好來確定是到底要不要雙引號。

<h6 id=someId class=myClass> Start the reactor.</h6>

6. 使網頁內容可以編輯 

 

<h2>To-D0 List</h2> 
<ul contenteditable> 
  <li>Break mechanical cab driver</li> 
  <li>Drive to abandoned factory</li> 
  <li>Watc</li> 
</ul>

7. 電子郵件輸入框

HMTL5中新增了一個輸入框的電子郵件屬性,可以檢測輸入的內容是否符合電子郵件的書寫格式,功能越來越強大了吧,在HTML5之前只能依賴JS來偵測。雖然內建的表單驗證功能很快就會成為現實,但這個屬性很多瀏覽器都還不支持,只會當作普通的文字輸入框來處理。 

 

<FORM method=get> 
<LABEL for=email>Email:</LABEL> 
<INPUT id=email type=email name=email> 
<BUTTON type=submit> Submit Form </BUTTON> 
</FORM>

到目前為止,包括現代瀏覽器在內都不支援該屬性,所以這個屬性暫時還是靠不住的。

8. 佔位符 

文字方塊中的佔位符(看看本博的搜尋框效果)有利於提升使用者體驗,之前,我們只能依賴JS來實現佔位符的效果,在HTML5中新增了佔位符屬性placeholder,關於此屬性的詳細介紹你可以點擊這裡:HTML5表單placeholder屬性。

<INPUT type=email name=email placeholder="doug@givethesepeopleair.com">

同樣,目前的主流現代瀏覽器對該屬性的支援不大好,暫時只有Chrome和Safari支援該屬性,Firefox和Opera不支援該屬性。   

 

9. 本地儲存 

HTML5的本地儲存功能記「可讓使用現代瀏覽器」住」我們輸入的,就算瀏覽器關閉和刷新也不會受影響。雖然這個功能有些瀏覽器不支持,但是IE8, Safari 4, 還有 Firefox 3.5還是支援這個功能的,你可以測試下。

 

10. 較語意的header和footer 

下面的程式碼在HTML5中將不存在

下面的程式碼在HTML5中將不存在
<p id=header> 
... 
</p> 
<p id=footer> 
... 
</p


通常我們都會為header和footer定義一個p,然後再增加一個id,但在HTML5中可以直接使用

標籤,所以可以將上面的程式碼改寫成:

<HEADER> 
... 
</HEADER> 
<FOOTER> 
... 
</FOOTER>

要注意不要将这两个标签和网站的头部和页脚混淆起来,它们只是代表它们的容器。 

11. IE对HTML5的支持 

IE浏览器目前对HTML5的支持并不好,也是阻碍HTML5的更快普及的一大绊脚石,不过,IE9对HTML5的支持度还是很不错的。 

IE把HTML5新增的标签都解析成内联元素,而实际上它们是块级元素,所以有必要为它们定义一个样式: 

header, footer, article, section, nav, menu, hgroup { 
display: block; 
}

尽管如此,IE还是不能解析这些新增的HTML5标签,这个时候就需要借助Javascript来解决这个问题: 

document.createElement("article"); 
document.createElement("footer"); 
document.createElement("header"); 
document.createElement("hgroup"); 
document.createElement("nav"); 
document.createElement("menu");

你可以借助这一段Javascript代码来修复IE更好的解析HTML5

<SCRIPT mce_src="http://html5shim.googlecode.com/svn/trunk/html5.js"></SCRIPT> 
_fcksavedurl=""http://html5shim.googlecode.com/svn/trunk/html5.js"></SCRIPT>" 
_fcksavedurl=""http://html5shim.googlecode.com/svn/trunk/html5.js"></SCRIPT>"

12. 标题群( hgroup) 

这个类似于第二点技巧。如果用h1和h2标签分别表示网站的名称和副标题,但这会让两个本义上密切相关的标题并没有关联起来。这个时候可以使用d8eccd9ed644b68a6460a2bb84548c82标签将它们组合起来,这样代码会更有语义。 

<HEADER> 
<HGROUP> 
<H1> Recall Fan Page </H1> 
<H2> Only for people who want the memory of a lifetime. </H2> 
</HGROUP> 
</HEADER>

13. 必填项属性 

前端人员肯定做过不少表单验证的项目,其中很重要的一点就是有些输入框的内容是必须填写的,这里就需要使用Javascript来检查。在 HTML5中,新增了一个“必须填写”的属性:required。required属性有两种使用方法,第二种方法显得更有结构性,而第一种更简洁。 

<input type="text" name="someInput" required> 
<input type="text" name="someInput" required="required">

有了这个属性,使表单的提交验证变得更简单了,看看下面简单的例子: 

<from method=post> 
<label for=someInput> Your Name: </label> 
<input id=someInput type=text name=someInput placeholder="Douglas Quaid" required="required"> 
<button type=submit>Go</button> 
</form>

 

如果输入框为空,表单将无法提交成功。 

14. 自动获取焦点 

同样的,HTML5也不再需要Javascript来解决输入框的自动获取焦点,如果某个输入框应当被选择或是获取到输入焦点,HTML5新增了自动获取焦点属性autofocus:

<INPUT type=text name=someInput placeholder="Douglas Quaid" required="required" autofocus="autofocus">

autofocus也同样可以写成”autofocus=autofocus”,这样看起来标准些,这个根据自己的个人喜好而定。  

15. 音频播放的支持 

HTML5中提供了b97864c2e0ef2353a16c4d64c7734e92标签,解决了以往必须依靠第三方插件才能播放音频文件的问题。目前为止,还只有少数的最新浏览器支持该标签。

<audio controls="controls" autoplay="autoplay"> 
<source src="file.ogg" _fcksavedurl=""file.ogg"" _fcksavedurl=""file.ogg"" /> 
<source src="file.mp3" /> 
<a href="file.mp3">Download this file.</a> 
</audio>

为什么会有两种格式的音频文件?因为Firefox和Webkit浏览器所支持的格式存在差异,Firefox只能支持.ogg文件,而 Webkit只支持.mp3的文件,解决的办法就是创建两个版本的音频文件,这样就可以兼容Firefox和Webkit的浏览器了,需要注意的是IE不 支持该标签。 

16. 视频播放的支持 

和b97864c2e0ef2353a16c4d64c7734e92标签一样,HTML5也提供了39000f942b2545a5315c57fa3276f220标签对播放视频文件的支持。YouTube也宣布了一项新的 HTML5的视频嵌入。不过有点遗憾,HTML5的规范并没有指定特定的视频播放器,而是让浏览器自己来决定。这就造成了个浏览器的兼容问题,虽然 Safari和IE9都支持还H.264格式的视频( Flash 播放器可以可以播放),Firefox和Opera则支持开源的Theora和Vorbis格式。因此,当显示HTML5视频的时候,也得准备2种格式。

<video controls preload> 
<source src="cohagenPhoneCall.ogv" type="video/ogg; codecs=&#39;vorbis, theora&#39;" /> 
<source src="cohagenPhoneCall.mp4" type="video/mp4; &#39;codecs=&#39;avc1.42E01E, mp4a.40.2&#39;" /> 
<p> 
Your browser is old. 
<a href="cohagenPhoneCall.mp4"> 
Download this video instead. 
</a> 
</p> 
... 
</video>

需要注意的是,type属性虽然可以省略掉,但是如果加上的话,浏览器就可以更快的准确的解析该视频文件。并不是所有的浏览器都支持HTML5的视频,所以得做好使用Flash版本来代替,当然,这个决定权在于你。 

17. 预加载视频 

预加载属性:preload,首先要确定是否需要预先加载视频,假如,访客在访问一个有很多视频展示的页面,那么就有必要预先加载一段视频,这样可 以节省访客的等待时间,提高用户体验。你可以给39000f942b2545a5315c57fa3276f220标签添加一个preload属性来实现预先加载的功能。

<video preload="preload"> 
... 
</video>

18. 显示控件 

显示控件属性可以给视频添加一个播放暂停的控件,需要注意的是每个浏览器显示的效果可能会有些差异。 

<video controls="controls" preload="preload"> 
... 
</video>

19. 使用正则表达式 

在HTML5中,我们可以直接使用正则表达式。 

<form method=post action=""> 
<label for=username>Create a Username: </label> 
<input id=username type=text name=username placeholder="4 <> 10" required="required" autofocus="autofocus" pattern="[A-Za-z]{4,10}"> 
<button type=submit>Go </button> 
</form>

20. 检测浏览器对HTML5属性的支持 

由于各浏览器对HTML5属性的支持度不同,这就造成了一些兼容问题。但是可以使用方法来检测该浏览器是否支持这些属性,上例中的代码如果要检测pattern属性是否被浏览器识别,可以使用Javascript代码来检测。

alert( &#39;pattern&#39; in document.createElement(&#39;input&#39;) ) // boolean;

其实这是确定浏览器兼容常用的方法,jQuery库就经常使用这种方法。上面的代码中创建了一个input标签,并检测pattern属性是否被浏览器支持,如果能支持的话,浏览器就支持这个功能,否则就不支持。

<script> 
if (!&#39;pattern&#39; in document.createElement(&#39;input&#39;) ) { 
// do client/server side validation 
} 
</script>

21. Mark标签 

f920514e6447cf1d171079d1371f007f标签用于高亮显示那些需要在视觉上向用户突出其重要性的文字,包裹在此标签里的字符串必须与用户当前的行为相关。 

例如,如 果我在一些博客中搜索“Open your Mind” ,我可以使用在f920514e6447cf1d171079d1371f007f标签里使用JavaScript来包裹每一次动作。 

<h3> Search Results </h3> 
<h6> They were interrupted, just after Quato said, <mark>"Open your Mind"</mark>. </h6>

22. 该如何正确的使用p标签 

有些人可能会有疑问,有了1aa9e5d373740b65a0cc8f0a02150c53和c37f8231a37e88427e62669260f0074d等这些标签,e388a4556c0f65e1904146cc1a846bee标签在HTML5中还有 用吗?答案是肯定的,比如你想创建一个能包裹特殊内容的容器自由灵活的e388a4556c0f65e1904146cc1a846bee肯定是首选,而你要创建一篇文章或者一个导航菜单,建议你使 用更有语义的23c3de37f2f9ebcb477c4a90aac6fffd和c787b9a589a3ece771e842a6176cf8e9标签。 

很多人认为HTML5可能还是很遥远的事,所以直接无视,其实不然,现在很多网站都已经开始使用HTML5了,事实上,HTML5的一些新增属性和功能是让代码变得更简洁,这总归是一件好事,应该值得我们推崇。最后感谢你阅读了这篇HTML5的文章,希望这篇文章对你有一些帮助。

以上就是本章的全部内容,更多相关教程请访问Html5视频教程

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn