《精通HTML-语义、标准和样式》读书笔记
Author:Chemandy
第一章 开始
1. XHTML和HTML区别
□在XHTML中,<html>、<head>和<body>都是必需的标签。
□必需设置<html>标签的xmlns属性,且其值为“http://www.w3.org/1999/xhtml”。
□所有元素都必须结束。
□所有标签都必须是小写。
□任何属性值必需要么用单引号引起来,要么用双引号引起来。
□所有属性必需有值。
□“&”符号必须编码。(&)无论是正文中还是URL中。
2. 相比HTML,XHTML的几项优势:
□使用XHTML技术,能够在文档中包含其他基于XML的技术,比如MathML
□如果XHTML文档格式不正确,就会很快被发现,因为浏览器将会决绝显示页面,而是显示一个错误结果页面。
□XHTML能够保证提供格式正确的文档。
★上面的观点没有一个是完全正确的,但是当使用MIME类型application/xhtml+xml的时候,它们就全部都是正确的。如果Web服务器正在使用MIME类型text/html(实际上所有的Web服务器都将这样)提供页面,那么将不能充分利用XHTML的优势。
☆MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。
第二章 使用适当的标签完成任务
1. <address>标签:它并不显示任何人或物的联系信息,只显示与文档本身有关的联系信息。
2. 定义列表
□组成部分:起始标签<dl>,接着是定义词<dt>,然后是任意数目的定义描述<dd>。
□定义列表的使用非常灵活,只要词语和(一个或者多个)定义之间有着直接的关系,那么很多结构都可以使用这种列表表示。
□定义词<dt>不能包含任何块级元素,即段落、列表、标题,<h1>、<h2>之类。
□定义描述<dd>可以包含任何元素,或者一系列元素,只要它们的格式正确。
3. 在<a><link>标签中使用rel属性指定链接的关系类型,使用rev属性指定反向关系。
4. 代码:
□使用<pre>将代码封装起来,可以保留所有换行符、制表符(Tab)和任何空白符号格式。
□使用<code><var>来显示代码。
□使用<samp>描述代码输出的结果。
5. 缩写词:<abbr>,可以通过其中的title属性表述完整文本。<acronym>首字母缩写已经不推荐使用。
第五章 特制语义:微格式及其它
1. 元数据(metadata)本质上是关于数据的数据。
2. <meta>元素:
□HTML文档的元数据历史上被包含在<meta>元素中,放在文档的标题处。它设计用来让作者在网页上包含各种元数据:指定一个属性(通过name属性,可以是任何想要的值)和一个值(通过content属性)。
□scheme属性可以用来提供进一步的信息。将这些值定义在一个外部纲要(profile)中,然后可以在head标签中作为属性值引用。
□http-equiv属性可以代替name。HTTP服务器可以利用这个属性来收集用于HTTP响应消息头部的信息。
3. 微格式(microformat):
①定义:
□建立在已有的、被广泛采用的标准基础之上的一组简单的、开放的数据格式。
□微格式是为了把语义嵌入到HTML以便有助于分离式开发而制定的一些简单约定。
□按照某种标准方式标记出内容块,可以让外部应用程序、聚集程序和搜索引擎能够做以下事情:
◇在爬取网站的时候能够识别内容的语义。
◇对内容进行操作,包括提供访问、校对,还可以将其转化成其他的相关格式,提供给外部的程序和Web服务使用。
4. 部分微格式介绍
①hCard:用来表示人员及其公司、组织和位置的格式,或多或少使用了与vCard标准相同的属性和值,但它使用的是(X)HTML。(微格式生成器:http://microformats.org/code-tools )
②hCalendar:用来描述事件而不是联系信息,它基于iCalendar标准。
③rel-微格式(使用rel属性):
□rel-license:之处超链接的目的地是当前页面所包含内容的许可证。
□rel-nofollow:对网页进行链接分析的用户代理指出,不应该按照任何方式对目的网页进行排名、爬取。
□rel-tag:指出href属性所引用的资源可以考虑作为某个特殊主题的分类。
④VoteLinks:使用rev属性分别指明赞同、中立、反对。vote-for、vote-abstain和vote-against。
⑤XOXO(eXtensible Open XHTML Outlines),开放式XHTML大纲。用来描述文档的大纲或者类似博客提要的订阅列表。
⑥XFN(XHTML Friends Network)使用rel属性(一个有空白符隔开的值的列表)来描述你和你所链接的那个人之间的关系,而不是文档之间的关系。
⑦hReview:对产品、商业、事件、地点等的评论。
第3章 精通表格
◇表格顶部的标题行(head)被单独划出来(th标签),以指出表格的各列,这使得可访问性大大提高。也有利于样式的控制。
◇使用<caption>元素的方式为整个表格设定标题,让表格更清晰。<caption>元素内部可以包含行内元素,不能包含块级元素。
◇为<table>标签添加一个summary属性,增强可访问性。
◇通过<thead>、<tfoot>、<tbody>划分表格结构。其中<thead>要放在<caption>之后(如果有caption的话),<tfoot>标签必须位于<tbody>之前。
◇小心使用<tfoot>标签。这个元素会重复出现在多个页面,最好设置为跟<thead>重复的内容。
◇可以使用<colgroup>标签指定表格中存在多少组表格列,并通过span属性和一个数字值来指定每组中所包含的表格列的数目。此标签放在table起始标签之后(如有caption、thead、tfoot则colgroup放于其后),并只能包含可选的<col>标签。
◇<col>元素是一个自结束元素,也有一个span属性,用来指定<colgroup>中的所包含的表格列的数目。三种方式:①<colgroup><col /><col /><col /></colgroup>②<colgroup><col span="3" /></colgroup>③<colgroup span="3"></colgroup>。指定列<colgroup>和<col>有利于表格列的样式化。
◇可以使用<scope>使数据与标题关联起来。scope接受的属性值为:col、row、colgroup、rowgroup。
◇也可以使用id和headers属性关联,但表格会变得很臃肿,不推荐使用。
◇axis属性,目前不需要了解。
◇表头缩写,在<th>标签内部可以使用abbr属性提供<th>内容的缩写。
◇css中border-collapse属性指定表格应该使用哪种边框模型。取值可以为collapse(折叠边框模型):相邻的单元格彼此共享边框。separate(独立边框模型):相邻单元格保留各自的边框。
◇列样式化:对<colgroup>和<col>元素只有4种CSS属性(border、background、width、visibility)。
--------------------------------------------------------------------------------
第4章 精通表单
◇表单由一个<form>容器以及该容器内部包含的任意数量的表单控件组成。
◇尽管<form>是一个块级元素,但为了通过有效性验证,必须将单个表单控件包含在外层的块级元素中(div或p中)。
◇<form>元素属性:
·action:提交表单后对表单内容的处理,一般提交到表单处理程序。
·method:提醒用户采用哪种形式将表单数据传送给表单处理程序。get:采用字符串提交,url可见。post:url中找不到这些表单数据,如果表单提交是主动的话应该用post。
·enctype:指定哪种MIME类型对表单数据进行编码。默认application/x-www-form-urlencoded,使用文件上传控件则应改为:multipart/form-data。
·accept:使用文件上传控件才用到,可以接受一个有逗号隔开的MIME类型列表,这些类型是能够接受上传到服务器的文件的类型。
·accept-charset:是与accept属性有关的属性,指定允许使用那些字符集。
·name:标识表单,以便用于样式表和脚本程序。
◇<input>元素的type取值:text、password、file、checkbox、radio、hidden、reset、submit和button等。如果无指定则默认为text。
·text:文本输入框,maxlength属性可以指定允许输入串的最大长度,value属性可以提供文本输入预设值,readonly属性保持文本框初始值不被修改。
·password:密码输入框,与文本输入框功能属性一样。
·file:文件上传控件,可以用value预设文件路径表单域,accept属性限制允许上传的文件类型。
·checkbox:复选框,用checked属性预设复选状态。
·radio:单选按钮输入控件,相同一组单选项需要设置相同的name属性值,可以使用checked属性预设单选按钮状态。
·hidden:隐藏输入,在表单包含额外元素,对用户不可见,随表单数据一起提交。
·reset:重置按钮,将同一个表单中的所有表单控件的值重置为各自的初值。
·submit:提交按钮,将所有表单数据提交到表单的action属性所指定的文件。
·img:自定义图片提交按钮,可以使用src属性设置按钮图像,此时应设置alt属性。
·button:按钮,生成一个没有默认事件的按钮。
◇<textarea>:多行文本输入框,使用cols和rows控制尺寸。其本身为一个容器,预定义内容在容器中。
◇<select>:一个容器,可以包含任意数量的<option>或者<optgroup>标签,有三个属性。name(必选)。如果设了multiple属性,<select>菜单便成为可以选择多个选项,通过size属性设置显示详述。
◇<option>:selected属性标识默认选中,value属性可使提交值与标签内容不同,label属性提供另一种专用于显示的文本标签。
◇<optgroup>元素将意义相近的<option>元素划分成若干组,用label属性显示分组名。
◇<fieldset>元素将元素根据相关性划分为若干部分。用<legend>为其标识名字。
◇表单样式化tips:属性选择符,:focus伪类,鼠标cursor:pointer;
◇表单控件都有一个disabled属性,设置了属性则不能使用该控件。可利用来防止重复提交。