谈到web设计,最准确的理解是把网页看成三个层:
(1)结构层
(2)样式层
(3)行为层
这三个层分别对应不同的技术,分别是:
(1)超文本标记语言(HTML)
(2)层叠样式表(CSS)
(3)Javascript和文档对象模型(DOM)
没错,你可以说还能加一层,也就是浏览器的Javascript API,包括cookie和window等。
但随着HTML5的到来,上面所说的结构层、样式层和行为层(以及浏览器中的Javascript API)已经被整装到一个集合中,
不过也仅仅就是一个集合。
HTML5在这个集合中提供了几种旗鼓相当的技术,让我们可以按需取用或者调用。
例如:在结构层中,HTML5添加了新的标记元素,如<section>、<article>、<header>和<footer>。
HTML5提供了更多交互及媒体元素,如<canvas>、<audio>和<video>。
表单得到了加强,新增了颜色拾取器,数据选择器、滑动条和进度条。
除此之外,你会发现其中很多新元素都还带有自己的Javascript和DOM API。
在行为层中,HTML5规定了DOM中每个新元素的交互方式,以及新的API。
例如,我们可以自定义<video>元素的控件,改变其播放方式
<form>元素则支持进度控制
而在<canvas>元素中,可以绘制各种图形和添加图片及其他图像。
在表示层中,css3的多个模块囊括了高级选择器、渐变、交换,还有动画。
最后,新Javascript API 还包括很多模块,比如Geolocation、Storage、Drap-and-Drop、Socket以及多线程等。
推荐一个工具:Modernizr 以测试浏览器是否支持某些特性
使用Modernizr非常简单,将在文档的<head>中添加该脚本:<script src='modernizr.js'></script>
解析:一定要把这个脚本放在<head>元素中,虽然这与之前建议的不一致,但这样做有特殊的原因:
把Modernizr放在文档的开头,可以在加载其他标记之前先加载它,以便它在文档呈现之前能够创建好新的HTML5元素。
要是把它放到了文档的末尾,那么等不到Modernizr发挥作用,浏览器就已经开始呈现文档并应用样式了。