22个HTML5的初级技巧


======================================================
注:本文源代码点此下载
======================================================

web技术的发展速度太快了,如果你不与时俱进,就会被淘汰。因此,为了应对即将到来的html5,本文总结了22个html5的初级技巧,希望能对你进一步学习好html5会有所帮助。

1. 新的doctype声明

xhtml的声明太长了,我相信很少会有前端开发人员能手写出这个doctype声明。

1

"-//w3c//dtd xhtml 1.0 transitional//en"

2

"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">

html5的doctype声明很短,看到这个声明相信你马上就能记住,不用浪费脑细胞去记那长的有点变态的xhtml的doctype声明了。

1

html5的简短的doctype声明是让firefox、chrome等现代浏览器和ie6/7/8等浏览器都进入(准)标准模式,你可能会奇怪ie6/7居然也可以支持html5 doctype,事实上,ie是只要doctype符合 这种格式,都会进入标准模式。

2. 标签

看看下面一段简单的代码:

1

"path/to/image" alt="about image">

2

image of mars.

遗憾的是,这里的h6标签和img标签好像没有什么关系,语义不够明确。html5意识到了这一点,于是就采用了标签。当结合标签的使用,可以让h6标签和img标签组合起来,代码就更具语义化了。

1

2

"path/to/image" alt="about image">

3

4

this is an image of something interesting.

5

6

3. 重新定义

不久前,我使用了标签来创建与logo相关的副标题。但是在html5中重新定义了标签,使之更能表现语义化,在的字号都会变小,想想如果这个标签用于网站的底部的版权信息还是个不错的做法。

4. 去掉了javascript和css标签的type属性

通常你会在和

在html5中,不再需要type属性了,因为这显得有点多余,去掉之后可以让代码更为简洁。

1

"path/to/stylesheet.css">

2

5. 是否使用双引号

这有点让人纠结,html5并不是xthml,你可以省去标签中的双引号。相信大多数同志也包括我都习惯了加上双引号,因为这让代码看起来会更标准。不过,这可以根据你的个人喜好来确定是到底要不要双引号。

1

class="myclass" id="someid"> start the reactor.

6. 使网页内容可以编辑

这是html5新增的一个功能,在标签中加上一个contenteditable属性,并且设置值为true,就可以直接在页面上编辑这个标签的内容,包括这个标签的子级标签的内容。有了这个属性,你可以利用这个属性完成很多事,比如在网页中编辑一个待办事项的清单。

1

"true">break mechanical cab driver

7. 电子邮件输入框

hmtl5中新增了一个输入框的电子邮件属性,可以检测输入的内容是否符合电子邮件的书写格式,功能越来越强大了吧,在html5之前只能依靠js来检测。虽然内置的表单验证功能很快就会成为现实,但这个属性很多浏览器都还不支持,只会当作普通的文本输入框来处理。

1

"get">

2

for="email">email:

3

"email" name="email" type="email">

4

submit form

5

到目前为止,包括现代浏览器在内都不支持该属性,所以这个属性暂时还是靠不住的。

8. 占位符

文本框中的占位符(看看本博的搜索框效果)有利于提升用户体验,之前,我们只能依靠js来实现占位符的效果,在html5中新增了占位符属性placeholder。

1

"email" type="email"placeholder="doug@givethesepeopleair.com">

同样,目前的主流现代浏览器对该属性的支持不大好,暂时只有chrome和safari支持该属性,firefox和opera不支持该属性。

9. 本地存储

html5的本地存储功能,可以让现代浏览器“记住”我们输入的,就算浏览器关闭和刷新也不会受影响。虽然这个功能有些浏览器不支持,但是ie8, safari 4, 还有 firefox 3.5还是支持这个功能的,你可以测试下。

10. 更有语义的header和footer

下面的代码在html5中将不复存在

1

"header">

2

...

3

4

"footer">

5

...

6

通常我们都会给header和footer定义一个div,然后再添加一个id,但是在html5中可以直接使用和标签,所以可以将上面的代码改写成:

1

2

...

3

4

5

...

6

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

11. ie对html5的支持

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

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

1

header, footer, article, section, nav, menu, hgroup {

2

display: block;

3

}

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

1

document.createelement("article");

2

document.createelement("footer");

3

document.createelement("header");

4

document.createelement("hgroup");

5

document.createelement("nav");

6

document.createelement("menu");

你可以借助这一段javascript代码来修复ie更好的解析html5

1

if ie]>

2

3

12. 标题群( hgroup)

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

1

2

3

recall fan page

4

only for people who want the memory of a lifetime.

5

6

13. 必填项属性

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

1

"text" name="someinput" required>

1

"text" name="someinput" required="required">

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

1

"post">

2

for="someinput"> your name:

3

"someinput" name="someinput" type="text" placeholder="douglas quaid" required="required">

4

go

5

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

14. 自动获取焦点

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

1

"text" name="someinput" placeholder="douglas quaid"required="required" autofocus="autofocus">

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

15. 音频播放的支持

html5中提供了"file.mp3">download this file.

5

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

16. 视频播放的支持

"cohagenphonecall.mp4">download thisvideo instead.

5

6

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

17. 预加载视频

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

1

"preload">

2

...

3

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

1

"preload" controls="controls">

2

...

3

19. 使用正则表达式

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

1

"" method="post">

2

for="username">create a username:

3

"text" name="username" id="username" placeholder="4 pattern="[a-za-z]{4,10}" autofocus="autofocus" required="required">

4

"submit">go

5

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

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

1

alert( 'pattern' in document.createelement('input') ) // boolean;

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

1

21. mark标签

标签用于高亮显示那些需要在视觉上向用户突出其重要性的文字,包裹在此标签里的字符串必须与用户当前的行为相关。例如,如果我在一些博客中搜索“open your mind” ,我可以使用在标签里使用javascript 来包裹每一次动作。

1

search results

2

they were interrupted, just after quato said, "open your mind".

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

有些人可能会有疑问,有了和等这些标签,

标签在html5中还有用吗?答案是肯定的,比如你想创建一个能包裹特殊内容的容器自由灵活的

肯定是首选,而你要创建一篇文章或者一个导航菜单,建议你使用更有语义的英文原文

翻译整理:雨夜带刀’s blog

本文链接:http://stylechen.com/22-html5-tips.html


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值