首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

实现 HTML5 和 CSS3 的跨浏览器功能(1)

实现 HTML5 和 CSS3 的跨浏览器功能(1)

最新版本的 HTML 和 CSS 提供了许多新特性。例如,HTML5 包含了让 Web 页面更有语义的新元素;现在,您可以离线储存数据、创建可编辑的内容区和使用拖放功能等等。使用 CSS3 可以创建未使用图像的圆角效果、添加阴影和渐变。尽管有许多新特性已经可用,但是并不是所有新特性能够跨浏览器工作。对于本文提供的特定 HTML5 和 CSS3 技巧,您现在就可以在所有主流浏览器的最新版本上使用它们,包括 Apple Safari、Windows®                Internet Explorer®、Mozilla Firefox 和 Google Chrome。
尤其是某些版本的 Internet Explorer,它们需要一些帮助才能识别新的 HTML5 元素。幸运的是,一个名为 html5shim 的公开可用 JavaScript 文件(一个支持 HTML5 Internet Explorer 的脚本)能够帮助 Internet Explorer 识别和呈现 HTML5 元素,这是 Internet Explorer 本身无法实现的功能。要包含这个 JavaScript 文件,仅需将  中的代码放入到 HTML 文件中正在使用的 CSS 之上的 <head> 部分中。
清单 1. html5shim,一个支持 HTML5 Internet Explorer 的脚本
1
2
3
4
<!--[if lt IE 9]>
<script type="text/javascript" src="//html5shim.googlecode.com/svn/trunk/
html5.js"></script>
<![endif]-->




这段代码还能够防止不需要该代码的浏览器加载它,因此仅 Internet Explorer 8 或更早的版本能够加载该代码。您可以通过访问项目的网站更多地了解这个 JavaScript 库( 部分提供相关链接)。
HTML5HTML5 除了引入许多新元素之外,它的新功能也格外引人注目。这个小节将讨论 HTML5 的一些新元素,并展示如何创建可编辑的内容区和在多个页面之间发布消息。
页面结构如果您花大量时间来设计 HTML 网站的结构,您将发现有许多部分是重复使用的。常见的是用于显示 logo 或其他标识信息的页头、列出网站板块的导航部分和用于显示版权信息的页脚。在以前的 HTML 版本中,通常使用 id 属性来识别这些元素;例如,页头包含在 id 设置为 "header" 的 <div> 中,即 <div                    id="header">。
对于 HTML5 时,您可以使用新的标记来等义这些特定的区域,而不需要编写额外的标识属性。例如,使用新的 header 元素代替带有页头 id 的 <div>。这不仅是更加合理的代码使用方法,而且还对查看其他开发人员的 Web 页面非常有用,因为许多开发人员都使用不同的代码编写方式。当然,在许多情况下 id 属性仍然很有用,但这些常用的元素不必要再使用它。 是一个基础的 HTML5 页面例子,它使用了 header、nav、section、article、aside 和 footer 元素。
清单 2. 基础的 HTML5 页面结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Cross-browser HTML5 and CSS3</title>
    <!--[if lt IE 9]>
    <script type="text/javascript" src="//html5shim.googlecode.com/svn/trunk/
    html5.js"></script>
    <![endif]-->
</head>
<body>

    <header>
        <nav>
            <!--Navigation-->
        </nav>
    </header>
     
     
    <section id="intro">
        <header>
            <h2>Cross-browser HTML5 and CSS3</h2>
        </header>
        <div>Lorem ipsum</div>
    </section>
     
    <section id="content">
        <section id="articles">
            <article>
                <header>
                    <h2>Article title</h2>
                    <p>Posted on <time datetime="2009-09-04T16:31:24+02:00">
                    September 4th 2009
                    </time></p>
                </header>
                <div>Pellentesque habitant morbi tristique senectus et netus et
                malesuada fames ac turpis egestas.</div>
                 
                <h2>Comments</h2>
                <form id="comment-form">
                    <input type="text" name="comment" id="comment" />
                    <input type="submit" value="submit" />
                </form>   
            </article>      
        </section>
     
        <aside>
            <h2>About section</h2>
            <p>Donec eu libero sit amet quam egestas semper. Aenean ultricies mi
            vitae est. Mauris placerat eleifend leo.</p>
        </aside>
    </section>

    <footer>Copyright notice</footer>

</body>

</html>




每个元素的意思都相当简明易懂,但有几点需要说明:
  • HTML5 仅有一个 doctype:<!doctype                        html>。
  • header、nav 和 footer 都是我们能意料到的。
  • 可以使用 section 元素来帮助定义 Web 页面布局的各个部分,例如一篇文章或一则介绍。
  • 可以使用 article 元素来标识单独的博客帖子和评论等。
  • 可以使用 aside 元素作为侧栏;其主要作用是将主页面内容包围起来。
要让 aside 元素出现在主页面内容旁边,请确保它们的宽度都适合当前页面的宽度,然后调整元素的位置。使用浮点数是以前让元素紧挨着排列的常用方式,但有了 section 和 aside 元素之后,您可以使用能够显示值的表格和表单元格代替浮点数,如  所示。
图 1. HTML5 页面布局 展示了如何设置 content 部分使其显示为表,以及如何设置 articles 部分和 <aside> 标记使其显示为表格的单元格。这样这个结构就成为一个表而不需要使用额外的表代码,并且表单元格像列一样彼此紧挨着。 是一个例子,它展示了如何编写 CSS 来让这些元素紧挨着显示。
清单 3. 显示用的表格值
1
2
3
4
5
6
7
8
9
10
11
12
#content {
    display: table;
}
#articles {
    display: table-cell;
    width: 620px;
    padding-right: 20px;
}
aside {
    display: table-cell;
    width: 300px;
}

返回列表