当前位置: 代码迷 >> HTML/CSS >> XHTML基准学习心得
  详细解决方案

XHTML基准学习心得

热度:350   发布时间:2012-10-26 10:30:58.0
XHTML标准学习心得

1、页面中不应该出现如<font color="red"></font>,而应该用<span class="red_text"></span>来替代之。

?

2、DOCTYPE是document type(文档类型)的简写,用来说明你用的XHTML或者HTML是说明版本。要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分;除非你的XHTML确定了一个正确的DOCTYPE,否则你的标识和CSS都不会生效。

?

3、有三种DTD可以选择:Transitional,Strict,Frameset。

第一种是非常宽松的DTD,允许使用HTML4.01的标识,但必须符合xhtml的语法。

第二种是要求严格的DTD,不能使用任何表现层的的标识和属性,如<br>。

第三种是专门针对框架设置的DTD。

DOCTYPE声明必须放在每一个XHTML文档最顶部,在所有代码和标识之上。

?

4、命名空间

??????? <html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312">这个“xmlns”XHTML namespace的缩写,叫做名字空间声明。

XHTMLHTMLXML过渡的标识语言,它需要符合XML文档规则,因此也需要定义名字空间。又因为XHTML1.0不能自定义标识,所以它的名字空间都相同,就是http://www.w3.org/1999/xhtml

目前阶段我们只要照抄代码就可以了

?

?

5、定义语言编码

???????? <meta http-equiv=“Content-Type” content=“text/html; charset=gb2312” />

为了被浏览器正确解释和通过W3C代码校验,所有的XHTML文档都必须声明它们所使用的编码语言,我们一般使用gb2312(简体中文),制作多国语言页面也有可能用UnicodeISO-8859-1等,根据你的需要定义。

注:如果忘记了定义语言编码,可能就会出现,你在DW做完一个页面,第二次打开时所有的中文变成了乱码

?

?6、JavaScript定义

Js必须要用<script language="javascript" type="text/javascript">来开头定义,而不是原来的<script language=javascript>或干脆直接<script>,并且需要加个注释符<!--???? -->,以保证不在不支持js 的浏览器上直接显示出代码来。

?

?7、CSS定义????????

CSS必须要用<style type=“text/css”>开头来定义,而不是原来的直接<style>,也不建议直接写在内容代码里如:<div style=”padding-left:20px;”></div>,并需要加个注释符<!--???? -->

?

为保证各浏览器的兼容性,在写CSS请都写上数量单位,例如:

错误:.space_10{padding-left:10}

正确:.space_10 {padding-left:10px}

?

8、所有标签的元素和属性的名字都必须使用小写

HTML不一样,XHTML对大小写是敏感的,<title><TITLE>是不同的标签。XHTML要求所有的标签和属性的名字都必须使用小写。例如:<BODY>必须写成<body> 。大小写夹杂也是不被认可的,通常dreamweaver自动生成的属性名字"onMouseOver"也必须修改成"onmouseover"

?

9、所有的属性必须用引号""括起来

?

10、把所有<&特殊符号用编码表示

n? 任何小于号(<),不是标签的一部分,都必须被编码为?? &lt;

n? 任何大于号(>),不是标签的一部分,都必须被编码为?? &gt;

n? 任何与号(&),不是实体的一部分的,都必须被编码为?? &amp;

如:http://club.china.alibaba.com/forum/thread/search_forum.html?action=SearchForum&doSearchForum=true 是错误的,

?

?

?

应该改为http://club.china.alibaba.com/forum/thread/search_forum.html?action=SearchForum&amp;doSearchForum=true

?

?

?

?

?

?11、给所有属性赋一个值

XHTML规定所有属性都必须有一个值,没有值的就重复本身。例如:

?

<td nowrap> <input type="checkbox" name="shirt" value="medium" checked>

?必须修改为:

<td nowrap="nowrap"> <input type="checkbox" name="shirt" value="medium" checked="checked" />

?

12、所有的标记都必须要有一个相应的结束标记

以前在HTML中,你可以打开许多标签,例如<p><li>而不一定写对应的</p></li>来关闭它们。但在XHTML中这是不合法的。XHTML要求有严谨的结构,所有标签必须关闭。如果是单独不成对的标签,在标签最后加一个"/"来关闭它。

例如:

?

<br />

<img height="80" alt="网页" title=”网页” src="logo.gif" width="200" />

?

?

?

?

错误:

?

Document.write(“<td width=\“300\”><a href=\“1.html\”>ok</a></td>”);

?

正确:

?

Document.write(“<td width=\“300\”><a href=\“1.html\”>ok<\/a><\/td>”);

?

13、所有的标记都必须严格嵌套

同样因为XHTML要求有严谨的结构,因此所有的嵌套都必须按顺序,以前我们这样写的代码:

? <p><b></p></b> 必须修改为:

? <p><b></b></p> 就是说,一层一层的嵌套必须是严格对称。

?

14、图片添加有意义的alt属性

例如:

?

<img src=“logo.gif” width=“100” height=“100” align=“middle” boder=“0” alt=“阿里巴巴” />

?

尽可能的让作为内容的图片都带有属于自己的alt属性

同理:

添加文字链接的title属性

<a hrehf=”#” target=”_blank” title=”新闻新闻新闻新闻”>新闻新闻…</a>,在一些限定字数的内容展示尤为重要,帮助显示不完成的内容显示完整,而不用考虑页面会因此而撑大

?

15、在form表单中增加label,以增加用户友好度

例如:

?

<form action="http://somesite.com/prog/adduser" method="post">

?

??? <label for="firstname">first name: </label>

????????????? <input type="text" id="firstname">

??? <label for="lastname">last name: </label>

????????????? <input type="text" id="lastname">

</form>

?

?

?

?

?

?

?

?

?

?

1 楼 lzy5710303 2011-03-16  
总结得不错
2 楼 weir2009 2011-03-16  
1、页面中不应该出现如<font color="red"></font>,而应该用<span class="red_text"></span>来替代之。

这是为什么?
3 楼 APieceOfRedCloth 2011-03-16  
weir2009 写道
1、页面中不应该出现如<font color="red"></font>,而应该用<span class="red_text"></span>来替代之。

这是为什么?

font标签不建议使用,它本身包含了样式信息,建议把样式和结构分离开,使用css控制样式。
4 楼 int08h 2011-03-16  
有好多乱扯的,楼主到底是真的去看了标准学了标准,还是网上到处找一些号称教条的东西一知半解就算完事?
5 楼 attol 2011-03-16  
谁告诉我怎么投新手帖/隐藏贴
6 楼 sfeve 2011-03-16  
int08h 写道
有好多乱扯的,楼主到底是真的去看了标准学了标准,还是网上到处找一些号称教条的东西一知半解就算完事?

确实是没看一手材料,只是初步看了别人总结的材料的一点心得。有错误请兄台不吝赐教。
7 楼 witcheryne 2011-03-17  
int08h 写道
有好多乱扯的,楼主到底是真的去看了标准学了标准,还是网上到处找一些号称教条的东西一知半解就算完事?


求详解...

希望你不是来喷个人就走的那种...

8 楼 weir2009 2011-03-17  
标准是人定的,自然还是人说了算。
9 楼 xiangfei209 2011-03-17  
写的还可以LZ ,但是有点凝问,第二点平常不写,css照样可以用
10 楼 lcgg110 2011-03-17  
总结的不错,可以学习学习!
11 楼 int08h 2011-03-18  
不说明哪些有问题是想LZ可以真正认真地看一下标准,这样学习的效果远好于在这里得到结论吧:

首先,楼主看的其实是XHTML标准,而不是w3c标准,作为Web标准组织,w3c最重要的标准是HTML而不是XHTML……

2、DOCTYPE并不是必不可少的部分,没有DOCTYPE的情况下浏览器会进入怪异模式,但怪异模式也是一种模式,依旧能展现HTML,依旧能让CSS生效,只是盒模型等部分内容和标准模型不一样。再者,DTD也要符合一定的规范才能让浏览器进入标准模式,并不是有一个DTD就行的

3、真正意义上的DTD并不是这样分类的,真正的DTD有3种:
    A、普通DTD,只要有<!DOCTYPE html>就OK了
    B、旧DOCTYPE,就是你说的这些
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN">
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    C、工具型DTD,很少见,类似<!doctype HTML system "about:legacy-compat">
   
4、HTML中没有命名空间,XHTML中确实有,但就算不写也完全没有问题

5、定义语言编码:<meta charset="utf-8" />,不需要写这么麻烦

6、js定义,这个算比较搞笑的,问题有以下几个:
    A、script标签没有任何属性是必须的,单纯的<script>var a = 3;</script>就行了
    B、就算使用属性,script标签的language属性也是不标准的,只使用type即可
    C、script标签中不需要加注释符,除非你打算兼容消失已久的Netscape3.x浏览器

7、和上一条一样:
    A、style标签是可以没有type属性的
    B、style标签里是不需要注释的,除非你想兼容Netscape3.x浏览器
    C、外部样式和内联样式各有所长,应用的环境不同,无所谓不建议写内联样式
   
8、一开始HTML规定所有属性名大写,XHTML规定成了小写,后来HTML又无奈地规定大小写不敏感了。但现实是浏览器完全不管大小写,甚至在IE6下获取innerHTML的话,标签名都会变成大写的

10、要编码的不仅这些,有很多很多……具体看这个,不过也只是一部分:http://www.w3schools.com/HTML/html_entities.asp
12 楼 mib168 2011-03-21  
有一些确实值得注意,看来平时多注意总结还是很重要的。
13 楼 fangshengcai001 2011-03-22  
规则...
14 楼 sfeve 2011-03-23  
int08h 写道
不说明哪些有问题是想LZ可以真正认真地看一下标准,这样学习的效果远好于在这里得到结论吧:

首先,楼主看的其实是XHTML标准,而不是w3c标准,作为Web标准组织,w3c最重要的标准是HTML而不是XHTML……

2、DOCTYPE并不是必不可少的部分,没有DOCTYPE的情况下浏览器会进入怪异模式,但怪异模式也是一种模式,依旧能展现HTML,依旧能让CSS生效,只是盒模型等部分内容和标准模型不一样。再者,DTD也要符合一定的规范才能让浏览器进入标准模式,并不是有一个DTD就行的

3、真正意义上的DTD并不是这样分类的,真正的DTD有3种:
    A、普通DTD,只要有<!DOCTYPE html>就OK了
    B、旧DOCTYPE,就是你说的这些
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN">
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    C、工具型DTD,很少见,类似<!doctype HTML system "about:legacy-compat">
   
4、HTML中没有命名空间,XHTML中确实有,但就算不写也完全没有问题

5、定义语言编码:<meta charset="utf-8" />,不需要写这么麻烦

6、js定义,这个算比较搞笑的,问题有以下几个:
    A、script标签没有任何属性是必须的,单纯的<script>var a = 3;</script>就行了
    B、就算使用属性,script标签的language属性也是不标准的,只使用type即可
    C、script标签中不需要加注释符,除非你打算兼容消失已久的Netscape3.x浏览器

7、和上一条一样:
    A、style标签是可以没有type属性的
    B、style标签里是不需要注释的,除非你想兼容Netscape3.x浏览器
    C、外部样式和内联样式各有所长,应用的环境不同,无所谓不建议写内联样式
   
8、一开始HTML规定所有属性名大写,XHTML规定成了小写,后来HTML又无奈地规定大小写不敏感了。但现实是浏览器完全不管大小写,甚至在IE6下获取innerHTML的话,标签名都会变成大写的

10、要编码的不仅这些,有很多很多……具体看这个,不过也只是一部分:http://www.w3schools.com/HTML/html_entities.asp

学习了。。谢谢
  相关解决方案