(Web2.0)XHTML+CSS 设计注意事項
作者:骆驼 日期:2006-12-02 06:31
1、除选择DOCTYPE之外的语句必须使用小写英文字母书写。其中包括 Macromedia Dreamweaver 生成的鼠标动作,如 OnMouseOver 也必须修改成 onmouseover。
2、XHTML语法规要求所有的标识都必须有开始和结束。例如<body>和</body>、<p>和</p>等,对于不成对的标识,要求在标识最后加一个空格,然后跟一个"/"。例如<br>写成<br />、<img>写成<img />,加空格的原因是避免代码连在一起浏览器不识别。
3、所有的XML标记都必须合理嵌套。如:<p><b></p></b> 必须修改为:<p><b></b></p> ,就是说,一层一层的嵌套必须是严格对称。
4、所有的属性必须用引号""括起来。如: <height=80> 必须修改为:<height="80"> 。特殊情况,你需要在属性值里使用双引号,你可以用",单引号可以使用',例如:<alt="say'hello'">。
5、把所有<和&特殊符号用编码表示。如:任何小于号(<),不是标签的一部分,都必须被编码为& l t ; ,任何大于号(>),不是标签的一部分,都必须被编码为 & g t ; ,任何与号(&),不是实体的一部分的,都必须被编码为& a m p ; 。(以上代码字母间无空格)
6、给所有属性赋一个值。如: <td nowrap> <input type="checkbox" name="shirt" value="medium" checked> 必须修改为:<td nowrap="nowrap"> <input type="checkbox" name= "shirt" value="medium" checked="checked">。
7、不要在注释内容中使用“--”。如:<!--这里是注释-----------这里是注释--> 可以用等号或者空格替换内部的虚线 <!--这里是注释============这里是注释-->。
Byte-Order Mark found in UTF-8 File
作者:骆驼 日期:2006-11-24 07:16
选择三篇代表性的文字说明这个问题,希望可以解决您的疑惑。
W3C的css-validator和UTF-8文档的BOM冲突
授权方式:署名,非商业用途,保持一致,转载时请务必以超链接(http://www.fwolf.com/blog/post/96)的形式标明文章原始出处和作者信息及本声明。css-validator是W3C提供的一个工具,用于检查CSS的有效性,是个不错的工具,同样的还有W3C Markup Validation Service,用于检查html、xhtml等文档的格式有效性。
但是在检查一篇文档的时候出现了问题,文档是UTF-8编码,XHTML 1.0 Strict检查已通过,CSS代码采用直接使用“<style type=”text/css”>”写在文档中的方式。在使用css-validator检查的时候出现如下错误:
Target: http://www.fwolf.com/tools/ogame_construction_resource_computer.phpPlease, validate your XML document first!
Line 1
Column 1
Content is not allowed in prolog.
第一行、第一列?这不是xml 1.0的文档声明么?怎么在检查css的时候还用这个?结果一查,可能的原因有两个:
原因一:css-validator架构于Jigsaw——W3C’s Java Server上,而Java或Jsp处理XML文档的时候,无法正确识别UTF-8格式文档的BOM,从而导致错误“Content is not allowed in prolog”。
原因二:在这里看到别人在讨论的,即然XML 1.0的规范中BOM是合理存在的,那么相关的XML工具就应该具备识别BOM标记的功能,但css-validator使用的XML
Validator是采用ElCel Technology C++ Toolkit编译的,而这个东东可能不能完全识别BOM?
在W3C的bugzilla中也有人提交了这个bug,但似乎讨论也是无疾而终。
由于Windows平台下的一些编辑器,尤其是我使用的Emeditor,在没有BOM的情况下,有时会有些麻烦,所以出于方便维护的目的来讲,我认为BOM还是保留的好。至于css-validator不能识别的问题,就只能期待css-validator进行改进了,目前倒是还可以把css标记粘贴过去进行检查不是?W3C的W3C Markup Validation Service在检查文档,发现文档具有BOM的时候,会出现一个小提示:
Byte-Order Mark found in UTF-8 File.The Unicode Byte-Order Mark (BOM) in UTF-8 encoded files is known to cause problems for some text editors and older browsers. You may want to consider avoiding its use until it is better supported.
这说明W3C也在改进各类工具对BOM的支持。
至于说了半天,什么是BOM?请看谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词这篇文章。还有GonDa’s Blog上的Unicode、BOM也提到了一些。
另:css-validator以前都是英文版,现在好像改成了自动识别用户语言的版本了,但是我使用FireFox访问首页居然是乱码--文档是GB2312编码,却错误的被识别成了UTF-8编码。总体感觉易用性比W3C Markup Validation Service差远了,尤其是css-validator的中文版,错误提示有点莫名其妙的,还不知道怎么才能使用英文版界面。
怎样转换成 XHTML
作者:骆驼 日期:2006-11-23 06:55
To convert a Web site from HTML to XHTML, you should be familiar with the XHTML syntax rules of the previous chapters. The following steps were executed (in the order listed below):
要将一个HTML网站转换成XHTML,你应该熟悉前几章节所提到的XHTML语法。然后依照下面的步骤来做:
A DOCTYPE Definition Was Added
添加DOCTYPE定义
The following DOCTYPE declaration was added as the first line of every page:
在每个页的首行添加如下DOCTYPE声明:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
Note that we used the transitional DTD. We could have chosen the strict DTD, but found it a little too "strict", and a little too hard to conform to.
注意我们使用的是过渡型的DTD。我们可以选择严密型的 DTD,但它的要求有点过于严格,想完全地去遵循它有些困难。
- 1



