1-构筑基本的文档结构

1.1 DOCTYPE元素

DOCTYPE元素

元素类型


允许具有的父元素


局部属性


内容


标签用法

单个开始标签

是否为HTML5新增


在HTML5中的变化

HTML4中要求要有的DTD 已不再使用

习惯样式


例子:

<!--这个元素告诉浏览器两件事情: 第一, 它处理的是HTML文档;第二,用来标记文档内容的HTML所属的版本-->
<!DOCTYPE html>

1.2 html元素

html元素

元素类型


允许具有的父元素


局部属性

manifest (详见第40章)

内容

head元素和body元素各一

标签用法

开始标签和结束标签、内含其他元素

是否为HTML5新增


在HTML5中的变化

manifest属性是HTML5 中新增的。HTML4版本中的属性已不再使用

习惯样式

html { display: block; }

html:focus { outline: none;}

例子:

<!DOCTYPE HTML>
<!--html元素更恰当的名称是根元素,它表示文档中HTML部分的开始-->
<html>
</html>

1.3 head 元素

head元素

元素类型


允许具有的父元素

html

局部属性


内容

必须有一个title元素,其他元数据元素可有可无

标签用法

开始标签和结束标签。内含其他元素

是否为HTML5新增


在HTML5中的变化


习惯样式


例子:

<!DOCTYPE HTML>
<html>
<!--head元素包含着文档的元数据。在HTML 中, 元数据向浏览器提供了有关文档内容和标记的
信息, 此外还可以包含脚本和对外部资源( 比如css样式表)的引用-->
<head>
</head>
</html>

1.4 body元素

body元素

元素类型


允许具有的父元素

html

局部属性


内容

所有短语元素和流元素

标签用法

开始标签和结束标签

是否为HTML5新增


在HTML5中的变化

alink 、background 、bgcolor 、link 、margintop 、marginbottom 、marginleft 、marginright 、marginwidth 、text和vlink属性已不再使用。这些属性的效果可用css实现

习惯样式

body { display: block; margin: 8px; }

body:focus { outline: none; }

例子:

<!DOCTYPE html>
<html>
<head>
</head>
<!--文档的内容包装在body元素中-->
<body>

</body>
</html>

2 用元数据元素说明文档

2.1 设置文档标题(title元素)

title元素

元素类型

元数据

允许具有的父元素

head

局部属性


内容

文档标题或对文档内容言简意骸的说明

标签用法

开始标签和结束标签。内含文字

是否为HTML5新增


在HTML5中的变化


习惯样式

title { display: none; }

例子:

<!DOCTYPE HTML>
<html>
    <head>
        <!-- 使用title元素设置文档标题和名称-->
        <title>Example</title>
    </head>
</html>

2.2 设置相对URL的解析基准(base元素)

base元素

元素类型

元数据

允许具有的父元素

head

局部属性

href 、target

内容


标签用法

虚元素形式

是否为HTML5新增


在HTML5中的变化


习惯样式


例子:

<!DOCTYPE HTML>
<html>
    <head>
        <title>Example</title>

        <base href="http://titan/listings/" target="_blank"/><!--设置好URL后在下面的a元素就会用到这里的路径-->
    </head>
    <body>
        <!--浏览器就会把基准URL和相对URL拼接成完整的URL: http://titan/listings/page2. htm1 。-->
        <a href="page2.html">Page 2</a><!--这里会使用上面base的路径-->
    </body>
</html>

2.3 用元数据说明文档(meta元素)

meta元素

元素类型

元数据

允许具有的父元素

head

局部属性

name 、content 、charset和http-equiv

内容


标签用法

虚元素形式

是否为HTML5新增


在HTML5中的变化

charset属性是HTML5 中新增的。在HTML4 中, http-equiv属性可以有任意多个不同值。而在HTML5 中情况有所不同,只有本小节所说的值才能使用。HTML4 中的scheme属性在HTML5 中已不再使用。此外,现在已不再使用meta元素来指定网页所用的语言(本章稍后会介绍HTML5 中的做法)

习惯样式


例子:

<!DOCTYPE HTML>
<html>
<head>
    <title>Example</title>
    <!--1、在meta元素中用名/值对定义元数据-->
    <meta name="author" content="Adam Freeman" />
    <!--
    供meta 元素使用的预定义元数据类型
    application name    当前页所属Web应用系统的名称
    author              当前页的作者名
    description         当前页的说明
    generator           用来生成HTML的软件名称(通常用于以Ruby on Rails 、ASP.NET等服务器端框架生成HTML页的情况下)
    keywords            一批以逗号分开的字符串,用来描述页面的内容-->

    <!--2、声明字符编码-->
    <meta charset="utf-8" />

    <!--3、模拟HTTP标头文字-->
    <!--http-equiv属性的用途是指定所要模拟的标头字段名称,字段值则由content属性指定。此例
    将标头字段refresh 的值设置为5, 其作用是让浏览器每隔5秒就再次载入页面。-->
    <meta http-equiv="refresh" content="5" />
    <!--
    meta元素的http-equiv属性允许使用的值
    refresh         以秒为单位指定一个时间间隔,在此时间过去之后将从服务器重新载入当前页面。也可以另行指定一个URL让浏览器载入。如<meta http-equiv="refresh" content="5" http://apress.com" />
    default-style   指定页面优先使用的样式表。对应的content属性值应与同一文档中某个style元素或link元素的title属性值相同
    content-type    这是另一种声明HTML页面所用字符编码的方法。如<meta http-equiv="content-type" content="text/html charset=UTF-8" />
    -->
</head>
<body>
</body>
</html>

2.4 定义css样式(style元素)

style元素

元素类型


允许具有的父元素

任何可包含元数据元素的元素,包括head 、div 、noscript 、section 、article 、aside

局部属性

type 、media 、scoped

内容

css样式

标签用法

开始标签和结束标签。内含文字

是否为HTML5新增


在HTML5中的变化

scoped展性为HTML5 中新增

习惯样式


例子:

<!DOCTYPE HTML> 
<html>
<head>
    <title>Example</title>
    <!--使用style元素指定样式
    type属性指定样式类型
    scoped属性指定样式作用范围(尚无主流浏览器支持style元素的scoped属性)
    media属性指定样式适用的媒体-->
    <style media="screen AND (max-width:500px)" type="text/css">
        a {
            background-color: grey;
            color: white;
            padding: 0.5em;
        }
    </style>
    <style media="screen AND (min-width:500px)" type="text/css">
        a {
            color: Red;
            font-style: italic;
        }
    </style>
    <!--供style元素的media属性用的规定设备值
    all             将样式用于所有设备(默认值)
    aural           将样式用于语音合成器
    braille         将样式用于盲文设备
    handheld        将样式用于手持设备
    projection      将样式用于投影机
    print           将样式用于打印预览和打印页面时
    screen          将样式用于计算机显示器屏幕
    tty             将样式用于电传打字机之类的等宽设备
    tv              将样式用于电视机-->

    <!--供style元素的media属性使用的特性 AND(可以是NOT和OR)后面的值
    width height            指定浏览器窗口的宽度和高度。单位为px, 代表像素
    device-width            指定整个设备(而不仅仅是浏览器窗口)的宽度和高度。单位为px, 代表像素
    device-height           
    resolution              指定设备的像素密度。单位为dpi ( 点瑛寸)或dpcm( 点/厘米)
    orientation             指定设备的较长边朝向。支持的值有portrait和landscape。该特性没有限定词
    aspect-ratio            指定浏览器窗口或整个设备的像素宽高比。其值表示为像素宽度与像素高度的比值
    device-aspect-ratio
    color monochrome        指定彩色或黑白设备上每个像素占用的二进制位数
    color-index             指定设备所能显示的颜色数目
    scan                    指定电视的扫描模式。支持的值有progressive和interlace。该特性没有限定词
    grid                    指定设备的类型。网格型设备使用固定的网格显示内容,例如基于字符的终端和单行显示的寻呼机。支持的值有0和l ( l 代表网格型设备) 。该特性没有限定词-->
</head>
<body>
</body>
</html>

2.5 指定外部资源(link元素)

link元素

元素类型

元数据

允许具有的父元素

head 、noscript

局部属性

href 、rel 、hreflang 、media 、type 、sizes

内容


标签用法

虚元素形式

是否为HTML5新增


在HTML5中的变化

新增了sizes属性。原来的charset 、rev和target属性在HTML5 中已不再使用

习惯样式


例子:

<!--
link元素的局部属性
href        指定link元素指向的资源的URL
hreflang    说明所关联资源使用的语言
media       说明所关联的内容用于哪种设备。该属性使用的设备和特性值与《7.2.4 定义css样式(style元素)》中介绍的相同
rel         说明文档与所关联资源的关系类型
sizes       指定图标的大小。本章后面有一个用link元素载人网站标志的例子
type        指定所关联资源的MlME类型,如text/css 、image/x-icon

link元素的rel属性值选编
alternate   链接到文档的替代版本,比如另一种语言的译本
author      链接到文档的作者
help        链接到当前文档的说明文档
icon        指定图标资源,参见下面所示
license     链接到当前文档的相关许可证
pingback    指定一个回探( pingback) 服务器。从其他网站链接到博客的时候它能自动得到通知
prefetch    预先获取一个资源
stylesheet  载入外部样式表
-->
<!DOCTYPE HTML>
<html>
<head>
    <!--用link元素载入外部样式表-->
    <link rel="stylesheet" type="text/css" href="styles.css" />
    <!--用link元素添加网站标志-->
    <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
    <!--预先获取关联的资源(只有Firefox 支持link元素的预先获取功能)-->
    <link rel="prefetch" href="/page2.html" />
</head>
<body>
</body>
</html>

3 使用脚本元素

3.1 script 元素

script元素

元素类型

元数据/短语

允许具有的父元素

可以包含元数据或短语元素的任何元素

局部属性

type 、src 、defer 、async 、charset

内容

脚本语言语句。用于导入外部JavaScript库时元素没有内容

标签用法

必须使用开始标签和结束标签。不能使用自闭合标签,就算引用外部JavaScript库也是如此

是否为HTML5新增


在HTML5中的变化

在HTML5中type属性可有可无, async属性是新增的, HTML中的属性language在HTML5中已不再使用

习惯样式


例子:

<!--
script元素的局部属性
type    表示所引用或定义的脚本的类型,对于JavaScript脚本这个属性可以省略
src     指定外部脚本文件的URL, 参见后面的例子
defer   设定脚本的执行方式,参见后面的例子。这两个属性只能与src属性一同使用
async
charset 说明外部脚本文件所用字符编码,该属性只能与src属性一同使用
-->

<!DOCTYPE html>
<html>
<head>
    <!--1. 定义文档内嵌脚本-->
    <script>
            document.write("This is from the script");
    </script>

    <!--2 载入外部脚本库,用src属性载入外部脚本-->
    <script src="simple.js"></script>

    <!--3. 推迟脚本的执行,使用带defer属性的script元素
    浏览器在遇到带有defer属性的script元素时,会将脚本的加载和执行推迟到HTML文档中所有元素都已得到解析之后-->
    <script defer src="simple2.js"></script>

    <!--4 异步执行脚本,使用async属性
    使用async属性的一个重要后果是页面中的脚本可能不再按定义它们的次序执行。因此如果
    脚本使用了其他脚本中定义的函数或值,那就不宜使用async属性-->
    <script async src="simple2.js"></script>
</head>
<body>
</body>
</html>

3.2 noscript元素

noscript元素

元素类型

元数据/短语/流

允许具有的父元素

任何可以包含元数据元素、短语元素或流元素的元素

局部属性


内容

短语元索或流元素

标签用法

开始标签和结束标签都需要

是否为HTML5新增


在HTML5中的变化


习惯样式


例子:

<!DOCTYPE html>
<html>
<head>
    <!--使用noscript元素,当脚本被禁用时显示-->
    <noscript>
        <h1>Javascript is required!</h1>
        <p>You cannot use this page without Javascript</p>
    </noscript>

    <!--用noscript元素重定向浏览器,浏览器不支持JavaScript时将其引至另一个URL-->
    <noscript>
        <meta http-equiv="refresh" content="0; http://www.apress.com" />
    </noscript>
</head>
<body>
</body>
</html>