PHP技术,Javasript在Web2.0下的灵活性,Jquery深入,Typo3 / Typolight CMS 内容管理系统使用和开发,Linux系统深入,Iphone技巧

2009-6-17 17:28
有些人一直没机会见,等有机会见了,却又犹豫了,相见不如不见。
有些事一直没机会做,等有机会了,却不想再做了。
有些话埋藏在心中好久,没机会说,等有机会说的时候,却说不出口了。
有些爱一直没机会爱,等有机会了,已经不爱了。
有些人很多机会相见的,却总找借口推脱,想见的时候已经没机会了。
有些话有很多机会说的,却想着以后再说,要说的时候,已经没机会了。
有些事有很多机会做的,却一天一天推迟,想做的时候却发现没机会了。
有些爱给了你很多机会,却不在意没在乎,想重视的时候已经没机会爱了。
人生有时候,总是很讽刺。
一转身可能就是一世。说好永远的,不知怎么就散了。
最后自己想来想去竟然也搞不清当初是什么原因分开彼此的。
然后,你忽然醒悟,感情原来是这么脆弱的。
经得起风雨,却经不起平凡;风雨同船,天晴便各自散了。
也许只是赌气,也许只是因为小小的事。
幻想着和好的甜蜜,或重逢时的拥抱,那个时候会是边流泪边捶打对方,还傻笑着。
该是多美的画面。
没想到的是,一别竟是一辈子了。
曾经相爱,现在已互不相干。
即使在同一个小小的城市,也不再相逢。
某一天某一刻,走在同一条街,也看不见对方。
先是感叹,后来是无奈。
也许你很幸福,因为找到另一个适合自己的人。
也许你不幸福,因为可能你这一生就只有那个人真正用心在你身上。
很久很久,没有对方的消息,也不再想起这个人,也不想再想起这些事。
有些事一直没机会做,等有机会了,却不想再做了。
有些话埋藏在心中好久,没机会说,等有机会说的时候,却说不出口了。
有些爱一直没机会爱,等有机会了,已经不爱了。
有些人很多机会相见的,却总找借口推脱,想见的时候已经没机会了。
有些话有很多机会说的,却想着以后再说,要说的时候,已经没机会了。
有些事有很多机会做的,却一天一天推迟,想做的时候却发现没机会了。
有些爱给了你很多机会,却不在意没在乎,想重视的时候已经没机会爱了。
人生有时候,总是很讽刺。
一转身可能就是一世。说好永远的,不知怎么就散了。
最后自己想来想去竟然也搞不清当初是什么原因分开彼此的。
然后,你忽然醒悟,感情原来是这么脆弱的。
经得起风雨,却经不起平凡;风雨同船,天晴便各自散了。
也许只是赌气,也许只是因为小小的事。
幻想着和好的甜蜜,或重逢时的拥抱,那个时候会是边流泪边捶打对方,还傻笑着。
该是多美的画面。
没想到的是,一别竟是一辈子了。
曾经相爱,现在已互不相干。
即使在同一个小小的城市,也不再相逢。
某一天某一刻,走在同一条街,也看不见对方。
先是感叹,后来是无奈。
也许你很幸福,因为找到另一个适合自己的人。
也许你不幸福,因为可能你这一生就只有那个人真正用心在你身上。
很久很久,没有对方的消息,也不再想起这个人,也不想再想起这些事。

2009-5-25 14:57
Deck / Card Elements
| Start tag | Purpose | WML |
|---|---|---|
| <access> | Defines information about the access control of a deck | 1.1 |
| <card> | Defines a card in a deck | 1.1 |
| <head> | Contains information about the document | 1.1 |
| <meta> | Defines meta information about the document | 1.1 |
| <template> | Defines a code template for all the cards in a deck | 1.1 |
| <wml> | Defines a WML deck (WML root) | 1.1 |
| <!--> | Defines a comment | 1.1 |
Text Elements
| Start tag | Purpose | WML |
|---|---|---|
| <br> | Defines a line break | 1.1 |
| <p> | Defines a paragraph | 1.1 |
| <table> | Defines a table | 1.1 |
| <td> | Defines a table cell (table data) | 1.1 |
| <tr> | Defines a table row | 1.1 |
Text Formatting Tags
| Start tag | Purpose | WML |
|---|---|---|
| <b> | Defines bold text | 1.1 |
| <big> | Defines big text | 1.1 |
| <em> | Defines emphasized text | 1.1 |
| <i> | Defines italic text | 1.1 |
| <small> | Defines small text | 1.1 |
| <strong> | Defines strong text | 1.1 |
| <u> | Defines underlined text | 1.1 |
Anchor Elements
| Start tag | Purpose | WML |
|---|---|---|
| <a> | Defines an anchor (a link) | 1.1 |
| <anchor> | Defines an anchor (a link) | 1.1 |
Image Elements
| Start tag | Purpose | WML |
|---|---|---|
| <img> | Defines an image | 1.1 |
Event Elements
| Start tag | Purpose | WML |
|---|---|---|
| <do> | Activates a task when the user clicks on a word/phrase on the screen | 1.1 |
| <onevent> | Contains code to be executed when one of the following events occurs: onenterbackward, onenterforward, onpick, ontimer | 1.1 |
| <postfield> | Contains information to be sent to the server along with a <go> tag | 1.1 |
Task Elements
| Start tag | Purpose | WML |
|---|---|---|
| <go> | Represents the action of switching to a new card | 1.1 |
| <noop> | Says that nothing should be done (noop stands for "no operation"). Used to override deck-level elements | 1.1 |
| <prev> | Represents the action of going back to the previous card | 1.1 |
| <refresh> | Refreshes some specified card variables. If any of the variables are shown on the screen, this task also refreshes the screen | 1.1 |
Input Elements
| Start tag | Purpose | WML |
|---|---|---|
| <fieldset> | Used to group together related elements in a card | 1.1 |
| <input> | Defines an input field (a text field where the user can enter some text) | 1.1 |
| <optgroup> | Defines an option group in a selectable list | 1.1 |
| <option> | Defines an option in a selectable list | 1.1 |
| <select> | Defines a selectable list | 1.1 |
Variable Elements
| Start tag | Purpose | WML |
|---|---|---|
| <setvar> | Sets a variable to a specified value in a <go>, <prev>, or <refresh> task | 1.1 |
| <timer> | Defines a card timer | 1.1 |
Character Entities
| Result | Description | Entity Name | Entity Number |
|---|---|---|---|
| & | ampersand | & | & |
| ' | apostrophe | ' | ' |
| > | greater-than | > | > |
| < | less-than | < | < |
| non-breaking space | |   | |
| " | quotation mark | " | " |
| | soft hyphen | ­ | ­ |
Server 端的设置
在这里,我们先用最为典型的IIS服务器作为例子:
为了使IIS支持WAP(WML)页面的发布,在IIS的Web站点的属性 / HTTP信息中设置WAP的MIME属性,添加如下的MIME类型:
扩展名 内容类型(MIME)
.wml text/vnd.wap.wml
.wbmp image/vnd.wap.wbmp
.wmlc application/vnd.wap.wmlc
.wmls text/vnd.wap.wmls
.wmlsc application/vnd.wap.wmlsc
重启 IIS 使其支持 WAP 页面的发布。
如果你使用的是 Apache 作为Web服务器的话,找到conf/httpd.conf这个配置文件,然后在里面添上MIME类型。在httpd.conf中加入如下几行:
AddType text/vnd.wap.wml .wml
AddType image/vnd.wap.wbmp .wbmp
AddType application/vnd.wap.wmlc .wmlc
AddType text/vnd.wap.wmls .wmls
AddType application/vnd.wap.wmlsc .wmlsc
重启 Apache Server 使其支持 WAP 页面的发布。
这样,你的Server就支持 WAP(WML) 站点的发布了。
配置Wap服务器
在设计WAP网页时,不论你使用的WAP开发工具是UP.SDK 或NOKIA WAP TOOKIT ,还是ERICSSON WAPIDE,你都必须进行WEB服务器设置,所以在此将常见的几种WEB服务器的设置介绍如下:
1、WINDOW server 平台的IIS
a、启动菜单->程序->管理工具 ->Internet 服务管理器
b、右击“Internet信息服务” 的子项计算机名,在快捷菜单上选择‘属性’
c、在属性页面的下部,“计算机mime映射”中有一个‘编辑(D)’按钮,单击此按钮,会出现文件类型界面
d、单击‘新增类型’按钮,然后在相关的扩展名栏中填写 .wml ,在内容类型(MIME)栏中填写 text/vnd.wap.wml
e、单击‘确定’按钮
f、重复c、d、e 三步,再增加其他的MIME类型。
2、Apache Web Server on Windows server OR Solaries OR LINUX OR OTHER UNIX
a、不管是NT 还是UNIX 或LINUX ,都是修改 Apache 安装目录下的conf/mime.types文件
b、在该文件中增加以下内容:
text/vnd.wap.wml .wml
image/vnd.wap.wbmp .wbmp
application/vnd.wap.wmlc .wmlc
text/vnd.wap.wmls .wmls
application/vnd.wap.wmlsc .wmlsc
c、存盘
d、重新启动APACHE
在这里,我们先用最为典型的IIS服务器作为例子:
为了使IIS支持WAP(WML)页面的发布,在IIS的Web站点的属性 / HTTP信息中设置WAP的MIME属性,添加如下的MIME类型:
扩展名 内容类型(MIME)
.wml text/vnd.wap.wml
.wbmp image/vnd.wap.wbmp
.wmlc application/vnd.wap.wmlc
.wmls text/vnd.wap.wmls
.wmlsc application/vnd.wap.wmlsc
重启 IIS 使其支持 WAP 页面的发布。
如果你使用的是 Apache 作为Web服务器的话,找到conf/httpd.conf这个配置文件,然后在里面添上MIME类型。在httpd.conf中加入如下几行:
AddType text/vnd.wap.wml .wml
AddType image/vnd.wap.wbmp .wbmp
AddType application/vnd.wap.wmlc .wmlc
AddType text/vnd.wap.wmls .wmls
AddType application/vnd.wap.wmlsc .wmlsc
重启 Apache Server 使其支持 WAP 页面的发布。
这样,你的Server就支持 WAP(WML) 站点的发布了。
配置Wap服务器
在设计WAP网页时,不论你使用的WAP开发工具是UP.SDK 或NOKIA WAP TOOKIT ,还是ERICSSON WAPIDE,你都必须进行WEB服务器设置,所以在此将常见的几种WEB服务器的设置介绍如下:
1、WINDOW server 平台的IIS
a、启动菜单->程序->管理工具 ->Internet 服务管理器
b、右击“Internet信息服务” 的子项计算机名,在快捷菜单上选择‘属性’
c、在属性页面的下部,“计算机mime映射”中有一个‘编辑(D)’按钮,单击此按钮,会出现文件类型界面
d、单击‘新增类型’按钮,然后在相关的扩展名栏中填写 .wml ,在内容类型(MIME)栏中填写 text/vnd.wap.wml
e、单击‘确定’按钮
f、重复c、d、e 三步,再增加其他的MIME类型。
2、Apache Web Server on Windows server OR Solaries OR LINUX OR OTHER UNIX
a、不管是NT 还是UNIX 或LINUX ,都是修改 Apache 安装目录下的conf/mime.types文件
b、在该文件中增加以下内容:
text/vnd.wap.wml .wml
image/vnd.wap.wbmp .wbmp
application/vnd.wap.wmlc .wmlc
text/vnd.wap.wmls .wmls
application/vnd.wap.wmlsc .wmlsc
c、存盘
d、重新启动APACHE

2009-4-28 17:44
Awstats是一套非常好用的免费的日志分析软件,他是用perl实现的,支持web log、ftp log和mail log;
而且它还能自动根据你浏览器的字符设置来选取语言(支持中文)。
但是缺省安装的话有个问题,就是用来搜索的关键字如果是中文的话显示出来是乱码的。
之所以搜索的关键字句会变成乱码的原因,主要是因为现在的搜索引擎都是使用UTF8,而Awstats是使用decodeUTFkeys这个plugin来处理搜索引擎的UTF8关键字,默认是没有打开的,所以在显示上会出现乱码。
要解决中文乱码问题,方法也很简单.
1) 修改配置文件awstats.xxx.conf
在配置文件中把decodeutfkeys这个plugin打开就可以了。在配置文件中找到:
#LoadPlugin="decodeutfkeys"
去掉前面的#就可以了。
不过打开这个plugin 需要perl模块儿Encode和URI::Escape的支持,一般情况下perl是默认支持的。
配置 awstats后,如果打开AWStats会显示:
Error: Plugin load for plugin ''decodeutfkeys'' failed with return code: Error: Can''t locate URI/Escape.pm in @INC (@INC contains: /usr/lib/perl5/5.8.7/i686-linux /usr/lib/perl5/5.8.7 /usr/lib/perl5/site_perl/5.8.7/i686-linux /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl . ./lib ./plugins) at (eval 4) line 1.
這是因為缺少 Perl 的 URI:Escape模块
2)下载安装URI:Escape模块
#wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/URI-1.37.tar.gz
解压缩文件
#tar zxvf URI-1.37.tar.gz
#cd URI-1.37
#perl Makefile.PL
#make
#make install
调试后一下,分析出来的搜索关键字就可以在IE中正常显示了,我试过在Firefox里还是不行。
而且它还能自动根据你浏览器的字符设置来选取语言(支持中文)。
但是缺省安装的话有个问题,就是用来搜索的关键字如果是中文的话显示出来是乱码的。
之所以搜索的关键字句会变成乱码的原因,主要是因为现在的搜索引擎都是使用UTF8,而Awstats是使用decodeUTFkeys这个plugin来处理搜索引擎的UTF8关键字,默认是没有打开的,所以在显示上会出现乱码。
要解决中文乱码问题,方法也很简单.
1) 修改配置文件awstats.xxx.conf
在配置文件中把decodeutfkeys这个plugin打开就可以了。在配置文件中找到:
#LoadPlugin="decodeutfkeys"
去掉前面的#就可以了。
不过打开这个plugin 需要perl模块儿Encode和URI::Escape的支持,一般情况下perl是默认支持的。
配置 awstats后,如果打开AWStats会显示:
Error: Plugin load for plugin ''decodeutfkeys'' failed with return code: Error: Can''t locate URI/Escape.pm in @INC (@INC contains: /usr/lib/perl5/5.8.7/i686-linux /usr/lib/perl5/5.8.7 /usr/lib/perl5/site_perl/5.8.7/i686-linux /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl . ./lib ./plugins) at (eval 4) line 1.
這是因為缺少 Perl 的 URI:Escape模块
2)下载安装URI:Escape模块
#wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/URI-1.37.tar.gz
解压缩文件
#tar zxvf URI-1.37.tar.gz
#cd URI-1.37
#perl Makefile.PL
#make
#make install
调试后一下,分析出来的搜索关键字就可以在IE中正常显示了,我试过在Firefox里还是不行。

2009-3-11 16:05
1.XHTML 1.0文件类别宣告的正确写法 (不可小写)
过度标准(Transitional)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
框架标准(Frameset)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
严格标准(Strict) 包含以上须注意的问题,还有其他更严格的标准
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
2.头文件问题
所有的网页头文件都一律都改为标准形式,写法如下:
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<meta http-equiv="content-language" content="zh-cn" />
<meta name="keywords" content="..." />
<meta name="description" content="..."/>
<title>...</title>
</head>
3.不允许使用target="_blank"
在HTML4.01可以使用target="_blank",但XHTML1.0是不被允许的.
我使用了一个HTML4.0的新属性:rel,这个属性用来说明链接和包含此链接页面的关系,以及链接打开的目标。
原来这样写的代码:<a xhref="document.html" target="_blank"> 打开一个新窗口</a>
现在要写成这样:<a xhref="document.html" rel="external">打开一个新窗口</a>
这是符合strict标准的方法。当然还必须配合一个javascript才有效。
javascript完整的代码JS如下:
function externallinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
anchor.target = "_blank";
}
}
window.onload = externallinks;
你可以把它保存成一个.js文件(比如external.js),然后通过外部联接方法调用:
<script type="text/javascript" xsrc="external.js"></script>
4.XHTML 1.0要求所有的标籤必须关闭
所有没有成对的空标籤必须以 />结尾
<p></p>和<a xhref="index.html"></a>这就是成对
错误 <br> <hr>
正确 <br /> <hr />
错误 <input type="text" name="name">
正确 <input type="text" name="name" />
错误 <meta ...>
正确 <meta ... />
错误 <link rel="stylesheet" type="text/css" xhref="style.css">
正确 <link rel="stylesheet" type="text/css" xhref="style.css" />
错误 <img xsrc="bg.gif" border="0" alt="说明文字">
正确 <img xsrc="bg.gif" border="0" alt="说明文字" />
5.所有标籤元素名称都使用小写
错误 <HTML> <TITLE> <HEAD> <BODY>
正确 <html> <title> <head> <body>
错误 <IMG xsrc="BG.GIF" BORDER="0" ALT="说明文字">
正确 <img xsrc="bg.gif" border="0" alt="说明文字" />
错误 <UL><LI></LI></UL>
正确 <ul><li></li></ul>
以上只是举例,是"所有"标签元素名称都必须是小写
6.同一个id选择器不可重复使用
一个网页中id="xx"同一个选择器不能重复使用,若需要重复请用class="xx"
7.标籤必须是一对
<p></p>
<span></span>
<div></div>
8.正确的标籤顺序
错误 <b><i>文字</b></i>
正确 <b><i>文字</i></b>
9.JavaScript写法
Javascript我们通常会写为
错误 <script language="javascript">
W3C标准必须为程式指定类型type=text/javascript,所以要写为
正确 <script type="text/javascript">
或者 <script language="javascript" type="text/javascript">
载入外部.js独立档案的写法
正确 <script type="text/javascript" xsrc="script.js"></script>
10.绝对不可省略双引号或单引号
错误 style=font-size:9pt
正确 style="font-size:9pt"
错误 <img xsrc=bg.gif width=140 height=30 alt=text />
正确 <img xsrc="bg.gif" width="140" height="30" alt="text" />
错误 <a xhref=home>text</a>
正确 <a xhref="home">text</a>
11.图片标籤加上文字说明alt="说明"
错误 <img xsrc="bg.gif" height="50" border="0" />
正确 <img xsrc="bg.gif" height="50" border="0" alt="说明文字" />
12.背景音乐不允许使用 bgsound 标签
我只好用JavaScript解决这个问题。javascript完整的代码如下:
<!-- Begin
var MSIE=navigator.userAgent.indexOf("MSIE");
var NETS=navigator.userAgent.indexOf("Netscape");
var OPER=navigator.userAgent.indexOf("Opera");
if((MSIE>-1) || (OPER>-1)) {
document.write("<BGSOUND xsrc=背景音乐地址 LOOP=INFINITE>");
} else {
document.write("<EMBED xsrc=背景音乐地址 AUTOSTART=TRUE ");
document.write("HIDDEN=true VOLUME=100 LOOP=TRUE>");
}
// end -->
你可以把它保存成一个.js文件(比如bjmusic.js),然后通过外部联接方法调用:
<script type="text/javascript" xsrc="bjmusic.js"></script>
13. <embed>标籤的争议
<embed>是Netscape的私有标籤,W3C 从HTML3.2 HTML 4.01 到 XHTML 1.0 中都没有这个标籤,所以使用<embed>的页面是不能通过标准测试。
W3C推荐使用 <object> 标籤,用<object>插入flash影片的代码可以写为:
<object type="application/x-shockwave-flash" data="index.swf" width="400" height="200">
<param name="movie" value="index.swf" />
</object>
但这样的写法可能IE5/IE6 Win浏览器版本会出现问题.
<embed>标籤因为广大的受到运用,不再标准范围引起很大的争议,想要解决这个问题,只能等IE浏览器对<object>有更好的支持或者W3C愿意收录<embed>标籤。
14. 不允许使用框架标签<IFRAME>
这次又要用JavaScript解决问题了。javascript完整的代码如下:
function ifr(url,w,h){document.write('<iframe id="ifr" name="ifr" width="'+w+'" height="'+h+'" border="0" frameborder="0" scrolling="no" xsrc="'+url+'"></iframe>');}
把它保存成一个.js文件(比如ifr.js),然后通过外部联接方法调用:
<script type="text/javascript" xsrc="ifr.js"></script>
在你需要插入框架的地方写以下代码即可:
<script type="text/javascript">ifr('需插入的网页地址','567','485');</script>
函数ifr()使用说明:ifr('这里写地址','这里写宽度','这里写长度',)
15.google广告问题
google广告的代码是不符合W3C标准的,我只好又把它转成JS调用,但GOOGLE政策里是写着不允许修改代码的,
关于这点我正在写信给GOOGLE询问中,应该很快会有答案。
我的JS文件(google.js)代码如下:
document.writeln("<script type=\"text\/javascript\"><!--");
document.writeln("google_ad_client = \"pub-0538745384335317\";");
document.writeln("google_ad_width = 125;");
document.writeln("google_ad_height = 125;");
document.writeln("google_ad_format = \"125x125_as\";");
document.writeln("google_ad_type = \"text_image\";");
document.writeln("\/\/2007-06-29: www.ybj86.cn");
document.writeln("google_ad_channel = \"4751988107\";");
document.writeln("google_color_border = \"1a1a1a\";");
document.writeln("google_color_bg = \"1a1a1a\";");
document.writeln("google_color_link = \"d0eb6a\";");
document.writeln("google_color_text = \"ffffff\";");
document.writeln("google_color_url = \"8ad459\";");
document.writeln("google_ui_features = \"rc:6\";");
document.writeln("\/\/-->");
document.writeln("<\/script>");
document.writeln("<script type=\"text\/javascript\"");
document.writeln(" xsrc=\"http:\/\/pagead2.googlesyndication.com\/pagead\/show_ads.js\">");
document.writeln("<\/script>")
各位朋友可以按照自己的情况修改,网上也有把HTML代码转为JS代码的地方。
最后在需要挂广告的地方放入代码 <script type="text/javascript" xsrc="google.js"></script>
其他需注意的地方:
16.註解文字不可包含--符号
错误 <!-- OEC--SPACE -->
正确 <!-- OECSPACE -->
17.正确使用CSS样式表
一定要放在<head></head>之间
<link rel="stylesheet" type="text/css" xhref="style.css" />
<style type="text/css">
<!--
body{font-size:9pt;}
-->
</style>
错误 <style>
正确 <style type="text/css">
18.使用表格常犯的错误
我们在做表格通常会指定宽与高,例如:
<table border="1" width="300" height="55">
<tr><td> 内容 </td></tr>
</table>
这样做是没有办法通过,W3C建议使用CSS来控制标籤元素的高度
.table{
height:55px;
}
<table class="table">
<tr><td> TEXT </td></tr>
</table>
但是若使用太多表格,在CSS一一指定不同高,也不是好方法
其实很简单将高度height属性指定在储存格就可以了通过测试
<table border="0" width="300">
<tr><td height="55"> TEXT </td></tr>
</table>
但这不是w3c希望的标准,建议能够使用div代替不必要的table
19.非标籤一部分的符号以编码表示
表单内包含以下符号也必须用编码表示
< 以 < 表示
> 以 > 表示
& 以 & 表示
程式中的连结 & 也要改用 &
错误 <a xhref="foo.cgi?chapter=1§ion=2">
正确 <a xhref="foo.cgi?chapter=1§ion=2">
20.所有属性都必须有值
XHTML1.0规定所有属性都必须有值,若没有就必须重复属性作为值
错误 <input type="radio" value="v1" checked name="s1" />
正确 <input type="radio" value="v1" checked="checked" name="s1" />
错误 <option selected>S1</option>
正确 <option selected="selected">S1</option>
错误 <td nowrap>
正确 <td nowrap="nowrap">
过度标准(Transitional)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
框架标准(Frameset)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
严格标准(Strict) 包含以上须注意的问题,还有其他更严格的标准
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
2.头文件问题
所有的网页头文件都一律都改为标准形式,写法如下:
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<meta http-equiv="content-language" content="zh-cn" />
<meta name="keywords" content="..." />
<meta name="description" content="..."/>
<title>...</title>
</head>
3.不允许使用target="_blank"
在HTML4.01可以使用target="_blank",但XHTML1.0是不被允许的.
我使用了一个HTML4.0的新属性:rel,这个属性用来说明链接和包含此链接页面的关系,以及链接打开的目标。
原来这样写的代码:<a xhref="document.html" target="_blank"> 打开一个新窗口</a>
现在要写成这样:<a xhref="document.html" rel="external">打开一个新窗口</a>
这是符合strict标准的方法。当然还必须配合一个javascript才有效。
javascript完整的代码JS如下:
function externallinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
anchor.target = "_blank";
}
}
window.onload = externallinks;
你可以把它保存成一个.js文件(比如external.js),然后通过外部联接方法调用:
<script type="text/javascript" xsrc="external.js"></script>
4.XHTML 1.0要求所有的标籤必须关闭
所有没有成对的空标籤必须以 />结尾
<p></p>和<a xhref="index.html"></a>这就是成对
错误 <br> <hr>
正确 <br /> <hr />
错误 <input type="text" name="name">
正确 <input type="text" name="name" />
错误 <meta ...>
正确 <meta ... />
错误 <link rel="stylesheet" type="text/css" xhref="style.css">
正确 <link rel="stylesheet" type="text/css" xhref="style.css" />
错误 <img xsrc="bg.gif" border="0" alt="说明文字">
正确 <img xsrc="bg.gif" border="0" alt="说明文字" />
5.所有标籤元素名称都使用小写
错误 <HTML> <TITLE> <HEAD> <BODY>
正确 <html> <title> <head> <body>
错误 <IMG xsrc="BG.GIF" BORDER="0" ALT="说明文字">
正确 <img xsrc="bg.gif" border="0" alt="说明文字" />
错误 <UL><LI></LI></UL>
正确 <ul><li></li></ul>
以上只是举例,是"所有"标签元素名称都必须是小写
6.同一个id选择器不可重复使用
一个网页中id="xx"同一个选择器不能重复使用,若需要重复请用class="xx"
7.标籤必须是一对
<p></p>
<span></span>
<div></div>
8.正确的标籤顺序
错误 <b><i>文字</b></i>
正确 <b><i>文字</i></b>
9.JavaScript写法
Javascript我们通常会写为
错误 <script language="javascript">
W3C标准必须为程式指定类型type=text/javascript,所以要写为
正确 <script type="text/javascript">
或者 <script language="javascript" type="text/javascript">
载入外部.js独立档案的写法
正确 <script type="text/javascript" xsrc="script.js"></script>
10.绝对不可省略双引号或单引号
错误 style=font-size:9pt
正确 style="font-size:9pt"
错误 <img xsrc=bg.gif width=140 height=30 alt=text />
正确 <img xsrc="bg.gif" width="140" height="30" alt="text" />
错误 <a xhref=home>text</a>
正确 <a xhref="home">text</a>
11.图片标籤加上文字说明alt="说明"
错误 <img xsrc="bg.gif" height="50" border="0" />
正确 <img xsrc="bg.gif" height="50" border="0" alt="说明文字" />
12.背景音乐不允许使用 bgsound 标签
我只好用JavaScript解决这个问题。javascript完整的代码如下:
<!-- Begin
var MSIE=navigator.userAgent.indexOf("MSIE");
var NETS=navigator.userAgent.indexOf("Netscape");
var OPER=navigator.userAgent.indexOf("Opera");
if((MSIE>-1) || (OPER>-1)) {
document.write("<BGSOUND xsrc=背景音乐地址 LOOP=INFINITE>");
} else {
document.write("<EMBED xsrc=背景音乐地址 AUTOSTART=TRUE ");
document.write("HIDDEN=true VOLUME=100 LOOP=TRUE>");
}
// end -->
你可以把它保存成一个.js文件(比如bjmusic.js),然后通过外部联接方法调用:
<script type="text/javascript" xsrc="bjmusic.js"></script>
13. <embed>标籤的争议
<embed>是Netscape的私有标籤,W3C 从HTML3.2 HTML 4.01 到 XHTML 1.0 中都没有这个标籤,所以使用<embed>的页面是不能通过标准测试。
W3C推荐使用 <object> 标籤,用<object>插入flash影片的代码可以写为:
<object type="application/x-shockwave-flash" data="index.swf" width="400" height="200">
<param name="movie" value="index.swf" />
</object>
但这样的写法可能IE5/IE6 Win浏览器版本会出现问题.
<embed>标籤因为广大的受到运用,不再标准范围引起很大的争议,想要解决这个问题,只能等IE浏览器对<object>有更好的支持或者W3C愿意收录<embed>标籤。
14. 不允许使用框架标签<IFRAME>
这次又要用JavaScript解决问题了。javascript完整的代码如下:
function ifr(url,w,h){document.write('<iframe id="ifr" name="ifr" width="'+w+'" height="'+h+'" border="0" frameborder="0" scrolling="no" xsrc="'+url+'"></iframe>');}
把它保存成一个.js文件(比如ifr.js),然后通过外部联接方法调用:
<script type="text/javascript" xsrc="ifr.js"></script>
在你需要插入框架的地方写以下代码即可:
<script type="text/javascript">ifr('需插入的网页地址','567','485');</script>
函数ifr()使用说明:ifr('这里写地址','这里写宽度','这里写长度',)
15.google广告问题
google广告的代码是不符合W3C标准的,我只好又把它转成JS调用,但GOOGLE政策里是写着不允许修改代码的,
关于这点我正在写信给GOOGLE询问中,应该很快会有答案。
我的JS文件(google.js)代码如下:
document.writeln("<script type=\"text\/javascript\"><!--");
document.writeln("google_ad_client = \"pub-0538745384335317\";");
document.writeln("google_ad_width = 125;");
document.writeln("google_ad_height = 125;");
document.writeln("google_ad_format = \"125x125_as\";");
document.writeln("google_ad_type = \"text_image\";");
document.writeln("\/\/2007-06-29: www.ybj86.cn");
document.writeln("google_ad_channel = \"4751988107\";");
document.writeln("google_color_border = \"1a1a1a\";");
document.writeln("google_color_bg = \"1a1a1a\";");
document.writeln("google_color_link = \"d0eb6a\";");
document.writeln("google_color_text = \"ffffff\";");
document.writeln("google_color_url = \"8ad459\";");
document.writeln("google_ui_features = \"rc:6\";");
document.writeln("\/\/-->");
document.writeln("<\/script>");
document.writeln("<script type=\"text\/javascript\"");
document.writeln(" xsrc=\"http:\/\/pagead2.googlesyndication.com\/pagead\/show_ads.js\">");
document.writeln("<\/script>")
各位朋友可以按照自己的情况修改,网上也有把HTML代码转为JS代码的地方。
最后在需要挂广告的地方放入代码 <script type="text/javascript" xsrc="google.js"></script>
其他需注意的地方:
16.註解文字不可包含--符号
错误 <!-- OEC--SPACE -->
正确 <!-- OECSPACE -->
17.正确使用CSS样式表
一定要放在<head></head>之间
<link rel="stylesheet" type="text/css" xhref="style.css" />
<style type="text/css">
<!--
body{font-size:9pt;}
-->
</style>
错误 <style>
正确 <style type="text/css">
18.使用表格常犯的错误
我们在做表格通常会指定宽与高,例如:
<table border="1" width="300" height="55">
<tr><td> 内容 </td></tr>
</table>
这样做是没有办法通过,W3C建议使用CSS来控制标籤元素的高度
.table{
height:55px;
}
<table class="table">
<tr><td> TEXT </td></tr>
</table>
但是若使用太多表格,在CSS一一指定不同高,也不是好方法
其实很简单将高度height属性指定在储存格就可以了通过测试
<table border="0" width="300">
<tr><td height="55"> TEXT </td></tr>
</table>
但这不是w3c希望的标准,建议能够使用div代替不必要的table
19.非标籤一部分的符号以编码表示
表单内包含以下符号也必须用编码表示
< 以 < 表示
> 以 > 表示
& 以 & 表示
程式中的连结 & 也要改用 &
错误 <a xhref="foo.cgi?chapter=1§ion=2">
正确 <a xhref="foo.cgi?chapter=1§ion=2">
20.所有属性都必须有值
XHTML1.0规定所有属性都必须有值,若没有就必须重复属性作为值
错误 <input type="radio" value="v1" checked name="s1" />
正确 <input type="radio" value="v1" checked="checked" name="s1" />
错误 <option selected>S1</option>
正确 <option selected="selected">S1</option>
错误 <td nowrap>
正确 <td nowrap="nowrap">




