<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>网页制作坊</title>
<link rel="alternate" type="text/html" href="http://www.qqwm.com/weblog/" />
<modified>2005-03-04T20:43:01Z</modified>
<tagline></tagline>
<id>tag:www.qqwm.com,2006:/weblog//1</id>
<generator url="http://www.movabletype.org/" version="3.01D">Movable Type</generator>
<copyright>Copyright (c) 2004, qqwm</copyright>
<entry>
<title>GB2312-&gt;UTF-8 转换函数</title>
<link rel="alternate" type="text/html" href="http://www.qqwm.com/weblog/archives/2004/09/gb2312utf8_e.html" />
<modified>2005-03-04T20:43:01Z</modified>
<issued>2004-09-02T14:59:28Z</issued>
<id>tag:www.qqwm.com,2004:/weblog//1.72</id>
<created>2004-09-02T14:59:28Z</created>
<summary type="text/plain">以下是一段gb2312 -&gt; UTF-8 的函数，西西，我抄了 unicode -&gt; UTF-8 的算法，所以实际比GB2312-&gt;unicode 没多多少东西,请大家注意调用gb2utf8()时不能中英文混用 程序需要的GB2312.txt文件...</summary>
<author>
<name>qqwm</name>
<url>http://www.qqwm.com</url>
<email>qqwm@qqwm.com</email>
</author>
<dc:subject>PHP</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.qqwm.com/weblog/">
<![CDATA[<p>以下是一段gb2312 -> UTF-8 的函数，西西，我抄了 <br />
unicode -> UTF-8 的算法，所以实际比GB2312->unicode <br />
没多多少东西,请大家注意调用gb2utf8()时不能中英文混用 </p>

<p>程序需要的GB2312.txt文件 </p>

<p>gb2utf8.php <br />
<? </p>

<p>//Program writen by sadly www.phpx.com </p>

<p>function gb2utf8($gb) <br />
{ <br />
if(!trim($gb)) <br />
return $gb; <br />
$filename="gb2312.txt"; <br />
$tmp=file($filename); <br />
$codetable=array(); <br />
while(list($key,$value)=each($tmp)) <br />
$codetable[hexdec(substr($value,0,6))]=substr($value,7,6); </p>

<p>$utf8=""; <br />
while($gb) <br />
{ <br />
if (ord(substr($gb,0,1))>127) <br />
{ <br />
$this=substr($gb,0,2); <br />
$gb=substr($gb,2,strlen($gb)); <br />
$utf8.=u2utf8(hexdec($codetable[hexdec(bin2hex($this))-0x8080])); <br />
} <br />
else <br />
{ <br />
$gb=substr($gb,1,strlen($gb)); <br />
$utf8.=u2utf8(substr($gb,0,1)); <br />
} <br />
} </p>

<p>$ret=""; <br />
for($i=0;$i<strlen($utf8);$i+=3) <br />
$ret.=chr(substr($utf8,$i,3)); </p>

<p>return $ret; <br />
} </p>

<p>function u2utf8($c) <br />
{ <br />
for($i=0;$i<count($c);$i++) <br />
$str=""; <br />
if ($c < 0x80) { <br />
$str.=$c; <br />
} <br />
else if ($c < 0x800) { <br />
$str.=(0xC0 | $c>>6); <br />
$str.=(0x80 | $c & 0x3F); <br />
} <br />
else if ($c < 0x10000) { <br />
$str.=(0xE0 | $c>>12); <br />
$str.=(0x80 | $c>>6 & 0x3F); <br />
$str.=(0x80 | $c & 0x3F); <br />
} <br />
else if ($c < 0x200000) { <br />
$str.=(0xF0 | $c>>18); <br />
$str.=(0x80 | $c>>12 & 0x3F); <br />
$str.=(0x80 | $c>>6 & 0x3F); <br />
$str.=(0x80 | $c & 0x3F); <br />
} <br />
return $str; <br />
} <br />
?> </p>

<p></p>

<p>调用举例:通过GD输出 "中国" 两个汉字 <br />
example.php </p>

<p><? <br />
//Header("Content-type: image/gif"); <br />
$im = imagecreate(400,300); <br />
$bkg = ImageColorAllocate($im, 0,0,0); <br />
$clr = ImageColorAllocate($im, 255,255,255); <br />
$fnt = "d:/winnt/fonts/simhei.ttf"; <br />
include("gb2utf8.php"); <br />
$str = gb2utf8("中国"); <br />
ImageTTFText($im, 20, 0, 10, 20, $clr, $fnt, $str); <br />
ImageGif($im); <br />
ImageDestroy($im); <br />
?> <br />
</p>]]>

</content>
</entry>
<entry>
<title>多文件上传的例子</title>
<link rel="alternate" type="text/html" href="http://www.qqwm.com/weblog/archives/2004/09/aeaeaecae.html" />
<modified>2004-09-02T15:03:20Z</modified>
<issued>2004-09-02T14:57:59Z</issued>
<id>tag:www.qqwm.com,2004:/weblog//1.71</id>
<created>2004-09-02T14:57:59Z</created>
<summary type="text/plain">作者：dragon_son 发表日期：2001年4月6日 阅读次数：131 -------------------------------------------------------------------------------- //upload_html.php--------------------------------------------------------------------------------------------- 上传文件 function beforesubmit(forma) { var...</summary>
<author>
<name>qqwm</name>
<url>http://www.qqwm.com</url>
<email>qqwm@qqwm.com</email>
</author>
<dc:subject>PHP</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.qqwm.com/weblog/">
<![CDATA[<p>作者：dragon_son 发表日期：2001年4月6日 阅读次数：131 <br />
-------------------------------------------------------------------------------- </p>

<p>//upload_html.php--------------------------------------------------------------------------------------------- <br />
<HTML> <br />
<HEAD> <br />
<TITLE>上传文件</TITLE> <br />
</HEAD> <br />
<script> <br />
function beforesubmit(forma) <br />
{ <br />
var indexnamea=forma.indexname.value; <br />
var upfilea=forma.upfile.value; <br />
var k=/ /g; <br />
var indexnamea=indexnamea.replace(k,""); <br />
var upfilea=upfilea.replace(k,""); <br />
if(indexnamea=="" || upfilea=="") <br />
{ <br />
alert("目录名称或上传的目录不能为空!"); <br />
return false; <br />
} <br />
return true; <br />
} <br />
</script> <br />
<BODY BGCOLOR=WHITE> <br />
<BR> <br />
<form name=form1 action="upload.php" method=post enctype=\"multipart/form-data\" >\n"; <br />
<table cellspacing="1" cellpadding="5" border="0" width="580" bgcolor="#C2E2F5"> <br />
<tr bgcolor="#E3F2FB" align="center"> <br />
<td width="280" align="center" height="30">上传的文件</td> <br />
</tr> <br />
<? <br />
for($i=1;$i<8;$i++) <br />
{ <br />
$upfile="upfile".strval($i); <br />
echo " <tr>\n"; <br />
echo " <td bgcolor=#F5FBFE width=264><input type=file name=$upfile lengh=25></td>\n"; <br />
echo " </tr>\n"; <br />
} <br />
?> <br />
<tr bgcolor="#E3F2FB"> <br />
<td colspan="2" height="1"> <br />
</td> <br />
<td colspan="2" height="1"> <br />
<div align="center"> <br />
<input type=submit name="submit" value=上传> <br />
</div> <br />
</td> <br />
</table> <br />
</form> <br />
</body></html> <br />
//----------------------------------------------------------------------------------------------------------------------- </p>

<p>//upload.php------------------------------------------------------------------------------------------------------------- <br />
//upload_path:文件要上传到的目录路径 <br />
<?php <br />
for($i=1;$i<8;$i++) <br />
{ <br />
$upfile="upfile".strval($i); <br />
if(chop($$indexname)!="" and chop($$upfile)!="") <br />
{ <br />
$upfilename=($upfile."_name"); <br />
$filename=upload_path.$$upfilename; <br />
$copyfile = copy($$upfile,$filename); <br />
if (!$copyfile) <br />
die("文件上传失败!"); <br />
$ls_file.=$$upfilename."\n"; <br />
$flag=1 ; <br />
} <br />
} <br />
if($flag){ <br />
$ls_msg="文件\n".$ls_file."上传成功!"; <br />
} <br />
else{ <br />
$ls_msg="无文件上传,请重新选择!"; <br />
} <br />
echo "<HTML>\n" ; <br />
echo "<HEAD>\n" ; <br />
echo "</HEAD>\n" ; <br />
echo "<BODY >\n" ; <br />
echo $ls_msg."\n"; <br />
echo "</BODY>\n" ; <br />
echo "</HTML>\n" ; <br />
?> </p>

<p>【本文版权归作者与奥索网共同拥有，如需转载，请注明作者及出处】 <br />
</p>]]>

</content>
</entry>
<entry>
<title>MySQL数据库备份</title>
<link rel="alternate" type="text/html" href="http://www.qqwm.com/weblog/archives/2004/09/mysqlae.html" />
<modified>2004-09-02T14:56:02Z</modified>
<issued>2004-09-02T14:55:36Z</issued>
<id>tag:www.qqwm.com,2004:/weblog//1.70</id>
<created>2004-09-02T14:55:36Z</created>
<summary type="text/plain">在数据库表丢失或损坏的情况下，备份你的数据库是很重要的。如果发生系统崩溃，你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。有时，正是MySQL管理员造成破坏。管理员已经知道表已破坏，用诸如vi或Emacs等编辑器试图直接编辑它们，这对表绝对不是件好事！ 备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件（如用cp、cpio或tar等）。每种方法都有其优缺点： mysqldump与MySQL服务器协同操作。直接拷贝方法在服务器外部进行，并且你必须采取措施保证没有客户正在修改你将拷贝的表。如果你想用文件系统备份来备份数据库，也会发生同样的问题：如果数据库表在文件系统备份过程中被修改，进入备份的表文件主语不一致的状态，而对以后的恢复表将失去意义。文件系统备份与直接拷贝文件的区别是对后者你完全控制了备份过程，这样你能采取措施确保服务器让表不受干扰。 mysqldump比直接拷贝要慢些。 mysqldump生成能够移植到其它机器的文本文件，甚至那些有不同硬件结构的机器上。直接拷贝文件不能移植到其它机器上，除非你正在拷贝的表使用MyISAM存储格式。ISAM表只能在相似的硬件结构的机器上拷贝。在MySQL 3.23中引入的MyISAM表存储格式解决了该问题，因为该格式是机器无关的，所以直接拷贝文件可以移植到具有不同硬件结构的机器上。只要满足两个条件：另一台机器必须也运行MySQL 3.23或以后版本，而且文件必须以MyISAM格式表示，而不是ISAM格式。 不管你使用哪种备份方法，如果你需要恢复数据库，有几个原则应该遵守，以确保最好的结果： 定期实施备份。建立一个计划并严格遵守。 让服务器执行更新日志。当你在崩溃后需要恢复数据时，更新日志将帮助你。在你用备份文件恢复数据到备份时的状态后，你可以通过运行更新日志中的查询再次运用备份后面的修改，这将数据库中的表恢复到崩溃发生时的状态。...</summary>
<author>
<name>qqwm</name>
<url>http://www.qqwm.com</url>
<email>qqwm@qqwm.com</email>
</author>
<dc:subject>PHP</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.qqwm.com/weblog/">
<![CDATA[<p>在数据库表丢失或损坏的情况下，备份你的数据库是很重要的。如果发生系统崩溃，你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。有时，正是MySQL管理员造成破坏。管理员已经知道表已破坏，用诸如vi或Emacs等编辑器试图直接编辑它们，这对表绝对不是件好事！ <br />
备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件（如用cp、cpio或tar等）。每种方法都有其优缺点： <br />
mysqldump与MySQL服务器协同操作。直接拷贝方法在服务器外部进行，并且你必须采取措施保证没有客户正在修改你将拷贝的表。如果你想用文件系统备份来备份数据库，也会发生同样的问题：如果数据库表在文件系统备份过程中被修改，进入备份的表文件主语不一致的状态，而对以后的恢复表将失去意义。文件系统备份与直接拷贝文件的区别是对后者你完全控制了备份过程，这样你能采取措施确保服务器让表不受干扰。 <br />
mysqldump比直接拷贝要慢些。 <br />
mysqldump生成能够移植到其它机器的文本文件，甚至那些有不同硬件结构的机器上。直接拷贝文件不能移植到其它机器上，除非你正在拷贝的表使用MyISAM存储格式。ISAM表只能在相似的硬件结构的机器上拷贝。在MySQL 3.23中引入的MyISAM表存储格式解决了该问题，因为该格式是机器无关的，所以直接拷贝文件可以移植到具有不同硬件结构的机器上。只要满足两个条件：另一台机器必须也运行MySQL 3.23或以后版本，而且文件必须以MyISAM格式表示，而不是ISAM格式。 </p>

<p><br />
不管你使用哪种备份方法，如果你需要恢复数据库，有几个原则应该遵守，以确保最好的结果： <br />
定期实施备份。建立一个计划并严格遵守。 <br />
让服务器执行更新日志。当你在崩溃后需要恢复数据时，更新日志将帮助你。在你用备份文件恢复数据到备份时的状态后，你可以通过运行更新日志中的查询再次运用备份后面的修改，这将数据库中的表恢复到崩溃发生时的状态。 <br />
以文件系统备份的术语讲，数据库备份文件代表完全倾倒（full dump），而更新日志代表渐进倾倒（incremental dump）。 <br />
使用一种统一的和易理解的备份文件命名机制。象backup1、buckup2等不是特别有意义。当实施你的恢复时，你将浪费时间找出文件里是什么东西。你可能发觉用数据库名和日期构成备份文件名会很有用。例如： <br />
%mysqldump samp_db >/usr/archives/mysql/samp_db.1999-10-02 <br />
%mysqldump menagerie >/usr/archives/mysql/menagerie.1999-10-02 <br />
你可能想在生成备份后压缩它们。备份一般都很大！你也需要让你的备份文件有过期期限以避免它们填满你的磁盘，就象你让你的日志文件过期那样。 <br />
用文件系统备份备份你的备份文件。如果遇上了一个彻底崩溃，不仅清除了你的数据目录，也清除了包含你的数据库备份的磁盘驱动器，你将真正遇上了麻烦。 <br />
也要备份你的更新日志。 <br />
将你的备份文件放在不同于用于你的数据库的文件系统上。这将降低由于生成备份而填满包含数据目录的文件系统的可能性。 </p>

<p>用于创建备份的技术同样对拷贝数据库到另一台机器有用。最常见地，一个数据库被转移到了运行在另一台主机上的服务器，但是你也可以将数据转移到同一台主机上的另一个服务器。 <br />
1 使用mysqldump备份和拷贝数据库 </p>

<p>当你使用mysqldumo程序产生数据库备份文件时，缺省地，文件内容包含创建正在倾倒的表的CREATE语句和包含表中行数据的INSERT语句。换句话说，mysqldump产生的输出可在以后用作mysql的输入来重建数据库。 <br />
你可以将整个数据库倾倒进一个单独的文本文件中，如下： <br />
%mysqldump samp_db >/usr/archives/mysql/samp_db.1999-10-02 <br />
输出文件的开头看起来象这样： <br />
# MySQL Dump 6.0# # Host: localhost Database: samp_db#------------- <br />
--------------------------# Server version 3.23.2-alpha-log## Table st <br />
ructure for table 'absence'#CREATE TABLE absence( student_id int(10) <br />
unsigned DEFAULT '0' NOT NULL, date date DEFAULT '0000-00-00' NOT NUL <br />
L, PRIMARY KEY (student_id,date));## Dumping data for table 'absence' <br />
#INSERT INTO absence VALUES (3,'1999-09-03');INSERT INTO absence VALUE <br />
S (5,'1999-09-03');INSERT INTO absence VALUES (10,'1999-09-08');...... <br />
　 </p>

<p>文件剩下的部分有更多的INSERT和CREATE TABLE语句组成。 <br />
如果你想压缩备份，使用类似如下的命令： <br />
%mysqldump samp_db | gzip >/usr/archives/mysql/samp_db.1999-10-02.gz <br />
如果你要一个庞大的数据库，输出文件也将很庞大，可能难于管理。如果你愿意，你可以在mysqldump命令行的数据库名后列出单独的表名来倾到它们的内容，这将倾倒文件分成较小、更易于管理的文件。下例显示如何将samp_db数据库的一些表倾到进分开的文件中： <br />
%mysqldump samp_db student score event absence >grapbook.sql <br />
%mysqldump samp_db member president >hist-league.sql <br />
如果你生成准备用于定期刷新另一个数据库内容的备份文件，你可能想用--add-drop-table选项。这告诉服务器将DROP TABLE IF EXISTS语句写入备份文件，然后，当你取出备份文件并把它装载进第二个数据库时，如果表已经存在，你不会得到一个错误。 <br />
如果你倒出一个数据库以便能把数据库转移到另一个服务器，你甚至不必创建备份文件。要保证数据库存在于另一台主机，然后用管道倾倒数据库，这样mysql能直接读取mysqldump的输出。例如：你想从主机pit-viper.snake.net拷贝数据库samp_db到boa.snake.net，可以这样很容易做到： <br />
%mysqladmin -h boa.snake.net create samp_db <br />
%mysqldump samp_db | mysql -h boa.snake.net samp_db <br />
以后，如果你想再次刷新boa.snake.net上的数据库，跳过mysqladmin命令，但要对mysqldump加上--add-drop-table以避免的得到表已存在的错误： <br />
%mysqldump --add-drop-table samp_db | mysql -h boa.snake.net samp_db <br />
mysqldump其它有用的选项包括： <br />
--flush-logs和--lock-tables组合将对你的数据库检查点有帮助。--lock-tables锁定你正在倾倒的所有表，而--flush-logs关闭并重新打开更新日志文件，新的更新日志将只包括从备份点起的修改数据库的查询。这将设置你的更新日志检查点位备份时间。（然而如果你有需要执行个更新的客户，锁定所有表对备份期间的客户访问不是件好事。） <br />
如果你使用--flush-logs设置检查点到备份时，有可能最好是倾倒整个数据库。 <br />
如果你倾倒单独的文件，较难将更新日志检查点与备份文件同步。在恢复期间，你通常按数据库为基础提取更新日志内容，对单个表没有提取更新的选择，所以你必须自己提取它们。 <br />
缺省地，mysqldump在写入前将一个表的整个内容读进内存。这通常确实不必要，并且实际上如果你有一个大表，几乎是失败的。你可用--quick选项告诉mysqldump只要它检索出一行就写出每一行。为了进一步优化倾倒过程，使用--opt而不是--quick。--opt选项打开其它选项，加速数据的倾倒和把它们读回。 <br />
用--opt实施备份可能是最常用的方法，因为备份速度上的优势。然而，要警告你，--opt选项确实有代价，--opt优化的是你的备份过程，不是其他客户对数据库的访问。--opt选项通过一次锁定所有表阻止任何人更新你正在倾倒的任何表。你可在一般数据库访问上很容易看到其效果。当你的数据库一般非常频繁地使用，只是一天一次地调节备份。 <br />
一个具有--opt的相反效果的选项是--dedayed。该选项使得mysqldump写出INSERT DELAYED语句而不是INSERT语句。如果你将数据文件装入另一个数据库并且你想是这个操作对可能出现在该数据库中的查询的影响最小，--delayed对此很有帮助。 <br />
--compress选项在你拷贝数据库到另一台机器上时很有帮助，因为它减少网络传输字节的数量。下面有一个例子，注意到--compress对与远端主机上的服务器通信的程序才给出，而不是对与本地主机连接的程序： <br />
%mysqldump --opt samp_db | mysql --compress -h boa.snake.net samp_db </p>

<p>mysqldump有很多选项，详见《MySQL参考手册》。 <br />
2 使用直接拷贝数据库的备份和拷贝方法 </p>

<p>另一种不涉及mysqldump备份数据库和表的方式是直接拷贝数据库表文件。典型地，这用诸如cp、tar或cpio实用程序。本文的例子使用cp。 <br />
当你使用一种直接备份方法时，你必须保证表不在被使用。如果服务器在你则正在拷贝一个表时改变它，拷贝就失去意义。 <br />
保证你的拷贝完整性的最好方法是关闭服务器，拷贝文件，然后重启服务器。如果你不想关闭服务器，要在执行表检查的同时锁定服务器。如果服务器在运行，相同的制约也适用于拷贝文件，而且你应该使用相同的锁定协议让服务器“安静下来”。 <br />
假设服务器关闭或你已经锁定了你想拷贝的表，下列显示如何将整个samp_db数据库备份到一个备份目录（DATADIR表示服务器的数据目录）： <br />
%cd DATADIR%cp -r samp_db /usr/archive/mysql </p>

<p>单个表可以如下备份： <br />
%cd DATADIR/samp_db%cp member.* /usr/archive/mysql/samp_db%cp score.* <br />
/usr/archive/mysql/samp_db .... </p>

<p>当你完成了备份时，你可以重启服务器（如果关闭了它）或释放加在表上的锁定（如果你让服务器运行）。 <br />
要用直接拷贝文件把一个数据库从一台机器拷贝到另一台机器上，只是将文件拷贝到另一台服务器主机的适当数据目录下即可。要确保文件是MyIASM格式或两台机器有相同的硬件结构，否则你的数据库在另一台主机上有奇怪的内容。你也应该保证在另一台机器上的服务器在你正在安装数据库表时不访问它们。 </p>

<p>3 复制数据库（Replicating Database） </p>

<p>复制（Replication）类似于拷贝数据库到另一台服务器上，但它的确切含义是实时地保证两个数据库的完全同步。这个功能将在3.23版中出现，而且还不很成熟，因此本文不作详细介绍。 <br />
4 用备份恢复数据 </p>

<p>数据库损坏的发生有很多原因，程度也不同。如果你走运，你可能仅损坏一两个表（如掉电），如果你倒霉，你可能必须替换整个数据目录（如磁盘损坏）。在某些情况下也需要恢复，比如用户错误地删除了数据库或表。不管这些倒霉事件的原因，你将需要实施某种恢复。 <br />
如果表损坏但没丢失，尝试用myisamchk或isamchk修复它们，如果这样的损坏可有修复程序修复，你可能根本不需要使用备份文件。关于表修复的过程，见《数据库维护与修复》。 <br />
恢复过程涉及两种信息源：你的备份文件和个更新日志。备份文件将表恢复到实施备份时的状态，然而一般表在备份与发生问题之间的时间内已经被修改，更新日志包含了用于进行这些修改的查询。你可以使用日志文件作为mysql的输入来重复查询。这已正是为什么要启用更新日志的原因。 <br />
恢复过程视你必须恢复的信息多少而不同。实际上，恢复整个数据库比单个表跟容易，因为对于数据库运用更新日志比单个表容易。 <br />
4.1 恢复整个数据库 </p>

<p>首先，如果你想恢复的数据库是包含授权表的mysql数据库，你需要用--skip-grant-table选项运行服务器。否则，它会抱怨不能找到授权表。在你已经恢复表后，执行mysqladmin flush-privileges告诉服务器装载授权标并使用它们。 <br />
将数据库目录内容拷贝到其它某个地方，如果你在以后需要它们。 <br />
用最新的备份文件重装数据库。如果你用mysqldump产生的文件，将它作为mysql的输入。如果你用直接从数据库拷贝来的文件，将它们直接拷回数据库目录，然而，此时你需要在拷贝文件之前关闭数据库，然后重启它。 <br />
使用更新日志重复做备份以后的修改数据库表的查询。对于任何可适用的更新日志，将它们作为mysql的输入。指定--one-database选项使得mysql只执行你有兴趣恢复的数据库的查询。如果你知道你需要运用所有更新日志文件，你可以在包含日志的目录下使用这条命令： </p>

<p>% ls -t -r -1 update.[0-9]* | xargs cat | mysql --one-database db_name </p>

<p>ls命令生成更新日志文件的一个单列列表，根据服务器产生它们的次序排序（主意：如果你修改任何一个文件，你将改变排序次序，这导致更新日志一错误的次序被运用。） <br />
很可能你会是运用某几个更新日志。例如，自从你备份以来产生的更新日志被命名为update.392、update.393等等，你可以这样重新运行： <br />
%mysql --one-database db_name < update.392 <br />
%mysql --one-database db_name < update.393 <br />
..... <br />
如果你正在实施恢复且使用更新日志恢复由于一个错误建议的DROP DATABASE、DROP TABLE或DELETE语句造成丢失的信息，在运用更新日志之前，要保证从其中删除这些语句。 <br />
4.2 恢复单个表 </p>

<p>恢复单个表较为复杂。如果你用一个由mysqldump生成的备份文件，并且它不包含你感兴趣的表的数据，你需要从相关行中提取它们并将它们用作mysql的输入。这是容易的部分。难的部分是从只运用于该表的更新日志中拉出片断。你会发觉mysql_find_rows实用程序对此很有帮助，它从更新日志中提取多行查询。 <br />
另一个可能性是使用另一台服务器恢复整个数据库，然后拷贝你想要的表文件到原数据库中。这可能真的很容易！当你将文件拷回数据库目录时，要确保原数据库的服务器关闭。 </p>

<p>原作者：From: <br />
来源：Newsgroups: <br />
</p>]]>

</content>
</entry>
<entry>
<title>PHP中XML操作指南</title>
<link rel="alternate" type="text/html" href="http://www.qqwm.com/weblog/archives/2004/09/phpaexmlae.html" />
<modified>2004-09-02T14:54:26Z</modified>
<issued>2004-09-02T14:53:45Z</issued>
<id>tag:www.qqwm.com,2004:/weblog//1.69</id>
<created>2004-09-02T14:53:45Z</created>
<summary type="text/plain">翻译： 无伤 最近因为工作原因我需要学习XML， 但并不是纯技术上的XML， 而是RDF，但是我发现PHP的XML解析函数功能是一样的。我需要解析DMOZ(http://www.dmoz.org)，但是出于简单性考虑我会专注于XML的基本原理，将解析DMOZ的留给你在业余时间去完成。 ;o 首先你需要确定你的PHP编译是包括&apos;--with-xml&apos;选项的，然后你就可以开始解析XML了。下面要抓取Slashdot的XML文件， 位置是 http://www.slashdot.org/slashdot.xml。 Slashdot的文件比较简单，易于分析。...</summary>
<author>
<name>qqwm</name>
<url>http://www.qqwm.com</url>
<email>qqwm@qqwm.com</email>
</author>
<dc:subject>PHP</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.qqwm.com/weblog/">
<![CDATA[<p>翻译： 无伤 <goghs@mail.com> </p>

<p>最近因为工作原因我需要学习XML， 但并不是纯技术上的XML， 而是RDF，但是我发现PHP的XML解析函数功能是一样的。我需要解析DMOZ(http://www.dmoz.org)，但是出于简单性考虑我会专注于XML的基本原理，将解析DMOZ的留给你在业余时间去完成。 ;o </p>

<p>首先你需要确定你的PHP编译是包括'--with-xml'选项的，然后你就可以开始解析XML了。下面要抓取Slashdot的XML文件， 位置是 http://www.slashdot.org/slashdot.xml。 Slashdot的文件比较简单，易于分析。 </p>

<p>记住操作XML文件就象操作数据库中的表。XML解析器包含结果索引，XML文档则包含伟表，一旦你明确了这种差别就不需要花费太多时间了。 </p>

<p>PHP的XML函数允许你使用三个函数来操作XML文件中的数据：一个操作开始标记，一个操作标记间的数据， 一个操作结束标记。基本传送的标记名称，你以后可以自由的操作数据。 你先需要研究一下XML文件内容，看看包括哪些标记。 我们的Slashdot文件中包括STORY, TITLE, URL, TIME, AUTHOR, DEPARTMENT, TOPIC, COMMENTS, SECTION和IMAGE标记。有些标记包含属性值，例如HREF是标记A的一个属性， PHP有很优秀的方法来自动处理属性值。 下面我们在脚本中定义这些标记。 </p>

<p><?php </p>

<p>$open_tags = array( <br />
'STORY' => '<STORY>', <br />
'TITLE' => '<TITLE>', <br />
'URL' => '<URL>'); </p>

<p>$close_tags = array( <br />
'STORY' => '</STORY>', <br />
'TITLE' => '</TITLE>', <br />
'URL' => '</URL>'); <br />
?> </p>

<p>我只想分析上面的这些数据，因为我只需要一些很酷的Slash框子。 下面就是定义函数来提取数据： </p>

<p><?php </p>

<p>// 处理开始标记的属性指 <br />
// $attrs是一个多维数组，键值为属性名， 值就是该属性的值 <br />
function startElement($parser, $name, $attrs=''){ <br />
global $open_tags, $temp, $current_tag; <br />
$current_tag = $name; <br />
if ($format = $open_tags[$name]){ <br />
switch($name){ <br />
case 'STORY': <br />
echo '新的故事: '; <br />
break; <br />
default: <br />
break; <br />
} <br />
} <br />
} </p>

<p>// $current_tag告诉我们正在处理的标记，我们随后会在characterData函数中使用 <br />
// <br />
// 当遇到</STORY>标记时我们知道要flush所有的临时变量准备操作下一个标记 <br />
function endElement($parser, $name, $attrs=''){ <br />
global $close_tags, $temp, $current_tag; <br />
if ($format = $close_tags[$name]){ <br />
switch($name){ <br />
case 'STORY': <br />
return_page($temp); <br />
$temp = ''; <br />
break; <br />
default: <br />
break; <br />
} <br />
} <br />
} </p>

<p>// 传送给此函数的是元素间的数据 <br />
// 例如，对<TITLE>Title Here</TITLE>，$data就等于'Title Here' <br />
function characterData($parser, $data){ <br />
global $current_tag, $temp, $catID; <br />
switch($current_tag){ <br />
case 'TITLE': <br />
$temp['title'] = $data; <br />
$current_tag = ''; <br />
break; <br />
case 'URL': <br />
$temp['url'] = $data; <br />
$current_tag = ''; <br />
break; <br />
default: <br />
break; <br />
} <br />
} <br />
?> </p>

<p>到现在为止你可以看到用PHP分析XML文件不是很糟糕的事，下面就是有趣的内容了 -- 分析文件。 看下面的代码， 还是很简单的： </p>

<p><?php </p>

<p>function return_page(){ <br />
global $temp; <br />
echo 'o <A HREF="'.$temp['url'].'">'.$temp['title'].'</A><BR>'; <br />
} </p>

<p>// 分析的内容 <br />
$xml_file = 'slashdot.xml'; </p>

<p>// 定义字符集，默认是UTF-8 <br />
$type = 'UTF-8'; </p>

<p>// 建立解析器 <br />
$xml_parser = xml_parser_create($type); </p>

<p>// 设置解析选项 <br />
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true); <br />
xml_parser_set_option($xml_parser, XML_OPTION_TARGET_ENCODING, 'UTF-8'); </p>

<p>// 告诉PHP发现元素时要调用什么函数 <br />
// 这些函数同时也处理元素的属性 <br />
xml_set_element_handler($xml_parser, 'startElement','endElement'); </p>

<p>// 告诉PHP对字符数据调用什么函数 <br />
xml_set_character_data_handler($xml_parser, 'characterData'); </p>

<p>if (!($fp = fopen($xml_file, 'r'))) { <br />
die("无法打开 $xml_file 文件进行解析!n"); <br />
} </p>

<p>// 通过循环来解析整个文件 <br />
while ($data = fread($fp, 4096)) { <br />
if (!($data = utf8_encode($data))) { <br />
echo 'ERROR'."n"; <br />
} <br />
if (!xml_parse($xml_parser, $data, feof($fp))) { <br />
die(sprintf( "XML error: %s at line %dnn", <br />
xml_error_string(xml_get_error_code($xml_parser)), <br />
xml_get_current_line_number($xml_parser))); <br />
} <br />
} </p>

<p>xml_parser_free($xml_parser); </p>

<p>?> </p>

<p>所发生的情况是：PHP开始解析，直到遇到<ELEMENT ATTRIBUTE='bold'>，然后传送ELEMENT和其属性给startElement函数。 因为Slashdot的文件并不包含属性，我们不需要关心这一步，但是如果有属性， 就是这样的情况。然后传送起止元素间的数据给characterData函数，最后传送结束元素及其属性给endElement函数。endElement函数调用return_page()函数， 但是是在发现已经到达数据的结尾时。直到此刻$temp变量才包含startElement和characterData函数收集的数据。 </p>

<p>下面所要做的就只是在你的cron操作里面加入wget! </p>

<p>注： 翻译的也许不是很准确， 但是基本上可以了解XML的操作方法了。 -- 无伤 <br />
</p>]]>

</content>
</entry>
<entry>
<title>几点提高php序运行效率的方法 </title>
<link rel="alternate" type="text/html" href="http://www.qqwm.com/weblog/archives/2004/09/cephpeecc.html" />
<modified>2004-09-02T14:51:55Z</modified>
<issued>2004-09-02T14:51:35Z</issued>
<id>tag:www.qqwm.com,2004:/weblog//1.68</id>
<created>2004-09-02T14:51:35Z</created>
<summary type="text/plain">作者：凡草0515 1、用i+=1代替i=i+1。符合c/c++的习惯，效率还高。 2、尽可能的使用PHP内部函数。自己编写函数之前要详细查阅手册，看有没有相关的函数，否则费力不讨好。 3、能使用单引号字符串尽量使用单引号字符串。单引号字符串的效率要高于双引号字符串。 4、用foreach代替while遍历数组。遍历数组时foreach的效率明显高于while循环，而且不需要调用reset函数。两种遍历方法如下： reset ($arr); while (list($key, $value)...</summary>
<author>
<name>qqwm</name>
<url>http://www.qqwm.com</url>
<email>qqwm@qqwm.com</email>
</author>
<dc:subject>PHP</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.qqwm.com/weblog/">
<![CDATA[<p>作者：凡草0515 </p>

<p>1、用i+=1代替i=i+1。符合c/c++的习惯，效率还高。 <br />
2、尽可能的使用PHP内部函数。自己编写函数之前要详细查阅手册，看有没有相关的函数，否则费力不讨好。 <br />
3、能使用单引号字符串尽量使用单引号字符串。单引号字符串的效率要高于双引号字符串。 <br />
4、用foreach代替while遍历数组。遍历数组时foreach的效率明显高于while循环，而且不需要调用reset函数。两种遍历方法如下： <br />
reset ($arr); <br />
while (list($key, $value) = each ($arr)) { <br />
echo "Key: $key; Value: $value <br />
n"; <br />
} <br />
foreach ($arr as $key => $value) { <br />
echo "Key: $key; Value: $value <br />
n"; <br />
} <br />
以上几点均经过笔者的测试，不足之处，请多指正 <br />
</p>]]>

</content>
</entry>
<entry>
<title>如何屏蔽掉phpinfo()函数</title>
<link rel="alternate" type="text/html" href="http://www.qqwm.com/weblog/archives/2004/09/aeephpinfo.html" />
<modified>2004-09-02T14:47:26Z</modified>
<issued>2004-09-02T14:47:01Z</issued>
<id>tag:www.qqwm.com,2004:/weblog//1.67</id>
<created>2004-09-02T14:47:01Z</created>
<summary type="text/plain">在 php.ini 配置文件里面有这个选项 disable_functions = ; This directive allows you...</summary>
<author>
<name>qqwm</name>
<url>http://www.qqwm.com</url>
<email>qqwm@qqwm.com</email>
</author>
<dc:subject>PHP</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.qqwm.com/weblog/">
<![CDATA[<p>在 php.ini 配置文件里面有这个选项 </p>

<p>disable_functions = ; This directive allows you to disable certain <br />
; functions for security reasons. It receives <br />
; a comma separated list of function names. <br />
; This directive is *NOT* affected by whether <br />
; Safe Mode is turned on or off. </p>

<p>写成 <br />
disble_function = phpinfo <br />
</p>]]>

</content>
</entry>
<entry>
<title>用脚本实现浏览器的基本功能</title>
<link rel="alternate" type="text/html" href="http://www.qqwm.com/weblog/archives/2004/08/cecece.html" />
<modified>2004-08-26T17:56:49Z</modified>
<issued>2004-08-26T17:54:27Z</issued>
<id>tag:www.qqwm.com,2004:/weblog//1.66</id>
<created>2004-08-26T17:54:27Z</created>
<summary type="text/plain"><![CDATA[对于IE浏览器上的“打开”“保存”等许多功能，用javascript也可以轻松实现 &lt;input type=&quot;bottun&quot; value=&quot;测试&quot; onclick=&quot;***&quot;&gt; 其中***可以分别换成以下代码 1打开：document.execCommand(&quot;open&quot;) 2另存为：document.execCommand(&quot;saveAs&quot;) 3打印： document.execCommand(&quot;print&quot;)...]]></summary>
<author>
<name>qqwm</name>
<url>http://www.qqwm.com</url>
<email>qqwm@qqwm.com</email>
</author>
<dc:subject>HTML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.qqwm.com/weblog/">
<![CDATA[<p>对于IE浏览器上的“打开”“保存”等许多功能，用javascript也可以轻松实现<br><br />
      &lt;input type=&quot;bottun&quot; value=&quot;测试&quot; onclick=&quot;***&quot;&gt;<br><br />
      其中***可以分别换成以下代码<br><br />
      1打开：document.execCommand(&quot;open&quot;)<br><br />
      2另存为：document.execCommand(&quot;saveAs&quot;)<br><br />
      3打印： document.execCommand(&quot;print&quot;)<br><br />
      4全选：document.execCommand(&quot;selectAll&quot;)<br><br />
      5看源代码：location.replace(&quot;viewsource:&quot;+location)<br><br />
      6刷新：location.reload()<br><br />
      7前进：history.forward()<br><br />
      8后退：history.back()<br><br />
      9语言设置：window.external.ShowBrowserUI(&quot;LanguageDialog&quot;,null)<br><br />
      10整理收藏夹：window.external.ShowBrowserUI(&quot;OrganizeFavorites&quot;,null)<br><br />
      11安全选项：window.external.ShowBrowserUI(&quot;PrivacySettings&quot;,null)<br><br />
      12IE帮助：window.showHelp(C:\WINDOWS\HELP\iexplore.chm&quot;)</p>]]>

</content>
</entry>
<entry>
<title>构成网页的基本元素</title>
<link rel="alternate" type="text/html" href="http://www.qqwm.com/weblog/archives/2004/08/cecc_1.html" />
<modified>2004-08-26T17:54:01Z</modified>
<issued>2004-08-26T17:52:35Z</issued>
<id>tag:www.qqwm.com,2004:/weblog//1.65</id>
<created>2004-08-26T17:52:35Z</created>
<summary type="text/plain">题目(TITLE) Title元素是文件头中唯一一个必须出现的元素，它也只 能出现在文件头中。title元素的格式为： 　　文件题目 title标明该html文件的题目，是对文件内容的概括。一 个好的题目应该能使读者从中判断出该文件的大概内容。 文件的题目一般不会显示在文本窗口中，而以窗口的名 称显示出来。 除了标识窗口外，当将某一 homepage...</summary>
<author>
<name>qqwm</name>
<url>http://www.qqwm.com</url>
<email>qqwm@qqwm.com</email>
</author>
<dc:subject>HTML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.qqwm.com/weblog/">
<![CDATA[<p>题目(TITLE)<br />
Title元素是文件头中唯一一个必须出现的元素，它也只<br />
能出现在文件头中。title元素的格式为：<br />
　　<title>文件题目</title><br />
title标明该html文件的题目，是对文件内容的概括。一<br />
个好的题目应该能使读者从中判断出该文件的大概内容。<br />
文件的题目一般不会显示在文本窗口中，而以窗口的名<br />
称显示出来。<br />
除了标识窗口外，当将某一 homepage 存入书签或文件<br />
时，title还用作书签名或缺省的文件名。<br />
　　title的长度没有限制，但过长的题目会导致折行，<br />
一般情况下它的长度不应超过64个字符。由于title的作<br />
用是标明文件内容，所以太短的title也是不可取的，比<br />
如：introduction 这个题目，读者不可能根据它判断出<br />
本文介绍的是什么。一个好的例子是：<br />
<titl>　An Introduction to HTML 2.0 </title> <br />
在头元素中还可以出现其他元素，如<isindex>，<br />
<meta>等等。这些元素都不是必须的，而且也不常用。 <br />
这些元素的用法和它们的含义可以参考有关文献。</p>

<p>下面是一个最简单的html 文件<br />
<html><br />
<title>the simplest html file</title><br />
This is my first html file.<br />
</html></p>

<p>　 标题(hn)<br />
标题元素有6种，分别为h1, h2,…h6，用于表示文章中的<br />
各种题目。标题号越小，字体越大。一般情况下，浏览器<br />
对标题作如下解释：<br />
　　h1 黑体，特大字体，居中，上下各有两行空行。<br />
　　h2 黑体，大字体，上下各有一到两行空行<br />
　　h3 黑体(斜体)，大字体，左端微缩进，上下空行<br />
　　h4 黑体，普通字体，比h3更多缩进，上边一空行<br />
　　h5 黑体(斜体)，与h4相同缩进，上边一空行<br />
　　h6 黑体，与正文有相同缩进，上边一空行<br />
　　Netscape 2.0为hn的解释为，一律黑体，字体越来<br />
越小。<br />
　<br />
　 hn可以有对齐属性，align＝#，#表示<br />
left 标题居左<br />
center 标题居中<br />
right 标题居右<br />
例: <h2 align=center>Chapter 2 </h2><br />
　　下面给出hn的例子及其输出：<br />
　　　<h1>Today is fine!<／h1> Today is fine!<br />
<h2>Today is fine!<／h2> Today is fine!<br />
<h3>Today is fine!<／h3> Today is fine!<br />
<h4>Today is fine!<／h4> Today is fine!<br />
<h5>Today is fine!<／h5> Today is fine!<br />
<h6>Today is fine!<／h6> Today is fine!<br />
　　<br />
　 分段<P><br />
　　html的浏览器是基于窗口的，用户可以随时改变显示<br />
区的大小，所以html将多个空格以及回车等效为一个空格<br />
，这是和绝大多数字处理器不同的。html的分段完全依赖<br />
于分段元素<P>。比如下面两段源文件有相同的输出。<br />
　　<h2>This is a level Two Heading </h2><br />
paragraphy one <p>paragraph two <p><br />
… … … … … … … … … …<br />
<h2>This Is a Level Two Heading</h2><br />
paragraph one <p><br />
paragraph Two <p></p>

<p>也可以有多种属性，比较常用的属性是：
　　aligh＝# #可以是left,center,right,其含义同上
文。
　　例　<p align=center>This is a centered 
paragraph <／p>当 html文件中有图形，图形可能占据了
窗口的一端，图形的周围可能还有较大的空白区。这时，
不带clear属性的
<p>可能会使文章的内容显示在该空白区内。为确保下一
段内容显示在图形的下方，可使用clear属性。clear属性
的含义为：
　　clear=left 下一段显示在左边界处空白的区域
clear=right 下一段显示在右边界处空白的区域
clear=all 下一段的左右两边都不许有别的内容

<p>　　清单List<br />
　　清单用于列举事实，常用的清单有3种格式，即无序<br />
清单(unordered List)，有序清单(ordered list)和定<br />
义清单(definition list)</p>

<p>　 无序清单(ul)<br />
无序清单用(ul)开始，每一个清单条目用<li>引导，最<br />
后是</ul>，注意清单条目不需要结尾链接签</Li>。输<br />
出时每一清单条目缩进，并且以黑点标示。<br />
例 ：<br />
源文件<br />
　<ul><br />
<li>Today<br />
<li>Tommorow<br />
</ul></p>

<p><br />
输出为</p>

<p>●Today<br />
●Tommorow<br />
　<br />
　 有序清单<ol><br />
有序清单与无序清单相比，只是在输出时清单条目用数<br />
字标示，下面是一个例子及其输出：　<br />
　　<ol><br />
<li>Today<br />
<li>Tommorow<br />
</ol><br />
输出为：</p>

<p>1.Today<br />
2.Tommorow</p>

<p>　　定义清单<dl><br />
　　定义清单用于对清单条目进行简短说明的场合，用<br />
<dl>开始，清单条目用<dt>引导，它的说明用<dd>引<br />
导。<br />
　　<dl><br />
<dt>Item 1<br />
<dd>The definition of item 1<br />
<dt>Item 2<br />
<dd>Definition or explaination of item 2<br />
</dl><br />
输出为： <br />
Item 1<br />
The definition of item 1<br />
Item 2<br />
Definiton or explaination of item 2</p>

<p>　 改变条目标记<br />
　　1.改变无序清单条目标记<br />
　　无序清单输出时，每一条目前都有一个黑色圆点，<br />
用户可以用type序性修改条目的标记。type可以是<br />
disc 实心圆点　cirde圆圈 square实心方点<br />
<ul><br />
<li type=disc>ONE<br />
<li type=circle>TWO<br />
<li type=square>THREE<br />
</ul><br />
输出为：<br />
●ONE<br />
○TWO<br />
■THREE</p>

<p>　　2.改变有序清单条目标记<br />
　　有序清单条目标记的缺省值是阿拉伯数字，可以用<br />
type属性修改。方法为<Litype=#><br />
#=A, 大写字母<br />
a, 小写字母<br />
I, 大写罗马数字<br />
i, 小写罗马数字<br />
l, 缺省,阿拉伯数字<br />
<ol><li type=A>ONE-ONE<br />
<li>ONE-TWO</ol><br />
A.ONE-ONE<br />
B.ONE-TWO</p>

<ol><li type=a>ONE-ONE
<li>ONE－TWO</ol>
a.ONE-ONE
b.ONE-TWO

<ol><li type=I>ONE-ONE
<li>ONE=TWO<／ol>
Ⅰ.ONE-ONE
Ⅱ.ONE-TWO

<ol><li type=i>ONE-ONE
<li>ONE-TWO<／ol>
i.ONE-ONE
ii.ONE-TWO
<ol><li type=1>ONE-ONE
<li>ONE-TWO</ol>
1.ONE-ONE
2.ONE-TWO

<p>　 3.改变有序清单条目的超始数字<br />
　　有序清单的条目数字在缺省情况下是从1开始的，用<br />
start属性可修改这一值。方法为<ol start=#> #是条目<br />
起始号<br />
　　　<ol start=5><br />
<li type=A>ONE-ONE<br />
<li>ONE-TWO<br />
<ol start=10><br />
<li>TWO-ONE<br />
<li type=i>TWO-ONE<br />
</ol></ol></p>

<p>E.ONE-ONE<br />
F.ONE-TWO<br />
10.TWO-ONE<br />
xi.TWO-TWO</p>

<p>　　清单的嵌套<br />
　　各种清单可以相互嵌套，每一个清单条目都可以是<br />
一个单独的清单。每嵌套一层，清单条目的输出就会有<br />
更大的缩进。请参照上面的例子。</p>

<p>　　 预排版文本<pre><br />
html的输出是基于窗口的，因而html文件在输出时都是<br />
要重新排版的，若确实不需要重新排版的内容，可以用<br />
<pre>…<／pre>通知浏览器。浏览器在输出时，对这部<br />
分内容几乎不做修改地输出，输出的字体电传打字机字<br />
体。早期的html规范规定在预排版区内不能出现格式化<br />
输出的元素。如hn等，Netscapr2.0在遇到预排版元素<br />
时，允许其中有其他元素。<br />
　　<pre><br />
please use your card.<br />
VISA Master<br />
<b>Here is an order form.</b><br />
<ul><li>Fax<br />
<li>Air Mail </ul><br />
</pre></p>

<p>please use your card<br />
VISA Master<br />
Here is an order form.<br />
●Fax<br />
●Air Mail</p>

<p>　　块引用<BQ><br />
块引用表示其中的内容是引用。浏览器内对块引用的解<br />
释一般为左右缩进，上下各有一空行，有些浏览器还采<br />
用斜体字。 </p>

<p>　　居中<br />
很多元素都有对齐方式属性，如hn 、p等。也可以直接<br />
用居中链接签<center>…<／center><br />
<h3 align=center><br />
Wonderful!!<br />
</h3><br />
<center><br />
This must be my dream.<br />
</center><br />
Wonderful!!<br />
This must be my dream.<br />
</p>]]>

</content>
</entry>
<entry>
<title>网页技巧二十一例</title>
<link rel="alternate" type="text/html" href="http://www.qqwm.com/weblog/archives/2004/08/ceaeaeae.html" />
<modified>2004-08-26T17:54:18Z</modified>
<issued>2004-08-26T17:51:47Z</issued>
<id>tag:www.qqwm.com,2004:/weblog//1.64</id>
<created>2004-08-26T17:51:47Z</created>
<summary type="text/plain">1. 如何在网页中加入注释 ◆代码： 2. 如何在网页中加入EMAIL链接并显示预定的主题 ◆代码：Send Mail 3. 如何制作电子邮件表单 ◆在中输入Action=&quot;youremail@XXX.XXX&quot;...</summary>
<author>
<name>qqwm</name>
<url>http://www.qqwm.com</url>
<email>qqwm@qqwm.com</email>
</author>
<dc:subject>HTML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.qqwm.com/weblog/">
<![CDATA[<p>1. 如何在网页中加入注释 <br />
◆代码：< !-- 这是注释 --> <br />
2. 如何在网页中加入EMAIL链接并显示预定的主题 <br />
◆代码：< a href="mailto:yourmail@***.***?Subject=你好">Send Mail< /a> </p>

<p>3. 如何制作电子邮件表单 <br />
◆在<FORM>中输入Action="youremail@XXX.XXX" ，提交采用POST方法。 </p>

<p>4. 如何避免别人将你的网页放入他的框架（FRAME）中 <br />
◆在源代码中的<HEAD>…< /HEAD>之间加入如下代码： <br />
<s cript language="javas cript"><!-- <br />
if (self!=top){top.location=self.location;} <br />
-->< /s cript> </p>

<p>5. 如何自动加入最后修改日期 <br />
◆在源代码中的<BODY>…< /BODY>之间加入如下代码： <br />
< s cript Language="Javas cript"><!-- <br />
document.write("Last Updated:"+document.lastModified); <br />
-->< /s cript> </p>

<p>6. 如何让背景图象不滚动 <br />
◆代码：<BODY Background="bg.gif" Bgproperties="fixed" > <br />
◆在Dreamweaver中用「Text」-「Custom Style」-「Edit Style Sheet」-「New」-Redefine HTML Tag中选择Body，然后在Background中的Attachment里选fixed </p>

<p>7. 如何将网页定时关闭 <br />
◆在源代码中的<BODY>后面加入如下代码： <br />
< s cript LANGUAGE="Javas cript"> <!-- <br />
setTimeout('window.close();', 60000); <br />
--> < /s cript> <br />
在代码中的60000表示1分钟，它是以毫秒为单位的。 </p>

<p>8. 将网页加入收藏夹 <br />
◆请使用如下代码：（注意标点符号） <br />
< a href='#' onclick="window.external.addFavorite('http://qiangwei.126.com','【梦想天空】qiangwei.126.com 各种网页工具教程DW、FLASH、FIREWORKS及CGI教学、聊天交友……')" target="_top">将本站加入收藏夹< /a> </p>

<p>9. 如何定义网页的关键字(KeyWords) <br />
◆格式如下： <br />
< meta name="keywords" content="dreamweaver,flash,fireworks"> <br />
content中的即为关键字，用逗号隔开 <br />
◆在Dreamweaver中用「Insert」-「Head」-KeyWords命令 </p>

<p>10. 如何设置命令来关闭打开的窗口 <br />
◆在源代码中加入如下代码： <br />
< a href="/" onclick="javas cript:window.close(); return false;">关闭窗口< /a> </p>

<p>11. 如何在网页中加入书签，在页面内任意跳转 <br />
◆在源代码中需要插入书签的地方输入，在调用的地方输入Top，其中的top是你设定的书签名字。 <br />
◆在Dreamweaver中用菜单的「Insert」-「Name Anchor」命令插入书签，调用时，在Link中输入#top，top为书签名。 </p>

<p>12. 如何为不支持框架的浏览器指定内容 <br />
◆在源代码中加入下面代码： <br />
< BODY><noframes>本网页有框架结构，请下载新的浏览器观看< /noframes></ BODY> </p>

<p>13. 如何在网页中加入单个或几个空格 <br />
◆在源代码中输入 ，每个 之间请用空格分开。 <br />
◆在Dreamweaver中用<CTRL>+<SHIFT>+<SPACE>插入空格或任输几个字符，然后将其色彩设成背景的色彩！ </p>

<p>14. 如何在网页中加入书签，在多个页面之间任意跳转 <br />
◆方法与上面类似，不过做链接时要在书签名前加上网页文件名，如：other.htm#top，这样一来就会跳转到other.htm页面中的top书签处。 </p>

<p>15. 如何使表格（TABLE）没有边框线 <br />
◆将表格的边框属性：border="0" </p>

<p>16. 如何隐藏状态栏里出现的LINK信息 <br />
◆请使用如下代码： <br />
< a href="http://qiangwei.126.com";; onMouseOver="window.status='none';return true">梦想天空< /a> </p>

<p>17. 如何定时载入另一个网页内容 <br />
◆在源代码中的<HEAD>…< /HEAD> 加入如下代码： <br />
< meta http-equiv="refresh" content="40;URL=http://qiangwei.126.com"> <br />
40秒后将自动http://qiangwei.126.com所在的网页 </p>

<p>18. 如何为网页设置背景音乐 <br />
◆代码：< EMBED src="music.mid" autostart="true" loop="2" width="80" height="30" > <br />
src：音乐文件的路径及文件名； <br />
autostart：true为音乐文件上传完后自动开始播放，默认为false（否） <br />
loop：true为无限次重播，false为不重播，某一具体值（整数）为重播多少次 <br />
volume：取值范围为"0-100"，设置音量，默认为系统本身的音量 <br />
starttime："分：秒"，设置歌曲开始播放的时间，如，starttime="00:10"，从第10开始播放 <br />
endtime： "分：秒"，设置歌曲结束播放的时间 <br />
width：控制面板的宽 <br />
height：控制面板的高 <br />
controls：控制面板的外观 <br />
controls="console/smallconsole/playbutton/pausebutton/stopbutton/volumelever" <br />
console：正常大小的面板 <br />
smallconsole：较小的面板 <br />
playbutton：显示播放按钮 <br />
pausebutton：显示暂停按钮 <br />
stopbutton：显示停止按钮 <br />
volumelever：显示音量调节按钮 <br />
hidden：为true时可以隐藏面板 </p>

<p>19. 如何去掉链接的下划线 <br />
◆在源代码中的<HEAD>…</HEAD>之间输入如下代码： <br />
<style type="text/css"> <!-- <br />
a { text-decoration: none} <br />
--> < /style> <br />
◆在Dreamweaver中用「Text」-「Custom Style」-「Edit Style Sheet」-「New」-Redefine HTML Tag中选择a，然后在decoration中选中none </p>

<p>20. timeline中的layer走曲线 <br />
◆要使得timeline中的layer走曲线，你得先让他走出直线来，然后在最后一frame和第一frame中间的任何一frame上点右键，可以看到有个 add keyframe ，点一下，然后把你的layer移动到你要的位置，dw会自动生成曲线，good luck !</p>

<p>21.内框架<iframe>使用 </p>

<p>◆iframe标记的使用格式是:　 <br />
<iframe src="url" width="x" height="x" scrolling="[option]" frameborder="x" <br />
name="main"></iframe> <br />
src：文件的路径，既可是html文件，也可以是文本、asp等； width、height："内部框架"区域的宽与高；　 <br />
scrolling:当src的指定的html文件在指定的区域不显不完时，滚动选项，如果设置为no，则不出现滚动条；如为auto：则自动出现滚动条；如为yes，则显示;　 <br />
frameborder：区域边框的宽度，为了让“内部框架“与邻近的内容相融合，常设置为0。 <br />
name:框架的名字，用来进行识别。 <br />
比如: 当你想用父框架控制内部框架时，可以使用： target="框架的名字"来控制。 </p>

<p>例子：<iframe name="mm" src="http://www.263.net"; width="100%" height="100%" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"></iframe><br />
</p>]]>

</content>
</entry>
<entry>
<title>取消选取、防止复制</title>
<link rel="alternate" type="text/html" href="http://www.qqwm.com/weblog/archives/2004/08/eae.html" />
<modified>2004-08-26T17:49:55Z</modified>
<issued>2004-08-26T17:49:02Z</issued>
<id>tag:www.qqwm.com,2004:/weblog//1.63</id>
<created>2004-08-26T17:49:02Z</created>
<summary type="text/plain">使用方法： 在里插入onselectstart=return false...</summary>
<author>
<name>qqwm</name>
<url>http://www.qqwm.com</url>
<email>qqwm@qqwm.com</email>
</author>
<dc:subject>HTML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.qqwm.com/weblog/">
<![CDATA[<p>使用方法：<br />
在<body>里插入onselectstart=return false</p>]]>

</content>
</entry>
<entry>
<title>如何将 CSS 加诸于网页</title>
<link rel="alternate" type="text/html" href="http://www.qqwm.com/weblog/archives/2004/08/ae_css_eaece.html" />
<modified>2004-08-26T17:48:52Z</modified>
<issued>2004-08-26T17:48:24Z</issued>
<id>tag:www.qqwm.com,2004:/weblog//1.62</id>
<created>2004-08-26T17:48:24Z</created>
<summary type="text/plain"> 您可以利用下列 3 种方式，将 CSS 指定的格调加诸于网页上： 1. 在 HTML 档案里加一个超连结，连到外在的...</summary>
<author>
<name>qqwm</name>
<url>http://www.qqwm.com</url>
<email>qqwm@qqwm.com</email>
</author>
<dc:subject>HTML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.qqwm.com/weblog/">
<![CDATA[<p>    您可以利用下列 3 种方式，将 CSS 指定的格调加诸于网页上： </p>

<p>1. 在 HTML 档案里加一个超连结，连到外在的 CSS 档这个方法最方便管理整个网站的网页风貌。它让网页的文字内容与版面设计分开。您只要在一个 CSS 档内（副档名为 .CSS）定义好网页的外观风格，所有参考连结到此 CSS 档的网页，便会依照指示，反应出定义好的风格。 </p>

<p>它的写法是： <HTML><br />
　　<HEAD><br />
　　<TITLE><br />
　　本页标题<br />
　　</TITLE><br />
　　<LINK REL="stylesheet" <br />
　　HREF="http://www.xyz.com/xyz.css" <br />
　　TYPE="text/css"><br />
　　</HEAD></p>

<p></p>

<p>此种方法 Navigator4 支援得仍十分 Buggy，请小心使用。 </p>

<p>2. 在 HTML 档案的 <HEAD>.......</HEAD> 标签间，加一段 CSS 的叙述文这个方法适用于指定某个网页，除了展现外在的 CSS 档定义好的网页风格外，同时还要展现本身 HTML 档内加注的 CSS 。如果内在加注的 CSS 叙述与外在连结的 CSS 叙述相冲突的话，网页的展现将以内在加注的 CSS 叙述为主。 </p>

<p>它的写法是： <HTML><br />
　　<HEAD><br />
　　<TITLE><br />
　　本页标题<br />
　　</TITLE><br />
　　<STYLE TYPE="text/css"><br />
　　<!--<br />
　　BODY {font: 12pt}<br />
　　H1 {font: 16pt}<br />
　　P {font-weight: bold;<br />
　　color: green}<br />
　　--><br />
　　</STYLE><br />
　　</HEAD><br />
　　<BODY><br />
　　开始本页内容…<br />
　　</BODY><br />
　　</HTML></p>

<p>特别值得注意的是，为了防止不支援 CSS 的浏览器误将 <STYLE> … </STYLE> 标签间的 CSS 风格叙述当成普通字串，而展现于网页上，您最好将 CSS 的叙述文字插入 <!-- --> 标签之间。 <br />
　　3. 在 HTML 档的字里行间中，随时有需要，随时加一小段 CSS 的叙述指定这个方法适用于指定网页内的某一小段文字的呈现风格。导览器除了会展现出外在的 CSS 档与此 HTML 档 <HEAD> 内定义的 CSS 风格（如果有的话），同时还会展现字里行间的 CSS 风格。如果字里行间的 CSS 叙述与<HEAD> 内在定义的 CSS 或外在连结的 CSS 叙述相冲突的话，导览器的展现将以字里行间的 CSS 叙述为主。 </p>

<p>它的写法是： <HTML><br />
　　<HEAD><br />
　　<TITLE><br />
　　本页标题<br />
　　</TITLE><br />
　　</HEAD><br />
　　<BODY><br />
　　<P STYLE="color: red"><br />
　　开始本页内容…<br />
　　</P><br />
　　</BODY><br />
　　</HTML><br />
　　上述的 3 种 CSS，可以同时并用，也可以择您所好，单一或成双地使用。如果各 CSS 间的叙述相冲突，则内在定义的 CSS 会盖过外在连结的 CSS ，字里行间的 CSS 会盖过<HEAD> 内在定义的 CSS 。这样一层一层地推展、补充下来，使得「阶层性格调控制」清楚又有效率地帮助网页设计者，一方面中央统筹整个网站的网页风貌，另一方面又可以随著各个网页、各个文字段落的特别需要，而分别调配不同的格调。十分有条不紊，十分方便管理，所以称之为「阶层性」的格调控制。 </p>

<p>CSS 语言的基本语法 </p>

<p>CSS 的语言与网页排版语言 HTML，在内容上有一点点类似重覆，但是语法却大不相同。它的基本语法是： H1 {font-size: 16pt;<br />
　　font-weight: bolder;<br />
　　color: red}<br />
　　上例中，H1表示您想要界定的标签元件为 H1，font-size、font-weight、color 这些扩充属性则表示您想指定 H1 应该长成什么模样。在上例中，我界定我的 H1 应该展现出字体大小 16 点，特粗黑体，红色的模样。简化之因此，顺著这个基本写法，我们可以继续定义其他的标签元件： H1 {font-size: 16pt;<br />
　　font-weight: bolder;<br />
　　color: red}<br />
　　H2 {font-size: 16pt;<br />
　　font-weight: bolder;<br />
　　color: red}<br />
　　H3 {font-size: 16pt;<br />
　　font-weight: bolder;<br />
　　color: red}<br />
　　上例中，H1、H2、H3 界定的标签元件均长得一模一样，因此我们可以将它们简化写成： H1, H2, H3 {font-size: 16pt;<br />
　　font-weight: bolder;<br />
　　color: red}<br />
　　而如果您想要让您的 H1, H2, H3 各自拥有各自不同的风格，那么您必须一笔一笔地条列说明清楚： H1 {font-size: 16pt;<br />
　　font-weight: bolder;<br />
　　font-family: Times, serif;<br />
　　color: red}<br />
　　H2 {font-size: 14pt;<br />
　　font-weight: bold;<br />
　　font-family: Georgia, serif;<br />
　　color: green}<br />
　　H3 {font-size: 12pt;<br />
　　font-weight: bold;<br />
　　font-family: "New York", serif;<br />
　　color: gray}</p>

<p>另一种简化方法虽然在上例中， H1, H2, H3 各自拥有各自不同的风格，使得您必须一笔一笔说明清楚。但是您会注意到，我们在指定 H1, H2, H3 各自不同的风格时，其实大都是在指定 H1, H2, H3 的字体表现（字体大小、字体粗细、字体的形体）。因此，我们可以将所有以 font字眼开始的叙述，整合在一个 font 大项里： H1 {font: 16pt bolder Times, serif;<br />
　　color: red}<br />
　　H2 {font: 14pt bold Georgia, serif;<br />
　　color: green}<br />
　　H3 {font: 12pt bold "New York", serif;<br />
　　color: gray}<br />
　　特别值得注意的是，在上例中，H3 的字体使用 "New York" 字体， "New York" 是两个字，所以必须将它 "括号" 起来。而 H1, H2, H3 的颜色规定，并不能一道并入 font 大项中，而必须另外标清楚。顺便一提的是，CSS 与 HTML 一样，都有「注解」的符号。HTML 使用 <!-- -->做「注解」；而 CSS 使用 /* 这里是注解 */。 <br />
　　CSS 中 Font 的扩充属性<br />
　　前言：<br />
　　1. CSS-Cascading Style Sheet 只能展现于有支援 Style Sheet 的浏览器内，例如：网景的 Navigator4 与微软的 IE3, IE4。版本不够新的浏览器显现不出 Style sheet 规定的风格。 <br />
　　2. 本系列文章只说明介绍 Navigator4 与 IE3、IE4 浏览器 共同支援的 CSS1 扩充属性。至于 W3C 详细规定的完整 CSS1 文件，或者 网景 、 微软各自支援的 CSS 扩充属性，请到其网站的 Style Sheet 部门观看。 <br />
　　3. CSS 的写法使用大写或小写均可。 <br />
　　{font-family: Times} <br />
　　此属性用来指定字体的形体。画底线的部分可以用各式各样的字体来替换之。您可以同时指定好多种字体，以防 user 端没有第一种字体时，可以继续依照您的指示，选用第二、第三种字体。 <br />
　　参考范例： </p>

<p>P {font-family: Times,"New York"} <br />
　　LI {font-family: "中黑体"} <br />
　　BLOCKQUOTE {font-family: monospace} </p>

<p>特别值得注意的是，在上例中，字体 "New York" 、 "中黑体" 因为是两个字(以上)，所以必须将它们 "括号" 起来。此外，第三例中的 monospace 是用来指定写程序码时使用的等距字体。 <br />
　　{font-weight: bold} <br />
　　此属性用来指定字体的粗细。画底线的部分可以使用下列 2 组表示法来替换之： </p>

<p>* normal, bold, bolder, lighter <br />
　　* 100, 200, 300..........900 </p>

<p>此属性的内定值为 normal。 </p>

<p>参考范例： </p>

<p>H1 {font-weight: bolder} <br />
　　BLOCKQUOTE {font-weight: 200} </p>

<p>{font-size: medium} </p>

<p>此属性用来指定字体的大小。画底线的部分可以使用下列 4 组表示法来替换之： </p>

<p>* 绝对 size: xx-small, x-small, small,medium, large, x-large, xx-large </p>

<p>* 相对 size: larger, smaller（与母标签相对比） </p>

<p>* 字体的点数 (point): 12pt,16pt, 20pt.... </p>

<p>* 百分比: 80%, 120% .... （与母标签相对比） </p>

<p>此属性的内定值为 medium。 </p>

<p>参考范例： </p>

<p>BODY {font-size: medium} <br />
　　H1 {font-size: 18pt} <br />
　　H2 {font-size: 90%} </p>

<p>{font-style: normal} </p>

<p>此属性用来指定字体的正体或斜体。画底线的部分可以使用 normal, italic, oblique (仅 IE4 支援 oblique） 来替换之。 </p>

<p>此属性的内定值为 normal。 </p>

<p>参考范例： </p>

<p>H4 {font-style: italic} <br />
　　P {font-style: oblique} </p>

<p>{font: 12pt/14pt} </p>

<p>此属性用来指定字体的大小与每行行距的高度。上例中，12pt 指的是字体的大小，14pt 指的是行距的高度。事实上，{font: … } 可以集结所有跟 font 有关的扩充属性在此标签内，所以您除了在 {font: … } 内指定字体大小与行距高度外，还可以在此标签内加入所有上述介绍过的属性。 </p>

<p>参考范例： </p>

<p>P {font: italic bold 12pt/14pt} <br />
　　STRONG {font: 14pt/18pt bolder italic Times, serif} </p>

<p>CSS 中 Color 的扩充属性<br />
　　{color: red} </p>

<p>此属性用来指定字体的颜色。画底线的部分可以用各式各样的颜色来替换之。您可以使用16 进位颜色码表示（如：#00ff77）或利用浏览器既定的英文单字表示颜色（如：gray, blue..... 详细请见： Table 的扩充属性 ）。如果您指定的颜色如同 #00ff77 一般，是两位数字、两位数字重覆组成的话 (00, ff,77 而非 03, 8f,7e ) ，您可以直接使用 #0f7简化表示之。 </p>

<p>参考范例： </p>

<p>BLOCKQUOTE {color: navy} <br />
　　LI {color: #eedd44} <br />
　　LI {color: #ed4} <br />
　　P {color: #007f3a} </p>

<p>{background-color: red} </p>

<p>此属性用来指定整个网页的背景颜色，或某一段落，某一区块的背景颜色。画底线的部分可以用各式各样的颜色来替换之。您可以使用16 进位颜色码表示（如：#00ff77）或利用浏览器既定的英文单字表示颜色（如：gray, blue..... 详细请见： Table 的扩充属性 ）。如果您指定的颜色如同 #00ff77 一般，是两位数字、两位数字重覆组成的话 (00, ff,77 而非 03, 8f,7e ) ，您可以直接使用 #0f7简化表示之。 </p>

<p>参考范例： </p>

<p>BODY {background-color: #ed4} <br />
　　BLOCKQUOTE {background-color: navy} <br />
　　H2 {background-color: #007f3a} </p>

<p><br />
　　{background-image: url (/images/xyz.gif)} </p>

<p>此属性用来指定网页或某一区块的背景图案。画底线的部分可以使用图档的绝对位置或相对位置来表示之。使用此标签时，最好同时也指定一个类似的颜色做背景颜色。 </p>

<p>参考范例： </p>

<p>BODY { <br />
　　background-image: url (/images/2T_logo.gif); <br />
　　background-color: #ededff<br />
　　} <br />
　　LI { <br />
　　background-image: url http://www.2T.com/2T_logo.gif); <br />
　　background-color: #cef<br />
　　} </p>

<p>{background: (…)} </p>

<p>此标签可以集结所有跟 background 有关的扩充属性在此一标签内，所以您可以将所有上述介绍过的 background 属性一起加进来。 </p>

<p>参考范例： </p>

<p>BODY {background: white url (/images/2T_logo.gif) repeat-y} <br />
　　LI {background: #cc88ff url http://www.2T.com/2T_logo.gif) no-repeat} </p>

<p><br />
　　CSS 中 Text 的扩充属性<br />
　　{text-decoration: none} </p>

<p>此属性用来指定文字是否画有底线或被线条杠掉（如：被线条杠掉此例）。画底线的部分可以用 none, underline, line-through 来替换之。 </p>

<p>此属性的内定值为 none。 </p>

<p>参考范例： </p>

<p>P { <br />
　　color: navy; <br />
　　text-decoration: none<br />
　　} <br />
　　A:link, A:visited, A:active { <br />
　　text-decoration: underline <br />
　　} </p>

<p>{text-align: left} </p>

<p>此属性用来指定文字是向左、向中、或向右对齐。画底线的部分可以用 left, right, center, justify 来替换之。 </p>

<p>参考范例： </p>

<p>P {text-align: left} <br />
　　H1 {text-align: center} </p>

<p>{text-indent: 2cm} </p>

<p>此属性用来指定文字向右凹进去多少公分、厘米、英寸、点数(point)、图素(pixel)、或多少 % 。测量单位可以用 cm, mm, in, pt, px, %来表示之。 % 是以母标签来相对比。 </p>

<p>参考范例： </p>

<p>P {text-indent: 3cm} <br />
　　LI {text-indent: 60px} <br />
　　BLOCKQUOTE {text-indent: 20%} </p>

<p>{line-height: 14pt} </p>

<p>此属性用来指定每行行距的高度。line-height 常与字体大小 font-size 一起并用，写成 12pt/14pt (12pt 指的是字体的大小，14pt 指的是行距的高度)。line-height也可以用 % 表示之。 % 是以母标签来相对比。 </p>

<p>参考范例： </p>

<p>BODY { <br />
　　font-size: 12pt; <br />
　　line-height:14pt<br />
　　} <br />
　　H1 { <br />
　　font-size: 150%; <br />
　　line-height: 200%<br />
　　} </p>

<p>H4 {font: 16pt/20pt bold italic} </p>

<p><br />
　　CSS 中 Margin, Padding 的扩充属性<br />
　　{margin: 3cm} </p>

<p>此属性用来指定网页的上下左右边缘，各需留白多少公分、厘米、英寸、点数(point)、图素(pixel)、或多少 % 。测量单位可以用 cm, mm, in, pt, px, %来表示之。 % 是以母标签来相对比。 </p>

<p>margin 可以用 margin-top, margin-bottom, margin-left, margin-right来替换之。 </p>

<p>此属性的内定值为 0。 </p>

<p>参考范例： </p>

<p>BODY { <br />
　　margin-top: 44px; <br />
　　margin-bottom: 2cm; <br />
　　margin-left: 66px; <br />
　　margin-right: 1.5in <br />
　　} <br />
　　P {margin: 15pt} </p>

<p>{padding: 14px} </p>

<p>此属性用来指定各段落或各区块间，上下左右边缘各需留白多少公分、厘米、英寸、点数(point)、图素(pixel)、或多少 % 。测量单位可以用 cm, mm, in, pt, px, %来表示之。 % 是以母标签来相对比。padding 可以用 padding-top, padding-bottom, padding-left, padding-right来替换之。 </p>

<p>此属性的内定值为 0。IE3 不支援所有与 padding 相关的标签。 </p>

<p>参考范例： </p>

<p>BODY {margin: 15pt} <br />
　　DL { <br />
　　padding-top: 22px; <br />
　　padding-left: 20%; <br />
　　} <br />
</p>]]>

</content>
</entry>
<entry>
<title>HTML文档中小meta的大作用</title>
<link rel="alternate" type="text/html" href="http://www.qqwm.com/weblog/archives/2004/08/htmlaemetacaec.html" />
<modified>2004-08-26T17:47:27Z</modified>
<issued>2004-08-26T17:46:34Z</issued>
<id>tag:www.qqwm.com,2004:/weblog//1.61</id>
<created>2004-08-26T17:46:34Z</created>
<summary type="text/plain">meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的与中，meta 标签的用处很多。meta 的属性有两种：name和http-equiv。name属性主要用于描述网页，对应于content（网页内容），以便于搜索引擎机器人查找、分类（目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类）。这其中最重要的是description（站点在搜索引擎上的描述）和keywords（分类关键词），所以应该给每页加一个meta值。比较常用的有以下几个：</summary>
<author>
<name>qqwm</name>
<url>http://www.qqwm.com</url>
<email>qqwm@qqwm.com</email>
</author>
<dc:subject>HTML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.qqwm.com/weblog/">
<![CDATA[<p>meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的<head>与</head>中，meta 标签的用处很多。meta 的属性有两种：name和http-equiv。name属性主要用于描述网页，对应于content（网页内容），以便于搜索引擎机器人查找、分类（目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类）。这其中最重要的是description（站点在搜索引擎上的描述）和keywords（分类关键词），所以应该给每页加一个meta值。比较常用的有以下几个： <br />
name 属性 </p>

<p>1、<meta name="Generator" contect="">用以说明生成工具（如Microsoft FrontPage 4.0）等； </p>

<p>2、<meta name="KEYWords" contect="">向搜索引擎说明你的网页的关键词； </p>

<p>3、<meta name="DEscription" contect="">告诉搜索引擎你的站点的主要内容； </p>

<p>4、<meta name="Author" contect="你的姓名">告诉搜索引擎你的站点的制作的作者； </p>

<p>5、<meta name="Robots" contect= </p>

<p>"all|none|index|noindex|follow|nofollow"> </p>

<p>其中的属性说明如下： </p>

<p>设定为all：文件将被检索，且页面上的链接可以被查询； </p>

<p>设定为none：文件将不被检索，且页面上的链接不可以被查询； </p>

<p>设定为index：文件将被检索； </p>

<p>设定为follow：页面上的链接可以被查询； </p>

<p>设定为noindex：文件将不被检索，但页面上的链接可以被查询； </p>

<p>设定为nofollow：文件将不被检索，页面上的链接可以被查询。 </p>

<p>http-equiv属性 </p>

<p>1、<meta http-equiv="Content-Type" contect="text/html";charset=gb_2312-80"> </p>

<p>和 <meta http-equiv="Content-Language" contect="zh-CN">用以说明主页制作所使用的文字以及语言； </p>

<p>又如英文是ISO-8859-1字符集，还有BIG5、utf-8、shift-Jis、Euc、Koi8-2等字符集； </p>

<p>2、<meta http-equiv="Refresh" contect="n;url=http://yourlink">定时让网页在指定的时间n内，跳转到页面http;//yourlink； </p>

<p>3、<meta http-equiv="Expires" contect="Mon,12 May 2001 00:20:00 GMT">可以用于设定网页的到期时间，一旦过期则必须到服务器上重新调用。需要注意的是必须使用GMT时间格式； </p>

<p>4、<meta http-equiv="Pragma" contect="no-cache">是用于设定禁止浏览器从本地机的缓存中调阅页面内容，设定后一旦离开网页就无法从Cache中再调出； </p>

<p>5、<meta http-equiv="set-cookie" contect="Mon,12 May 2001 00:20:00 GMT">cookie设定，如果网页过期，存盘的cookie将被删除。需要注意的也是必须使用GMT时间格式； </p>

<p>6、<meta http-equiv="Pics-label" contect="">网页等级评定，在IE的internet选项中有一项内容设置，可以防止浏览一些受限制的网站，而网站的限制级别就是通过meta属性来设置的； </p>

<p>7、<meta http-equiv="windows-Target" contect="_top">强制页面在当前窗口中以独立页面显示，可以防止自己的网页被别人当作一个frame页调用； </p>

<p>8、<meta http-equiv="Page-Enter" contect="revealTrans(duration=10,transtion= </p>

<p>50)">和<meta http-equiv="Page-Exit" </p>

<p>contect="revealTrans(duration=20，transtion </p>

<p>=6)">设定进入和离开页面时的特殊效果，这个功能即FrontPage中的"格式/网页过渡"，不过所加的页面不能够是一个frame页面。 </p>

<p>以上是常用的几个meta属性，有个人主页的朋友不妨在你的主页中加上它，效果可是不一样的哦。<br />
</p>]]>

</content>
</entry>
<entry>
<title>网页设计八种陋习</title>
<link rel="alternate" type="text/html" href="http://www.qqwm.com/weblog/archives/2004/08/ceeeceae.html" />
<modified>2004-08-06T16:59:32Z</modified>
<issued>2004-08-06T16:59:01Z</issued>
<id>tag:www.qqwm.com,2004:/weblog//1.60</id>
<created>2004-08-06T16:59:01Z</created>
<summary type="text/plain">　　 使用“ALT=&quot;为图像加入交互文本是一个好习惯，因为并不是所有的人都打开图像载入开关的，这时候这些交互文本给了用户一个有用的提示，特别是一些连接。但有部分网页制作者为图像加入了很长的交互文本，当用户载入图像时，这并不影响结果；但如果用户不载入图像，浏览器就会将所有的文本都显示出来，以致超出了它本来的宽度、或高度，对网页原来的排版影响很大。 　　 例如广州市某免费个人主页提供商的网页，我开始在关闭图像载入的情况下访问，结果该网页乱七八糟，而且需要使用滚动条才能全部浏览，每个文字连接都被前面的图像逼得排成两行，很不顺眼！后来我打开图像载入再去访问该站时，发现网页原来很整齐。那些用文件名和长度作为交互文本的图像只是一些长度、宽度都很小的装饰图案，但因为交互文本太长了，所以才造成了混乱！ 　　 不要将连接全部摆在图像中 　　 以往的网页中的连接都是文字，而且用下划线以资识别。但不久人们就讨厌了这些文字连接，于是都采用了图像连接。后来，更加嫌一个图像一个连接太麻烦了，于是将所有的连接到摆进了一个图像中去。但与上忌情况一样，不是所有的人都打开图像载入，如果你把所有的连接到摆在图像中去，而没有任何同样功能的文字连接的话，用户也许会很不知所措。 　　 某网上男孩子的网页，可能是考虑到这个情况，于是把包含在图像中的连接作为交互文本列了出来———呀！足有1000多像素的宽度。结果我没有用鼠标去“探索”———其实可以用TAB键去寻找这些连接———而是退了出来。与其怕部分用户望而止步写了那么多的交互文本，为什么就不可以增加一些同样目的的文字连接呢？...</summary>
<author>
<name>qqwm</name>
<url>http://www.qqwm.com</url>
<email>qqwm@qqwm.com</email>
</author>
<dc:subject>HTML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.qqwm.com/weblog/">
<![CDATA[<p>　　 使用“ALT="为图像加入交互文本是一个好习惯，因为并不是所有的人都打开图像载入开关的，这时候这些交互文本给了用户一个有用的提示，特别是一些连接。但有部分网页制作者为图像加入了很长的交互文本，当用户载入图像时，这并不影响结果；但如果用户不载入图像，浏览器就会将所有的文本都显示出来，以致超出了它本来的宽度、或高度，对网页原来的排版影响很大。 <br />
　　 例如广州市某免费个人主页提供商的网页，我开始在关闭图像载入的情况下访问，结果该网页乱七八糟，而且需要使用滚动条才能全部浏览，每个文字连接都被前面的图像逼得排成两行，很不顺眼！后来我打开图像载入再去访问该站时，发现网页原来很整齐。那些用文件名和长度作为交互文本的图像只是一些长度、宽度都很小的装饰图案，但因为交互文本太长了，所以才造成了混乱！ <br />
　　 不要将连接全部摆在图像中 <br />
　　 以往的网页中的连接都是文字，而且用下划线以资识别。但不久人们就讨厌了这些文字连接，于是都采用了图像连接。后来，更加嫌一个图像一个连接太麻烦了，于是将所有的连接到摆进了一个图像中去。但与上忌情况一样，不是所有的人都打开图像载入，如果你把所有的连接到摆在图像中去，而没有任何同样功能的文字连接的话，用户也许会很不知所措。 <br />
　　 某网上男孩子的网页，可能是考虑到这个情况，于是把包含在图像中的连接作为交互文本列了出来———呀！足有1000多像素的宽度。结果我没有用鼠标去“探索”———其实可以用TAB键去寻找这些连接———而是退了出来。与其怕部分用户望而止步写了那么多的交互文本，为什么就不可以增加一些同样目的的文字连接呢？ <br />
　　 不要使用自动滚动 <br />
　　 曾经到过一个内容“丰富”的网页，它几乎使用了所有曾经在《中国计算机报》中出现过的网页制作技巧：现在的时间、访问了的时间、等等。不过有一个不是使用得很好的，就是窗口的自动滚动。我只是想发个邮件给网页的主人，但我却无法使滚动条停下来让我点击连接，于是我花了很久才“命中”窗口中的E－mail连接———真后悔军训的时候没有练好射击！也许自动滚动可以炫耀一下本事，但就没有什么实际价值了。用户有鼠标，可以自己移动滚动条，网页制作者们可以少操心。 <br />
　　 不要用延时效果的JavaScript <br />
　　 现在的网页制作者为了使网页更加具有影响力，都疯狂地加入JavaScript。以现在的猫奔跑的速度而言，这些脚本也算不了什么，用户不会介意。但是，如果这些脚本可能导致延时的话，用户的态度就不同了。因为这些延时不会因为猫的快慢而改变，任何用户都必须望着屏幕上的“杂耍”完了才可以继续。头一两次还会觉得：WELL，棒极了！但后来，……某个国人网页的首页在载入时窗口的底色———窗口里面没有任何内容———由白色逐渐变成黑色，整个过程耗费了几秒，嘿！别小看这几秒，我能检查了全部的邮箱了！ <br />
　　 不要依赖浏览器 <br />
　　 唉！其实留意《中国计算机报》的话，应该看过这类的警告。但事实上，太多的网站首页中加入了“请在123＊456分辨率下使用789浏览器浏览本网站”的文字。我是安装了IE、NC、和Opera，因为我要制作网页，需要它们来检验网页的在这些浏览器下的可读性。但一般用户不会安装那么多的浏览器，更加不会牢记着哪个网站需要用哪个浏览器浏览。 <br />
　　 网页设计是一门艺术，一门大众（流行）艺术！就好比音乐，只使用一种乐器、没有歌声，当然也会有人喜欢，但是流行音乐更多的是采用各种乐器，加上歌手的歌声，这样才会被更加多的普罗大众所接受，对吗？ <br />
　　 也许不可能让网页在使用所有的浏览器浏览都有一样的效果，但尽量地去达到该目的，会让网页在这个浏览器下有这样的特色、在另一个浏览器下又有不同的特色，这是网页制作者的工作，不是吗？ <br />
　　 不要滥用留言簿 <br />
　　 别误会，虽然我的个人网页由于服务器的问题不能使用留言簿，但我绝对不是妒忌！那次在某个网友的网页上留言，提交之后发现我的留言和个人的部分资料立即送了上留言网页，和其他以前的留言一起展示出来。首先，我的个人资料之所以告诉你是因为想与你交个朋友，但未经任何提示的情况下就全部摆了上网，好象不是很友善。其次，更重要的是，我在该留言网页上发现了某个人的言论似乎很偏激，有反革命嫌疑———这样做是很危险的！你的网页有没有违法成分你自己可以控制，但其他访问者的言论是你所难以估计的，万一被其他别有居心的人利用来进行反动宣传，这样你岂不成了“同伙”！ <br />
　　 有鉴于此，我奉劝所有使用留言簿的网友，慎之又慎啊！ <br />
　　 不要忘记版权 <br />
　　 现在，网上的侵犯知识产权问题非常猖獗，某N字头免费个人网页提供商上的网页尤其严重———甚至有盗版光盘贩卖呢！为此一些新的免费个人网页提供商就要求用户在申请时提交详细的、真实的个人资料，以防备不可预计的事情发生。 <br />
　　 不少的网友都很轻视知识产权，觉得自己是个人，大公司不会计较的。但，《中华人民共和国计算机信息网络国际联网安全保护管理办法》中第四条规定“任何单位和个人不得利用国际联网危害国家安全、泄露国家秘密，不得侵犯国家的、社会的、集体的利益和公民的合法权益，不得从事违法犯罪活动。”所以，如果你的网页需要引用别人的东西的话，要么你就和他联系一下，征求意见；要么就在明显的位置注明其版权归属。这并非多余，这是你的网页“长寿”的秘方！ <br />
　　 当然，如果是你自己制作的图像或自己撰写的文章，你绝对有权声明版权归你自己所有！ <br />
　　 不要懒于更新 <br />
　　 某个N字头的个人网页聚居地上有很多的网页都是很久前建立而至今没有更新过的，姑且不说这是浪费公用资源的行为，访问过这些网页的人看见网页主人如此懒惰，你说他还会再去访问吗？谁能确定下次访问不会又是这般模样呢？因特网上的资源如此浩瀚，谁会去访问一个“从”不更新的网页呢？ <br />
　　 我诚意地奉劝那些“霸占”了公用的个人网页存放地方的人，如果你们真的那么忙，为何不让出空间，给新的网友更多发展的机会呢？ </p>

<p>摘自--网页制作学习园地 <br />
</p>]]>

</content>
</entry>
<entry>
<title>网页色彩搭配的设计艺术</title>
<link rel="alternate" type="text/html" href="http://www.qqwm.com/weblog/archives/2004/08/ceeeceee.html" />
<modified>2004-08-06T16:57:22Z</modified>
<issued>2004-08-06T16:56:23Z</issued>
<id>tag:www.qqwm.com,2004:/weblog//1.59</id>
<created>2004-08-06T16:56:23Z</created>
<summary type="text/plain">打开一个网站，给用户留下第一印象的既不是网站丰富的内容，也不是网站合理的版面布局，而是网站的色彩。色彩对人的视觉效果非常明显，一个网站设计成功与否，在某种程度上取决于设计者对色彩的运用和搭配。因为网页设计属于一种平面效果设计，在排除立体图形、动画效果之外，在平面图上，色彩的冲击力是最强的，它很容易给用户留下深刻的印象。因此，在设计网页时，我们必须要高度重视色彩的搭配。 一、色彩的基础知识 色彩五颜六色、千变万化，我们平时所看到的白色光，经过分析在色带上可以看到，它事实上包括红、橙、黄、绿、青、蓝、紫等七色，各颜色间自然过渡。其中，红、黄、蓝是三原色，三原色通过不同比例的混合可以得到各种颜色。色彩有冷暖色之分，冷色 ( 如蓝色 ) 给人的感觉是安静、冰冷；而暖色 ( 如红色 )...</summary>
<author>
<name>qqwm</name>
<url>http://www.qqwm.com</url>
<email>qqwm@qqwm.com</email>
</author>
<dc:subject>HTML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.qqwm.com/weblog/">
<![CDATA[<p>打开一个网站，给用户留下第一印象的既不是网站丰富的内容，也不是网站合理的版面布局，而是网站的色彩。色彩对人的视觉效果非常明显，一个网站设计成功与否，在某种程度上取决于设计者对色彩的运用和搭配。因为网页设计属于一种平面效果设计，在排除立体图形、动画效果之外，在平面图上，色彩的冲击力是最强的，它很容易给用户留下深刻的印象。因此，在设计网页时，我们必须要高度重视色彩的搭配。 <br />
  <br />
  <br />
  一、色彩的基础知识 <br />
  <br />
  色彩五颜六色、千变万化，我们平时所看到的白色光，经过分析在色带上可以看到，它事实上包括红、橙、黄、绿、青、蓝、紫等七色，各颜色间自然过渡。其中，红、黄、蓝是三原色，三原色通过不同比例的混合可以得到各种颜色。色彩有冷暖色之分，冷色 ( 如蓝色 ) 给人的感觉是安静、冰冷；而暖色 ( 如红色 ) 给人的感觉是热烈、火热。冷暖色的巧妙运用可以让网站产生意想不到的效果。 <br />
  <br />
  色彩与人的心理感觉和情绪也有一定的关系，利用这一点可以在设计网页时形成自己独特的色彩效果，给浏览者留下深刻的印象。一般情况下，各种色彩给人的感觉是： <br />
  <br />
  红色代表热情、活泼、热闹、温暖、幸福、吉祥 <br />
  <br />
  橙色代表光明、华丽、兴奋、甜蜜、快乐 <br />
  <br />
  黄色代表明朗、愉快、高贵、希望 <br />
  <br />
  绿色代表新鲜、平静、和平、柔和、安逸、青春 <br />
  <br />
  蓝色代表深远、永恒、沉静、理智、诚实、寒冷 <br />
  <br />
  紫色代表优雅、高贵、魅力、自傲 <br />
  <br />
  白色代表纯洁、纯真、朴素、神圣、明快 <br />
  <br />
  灰色代表忧郁、消极、谦虚、平凡、沉默、中庸、寂寞 <br />
  <br />
  黑色代表崇高、坚实、严肃、刚健、粗莽 <br />
  <br />
  二、色彩搭配的原则 <br />
  <br />
  色彩搭配既是一项技术性工作，同时它也是一项艺术性很强的工作，因此，设计者在设计网页时除了考虑网站本身的特点外，还要遵循一定的艺术规律，从而设计出色彩鲜明、性格独特的网站。 <br />
  <br />
 1. 特色鲜明 <br />
  <br />
  一个网站的用色必须要有自己独特的风格，这样才能显得个性鲜明，给浏览者留下深刻的印象。 <br />
  <br />
 2. 搭配合理 <br />
  <br />
  网页设计虽然属于平面设计的范畴，但它又与其它平面设计不同，它在遵从艺术规律的同时，还考虑人的生理特点，色彩搭配一定要合理，给人一种和谐、愉快的感觉，避免采用纯度很高的单一色彩，这样容易造成视觉疲劳。   </p>

<p> 3. 讲究艺术性 <br />
  <br />
  网站设计也是一种艺术活动，因此它必须遵循艺术规律，在考虑到网站本身特点的同时，按照内容决定形式的原则，大胆进行艺术创新，设计出既符合网站要求，又有一定艺术特色的网站。 <br />
  <br />
  三、色彩搭配要注意的问题 <br />
  <br />
 1. 使用单色 <br />
  <br />
  尽管网站设计要避免采用单一色彩，以免产生单调的感觉，但通过调整色彩的饱和度和透明度也可以产生变化，使网站避免单调。 <br />
  <br />
 2. 使用邻近色 <br />
  <br />
  所谓邻近色，就是在色带上相邻近的颜色，例如绿色和蓝色，红色和黄色就互为邻近色。采用邻近色设计网页可以使网页避免色彩杂乱，易于达到页面的和谐统一。 <br />
  <br />
 3. 使用对比色 <br />
  <br />
  对比色可以突出重点，产生了强烈的视觉效果，通过合理使用对比色能够使网站特色鲜明、重点突出。在设计时一般以一种颜色为主色调，对比色作为点缀，可以起到画龙点睛的作用。 <br />
  <br />
 4. 黑色的使用 <br />
  <br />
  黑色是一种特殊的颜色，如果使用恰当，设计合理，往往产生很强烈的艺术效果，黑色一般用来作背景色，与其它纯度色彩搭配使用。 <br />
  <br />
 5. 背景色的使用 <br />
  <br />
  背景色一般采用素淡清雅的色彩，避免采用花纹复杂的图片和纯度很高的色彩作为背景色，同时背景色要与文字的色彩对比强烈一些。 <br />
  <br />
 6. 色彩的数量 <br />
  <br />
  一般初学者在设计网页时往往使用多种颜色，使网页变得很 “ 花 ” ，缺乏统一和协调，表面上看起来很花哨，但缺乏内在的美感。事实上，网站用色并不是越多越好，一般控制在三种色彩以内，通过调整色彩的各种属性来产生变化。 </p>

<p><br />
---- <br />
欢迎来我的小站，有不错的音乐和特效呀，值得初学者借监。 </p>]]>

</content>
</entry>
<entry>
<title>构成网页的基本元素</title>
<link rel="alternate" type="text/html" href="http://www.qqwm.com/weblog/archives/2004/08/cecc.html" />
<modified>2004-08-06T16:51:43Z</modified>
<issued>2004-08-06T16:49:58Z</issued>
<id>tag:www.qqwm.com,2004:/weblog//1.58</id>
<created>2004-08-06T16:49:58Z</created>
<summary type="text/plain"><![CDATA[2.1标题(TITLE) 　　Title元素是文件头中唯一一个必须出现的元素，它也只能出现在文件头中。title元素的格式为： 　　&lt;title&gt;文件标题&lt;/title&gt; 　　title标明该html文件的标题，是对文件内容的概括。一个好的标题应该能使读者从中判断出该文件的大概内容。文件的标题一般不会显示在文本窗口中，而以窗口的名称显示出来。除了标识窗口外，当将某一 homepage 存入书签或文件时，title还用作书签名或缺省的文件名。 　　title的长度没有限制，但过长的标题会导致折行，一般情况下它的长度不应超过64个字符。由于title的作用是标明文件内容，所以太短的title也是不可取的，比如：introduction 这个标题，读者不可能根据它判断出本文介绍的是什么。一个好的例子是： 　　&lt;title&gt;　An Introduction...]]></summary>
<author>
<name>qqwm</name>
<url>http://www.qqwm.com</url>
<email>qqwm@qqwm.com</email>
</author>
<dc:subject>HTML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.qqwm.com/weblog/">
<![CDATA[<p>2.1<font color="#008000">标题(TITLE)</font><a name="title"></a><br />
<p>　　Title元素是文件头中唯一一个必须出现的元素，它也只能出现在文件头中。title元素的格式为：</p><br />
    <p>　　&lt;title&gt;文件标题&lt;/title&gt;</p><br />
    <p>　　title标明该html文件的标题，是对文件内容的概括。一个好的标题应该能使读者从中判断出该文件的大概内容。文件的标题一般不会显示在文本窗口中，而以窗口的名称显示出来。除了标识窗口外，当将某一 <br />
    homepage 存入书签或文件时，title还用作书签名或缺省的文件名。</p><br />
    <p>　　title的长度没有限制，但过长的标题会导致折行，一般情况下它的长度不应超过64个字符。由于title的作用是标明文件内容，所以太短的title也是不可取的，比如：introduction <br />
    这个标题，读者不可能根据它判断出本文介绍的是什么。一个好的例子是：</p><br />
    <p>　　&lt;title&gt;　An Introduction to HTML &lt;/title&gt;</p><br />
    <p>　　在头元素中还可以出现其他元素，如&lt;isindex&gt;，&lt;meta&gt;等等。这些元素都不是必须的，而且也不常用。 <br />
    这些元素的用法和它们的含义可以参考有关文献。</p><br />
    <blockquote><br />
      <p>下面是一个最简单的html 文件<br><br />
      &lt;html&gt;<br><br />
      &lt;title&gt;the simplest html file&lt;/title&gt;<br><br />
      This is my first html file.<br><br />
      &lt;/html&gt;</p><br />
    </blockquote><br />
    <p>　<font color="#0000A0"> </font><font color="#400040">§2.2 </font><font color="#0000A0">标题(hn)</font><a name="hn"></a></p><br />
    <p>　　标题元素有6种，分别为h1, h2,…h6，用于表示文章中的各种标题。标题号越小，字体越大。一般情况下，浏览器对标题作如下解释：</p><br />
    <p>　　h1 黑体，特大字体，居中，上下各有两行空行。<br><br />
    　　h2 黑体，大字体，上下各有一到两行空行<br><br />
    　　h3 黑体(斜体)，大字体，左端微缩进，上下空行<br><br />
    　　h4 黑体，普通字体，比h3更多缩进，上边一空行<br><br />
    　　h5 黑体(斜体)，与h4相同缩进，上边一空行<br><br />
    　　h6 黑体，与正文有相同缩进，上边一空行</p><br />
    <p>　　Netscape 对hn的解释为，一律黑体，字体越来越小。</p><br />
    <p>　　hn可以有对齐属性，align＝#，#表示</p><br />
    <blockquote><br />
      <p>left 标题居左<br><br />
      center 标题居中<br><br />
      right 标题居右</p><br />
    </blockquote><br />
    <p>　　例: &lt;h2 align=center&gt;Chapter 2 &lt;/h2&gt;</p><br />
    <blockquote><br />
      <h1><tt><font size="+0">&lt;h1&gt;标题元素！&lt;/h1&gt; </font></tt>标题元素！</h1><br />
      <h2><tt><font size="+0">&lt;h2&gt;标题元素！&lt;/h2&gt; </font></tt>标题元素！</h2><br />
      <h3><tt><font size="+0">&lt;h3&gt;标题元素！&lt;/h3&gt; </font></tt>标题元素！</h3><br />
      <h4><tt><font size="+0">&lt;h4&gt;标题元素！&lt;/h4&gt; </font></tt>标题元素！</h4><br />
      <h5><tt><font size="+0">&lt;h5&gt;标题元素！&lt;/h5&gt; </font></tt>标题元素！</h5><br />
      <h6><tt><font size="+0">&lt;h6&gt;标题元素！&lt;/h6&gt; </font></tt>标题元素！</h6><br />
    </blockquote><br />
    <p>　<font color="#0000A0"> </font><font color="#400040">§2.3 </font><font color="#FF8000">分段&lt;P&gt;</font><a name="p"></a></p><br />
    <p>　　html的浏览器是基于窗口的，用户可以随时改变显示区的大小，所以html将多个空格以及回车等效为一个空格，这是和绝大多数字处理器不同的。html的分段完全依赖于分段元素&lt;P&gt;。比如下面两段源文件有相同的输出。</p><br />
    <blockquote><br />
      <p>&lt;h2&gt;This is a level Two Heading &lt;/h2&gt;<br><br />
      paragraphy one &lt;p&gt;paragraph two &lt;p&gt;<br><br />
      … … … … … … … … … …<br><br />
      &lt;h2&gt;This Is a Level Two Heading&lt;/h2&gt;<br><br />
      paragraph one &lt;p&gt;<br><br />
      paragraph Two &lt;p&gt;</p><br />
    </blockquote><br />
    <p>　　&lt;p&gt;也可以有多种属性，比较常用的属性是：</p><br />
    <p>　　aligh＝# #可以是left,center,right,其含义同上文。</p><br />
    <p>　　例　&lt;p align=center&gt;This is a centered paragraph &lt;／p&gt;</p><br />
    <p>　　当 html文件中有图形，图形可能占据了窗口的一端，图形的周围可能还有较大的空白区。这时，不带clear属性的&lt;p&gt;可能会使文章的内容显示在该空白区内。为确保下一段内容显示在图形的下方，可使用clear属性。clear属性的含义为：</p><br />
    <blockquote><br />
      <p>clear=left 下一段显示在左边界处空白的区域<br><br />
      clear=right 下一段显示在右边界处空白的区域<br><br />
      clear=all 下一段的左右两边都不许有别的内容</p><br />
    </blockquote><br />
    <p>　　<font color="#400040">§2.4 </font><font color="#FF0080">列表List</font><a name="list"></a></p><br />
    <p>　　列表用于列举事实，常用的列表有3种格式，即无序列表(unordered <br />
    List)，有序列表(ordered list)和定义列表(definition list)</p><br />
    <p>　<font color="#0000A0"> </font>2.4.1 <font color="#008000">无序列表(ul)</font></p><br />
    <p>　　无序列表用(ul)开始，每一个列表条目用&lt;li&gt;引导，最后是&lt;/ul&gt;，注意列表条目不需要结尾标注&lt;/Li&gt;。输出时每一列表条目缩进，并且以黑点标示。</p><br />
    <blockquote><br />
      <p>例 ：<br><br />
      　&lt;ul&gt;<br><br />
      　&lt;li&gt;Today<br><br />
      　&lt;li&gt;Tommorow<br><br />
      　&lt;/ul&gt;<br><br />
      输出为<br><br />
      　●Today<br><br />
      　●Tommorow</p><br />
    </blockquote><br />
    <p>　 <font color="#400040">2.4.2 </font><font color="#FF8040">有序列表&lt;ol&gt;</font></p><br />
    <p>　　有序列表与无序列表相比，只是在输出时列表条目用数字标示，下面是一个例子及其输出：</p><br />
    <p>　　例：<br><br />
    　　　&lt;ol&gt;<br><br />
    　　　&lt;li&gt;Today<br><br />
    　　　&lt;li&gt;Tommorow<br><br />
    　　　&lt;/ol&gt;<br><br />
    　　输出为：<br><br />
    　　　1.Today<br><br />
    　　　2.Tommorow</p><br />
    <p>　　<font color="#400040">2.4.3 </font><font color="#8080FF">定义列表&lt;dl&gt;</font></p><br />
    <p>　　定义列表用于对列表条目进行简短说明的场合，用&lt;dl&gt;开始，列表条目用&lt;dt&gt;引导，它的说明用&lt;dd&gt;引导。</p><br />
    <blockquote><br />
      <p>&lt;dl&gt;<br><br />
      &lt;dt&gt;Item 1<br><br />
      &lt;dd&gt;The definition of item 1<br><br />
      &lt;dt&gt;Item 2<br><br />
      &lt;dd&gt;Definition or explaination of item 2<br><br />
      &lt;/dl&gt;</p><br />
      <p>输出为：<br><br />
      Item 1<br><br />
      　　The definition of item 1<br><br />
      Item 2<br><br />
      　　Definiton or explaination of item 2</p><br />
    </blockquote><br />
    <p>　<font color="#0000A0"> </font><font color="#400040">2.4.4</font><font color="#008080"> 改变条目标记</font></p><br />
    <p>　　<font color="#FF8040">1.改变无序列表条目标记</font></p><br />
    <p>　　无序列表输出时，每一条目前都有一个黑色圆点，用户可以用type序性修改条目的标记。type可以是disc <br />
    实心圆点　cirde圆圈 square实心方点&lt;ul&gt;</p><br />
    <blockquote><br />
      <p>&lt;li type=disc&gt;ONE<br><br />
      &lt;li type=circle&gt;TWO<br><br />
      &lt;li type=square&gt;THREE<br><br />
      &lt;/ul&gt;</p><br />
      <p>输出为：<br><br />
      ●ONE<br><br />
      ○TWO<br><br />
      ■THREE</p><br />
    </blockquote><br />
    <p>　　<font color="#FF8000">2.改变有序列表条目标记</font></p><br />
    <p>　　有序列表条目标记的缺省值是阿拉伯数字，可以用type属性修改。方法为：</p><br />
    <blockquote><br />
      <p>&lt;li type=#&gt;</p><br />
      <p>#=A, 大写字母<br><br />
      a, 小写字母<br><br />
      I, 大写罗马数字<br><br />
      i, 小写罗马数字<br><br />
      l, 缺省,阿拉伯数字<br><br />
      &lt;ol&gt;&lt;li type=A&gt;ONE-ONE<br><br />
      &lt;li&gt;ONE-TWO&lt;/ol&gt;<br><br />
      <strong>输出为：<br><br />
      </strong>A.ONE-ONE<br><br />
      B.ONE-TWO</p><br />
      <p>&lt;ol&gt;&lt;li type=a&gt;ONE-ONE<br><br />
      &lt;li&gt;ONE－TWO&lt;/ol&gt;<br><br />
      <strong>输出为：<br><br />
      </strong>a.ONE-ONE<br><br />
      b.ONE-TWO</p><br />
      <p>&lt;ol&gt;&lt;li type=I&gt;ONE-ONE<br><br />
      &lt;li&gt;ONE=TWO&lt;／ol&gt;<br><br />
      <strong>输出为：<br><br />
      </strong>Ⅰ.ONE-ONE<br><br />
      Ⅱ.ONE-TWO</p><br />
      <p>&lt;ol&gt;&lt;li type=i&gt;ONE-ONE<br><br />
      &lt;li&gt;ONE-TWO&lt;／ol&gt;<br><br />
      <strong>输出为：<br><br />
      </strong>i.ONE-ONE<br><br />
      ii.ONE-TWO</p><br />
      <p>&lt;ol&gt;&lt;li type=1&gt;ONE-ONE<br><br />
      &lt;li&gt;ONE-TWO&lt;/ol&gt;<br><br />
      <strong>输出为：<br><br />
      </strong>1.ONE-ONE<br><br />
      2.ONE-TWO</p><br />
    </blockquote><br />
    <p>　 <font color="#FF8040">3.改变有序列表条目的起始数字</font></p><br />
    <p>　　有序列表的条目数字在缺省情况下是从1开始的，用start属性可修改这一值。方法为&lt;ol <br />
    start=#&gt; #是条目起始号</p><br />
    <blockquote><br />
      <p>&lt;ol start=5&gt;<br><br />
      &lt;li type=A&gt;ONE-ONE<br><br />
      &lt;li&gt;ONE-TWO<br><br />
      &lt;ol start=10&gt;<br><br />
      &lt;li&gt;TWO-ONE<br><br />
      &lt;li type=i&gt;TWO-ONE<br><br />
      &lt;/ol&gt;&lt;/ol&gt;</p><br />
      <p>输出为：<br><br />
      E.ONE-ONE<br><br />
      F.ONE-TWO<br><br />
      10.TWO-ONE<br><br />
      xi.TWO-TWO</p><br />
    </blockquote><br />
    <p>　　2.4.5 <font color="#0080FF">列表的嵌套</font></p><br />
    <p>　　各种列表可以相互嵌套，每一个列表条目都可以是一个单独的列表。每嵌套一层，列表条目的输出就会有更大的缩进。请参照上面的例子。</p><br />
    <p>　　 §2.5 <font color="#FF0000">预格式化文本&lt;pre&gt;</font><a name="pre"></a></p><br />
    <p>　　html的输出是基于窗口的，因而html文件在输出时都是要重新格式化的，若确实不需要重新格式化的内容，可以用&lt;pre&gt;…&lt;／pre&gt;通知浏览器。浏览器在输出时，对这部分内容几乎不做修改地输出，输出的字体电传打字机字体。早期的html规范规定在预格式化区内不能出现格式化输出的元素。如hn等，Netscape在遇到预格式化元素时，允许其中有其他元素。</p><br />
    <blockquote><br />
      <p>&lt;pre&gt;<br><br />
      please use your card.<br><br />
      VISA Master<br><br />
      &lt;b&gt;Here is an order form.&lt;/b&gt;<br><br />
      &lt;ul&gt;&lt;li&gt;Fax<br><br />
      &lt;li&gt;Air Mail &lt;/ul&gt;<br><br />
      &lt;/pre&gt;</p><br />
      <p>输出为：<br><br />
      please use your card<br><br />
      VISA Master<br><br />
      Here is an order form.<br><br />
      ●Fax<br><br />
      ●Air Mail</p><br />
    </blockquote><br />
    <p>　　§2.6 <font color="#8000FF">块引用&lt;<tt>BLOCKQUOTE</tt>&gt;</font><a name="block"></a></p><br />
    <p>　　块引用用<tt>&lt;BLOCKQUOTE&gt;</tt>标注，使屏幕显示单独的一块。大多数的浏览器采用缩进编排的方式，使这一块和其他部分的文本区分开来，上下各有一空行。 <br />
    </p><br />
    <blockquote><br />
      <h3><small>块引用(Blockquote) &lt;blockquote&gt;...&lt;/blockquote&gt;</small></h3><br />
    </blockquote><br />
    <dl><br />
      <dd><tt>Her Song:<br><br />
        &lt;blockquote&gt;<br><br />
        When I was young, I listened to the radio <br><br />
        waiting for my favorite songs....<br><br />
        &lt;/blockquote&gt; </tt></dd><br />
    </dl><br />
    <blockquote><br />
      <p>Her Song: </p><br />
      <blockquote><br />
        <p>When I was young, I listened to the radio waiting for my favorite songs.... </p><br />
      </blockquote><br />
    </blockquote><br />
    <p>　　§2.7 <font color="#008000">居中</font><a name="center"></a></p><br />
    <p>　　很多元素都有对齐方式属性，如hn 、p等。也可以直接用居中标注&lt;center&gt;…&lt;／center&gt;</p><br />
    <blockquote><br />
      <p>&lt;h3 align=center&gt;Wonderful!!&lt;/h3&gt;</p><br />
      <p>&lt;center&gt;This must be my dream.&lt;/center&gt;</p><br />
      <p align="left">输出为：</p><br />
      <h3 align="center">Wonderful!!</h3><br />
      <p align="center">This must be my dream. </p><br />
    </blockquote></p>]]>

</content>
</entry>

</feed>