最近IE8的出现对国内大部分网站造成了极大的影响,再不选择兼容性视图时,原先正常的网页都不正常了(有的是位置问题,有的是回车不能直接登录或不能登录,还有按钮背景图等等很多问题)。这一问题也给我们这些开发者敲响了警钟,从此以后我们不能再跟着微软走了,而是应该跟着标准规范进行开发——就是说让我开发的代码符合W3C规范。
如何才算是符合w3c规范呢?简言之
(1)所有的标签都使用小写字母书写。
(2)所有的属性值都放在引号里,并且属性值不能为空。
(3)所有成对标签应按顺序书写、不成对的标签都用/>结束,并且 ”/”和”>”之间不要有空格。
(4)不要试图在table属性中控制高度,应将控制高的属性height写到css样式表中(或者在td中控制height)。
(5)尽可能的将css属性都写到单独的.css的文件中。
(6)在图片标签img中加上文字说明属性alt="说明"。
(7)使用JavaScript时标签中一定要制定type="text/javascript"
(8)符合W3C标准的插入Flash的代码:
(9)"IFRAME"不符合"W3C网页标准" 但是可以通过如下代码解决。
(10)符合W3C标准的JavaScript跑马灯效果
(11)W3C标准中不允许使用target="_blank"而是用target="new"在新窗口打开链接
W3C标准测试网址 http://validator.w3.org/
测试时一定要有标准声明还有指定文件编码
<meta http-equiv="Content-Type" content="text/html; charset=big5" />才能顺利进行测试。
如何才算是符合w3c规范呢?简言之
(1)所有的标签都使用小写字母书写。
(2)所有的属性值都放在引号里,并且属性值不能为空。
(3)所有成对标签应按顺序书写、不成对的标签都用/>结束,并且 ”/”和”>”之间不要有空格。
(4)不要试图在table属性中控制高度,应将控制高的属性height写到css样式表中(或者在td中控制height)。
(5)尽可能的将css属性都写到单独的.css的文件中。
(6)在图片标签img中加上文字说明属性alt="说明"。
(7)使用JavaScript时标签中一定要制定type="text/javascript"
(8)符合W3C标准的插入Flash的代码:
<div id="随意的名字1" class="flash">浏览器不支持Flash时显示的文字</div>
<script type="text/javascript">
var so = new SWFObject("flash文件URI即地址", "随意的名字2", "宽度", "高度", "flash版本", "背景色");
so.write("随意的名字1");
</script>
例如:
<div id="flashcontent" class="flash">Flash</div>
<script type="text/javascript">
var so = new SWFObject("images/template1/a.swf", "aa", "277", "248", "6", "#ffffff");
so.write("flashcontent");
</script>
(9)"IFRAME"不符合"W3C网页标准" 但是可以通过如下代码解决。
建立一个JS文件
function ifr(url,w,h){document.write('<iframe id="ifr" name="ifr" width="'+w+'" height="'+h+'" border="0" frameborder="0" scrolling="no" src="'+url+'"></iframe>');}
保存为iframbai.js。
在网页中用
<script type="text/javascript" src="iframbai.js"></script>
引入这段代码。
在需要使用iframe的地方插入代码
<script type="text/javascript">ifr('http://www.sohu.com/','778','120');</script>
(10)符合W3C标准的JavaScript跑马灯效果
<SCRIPT Language="JavaScript">
var msg="China PtHill——Share All,白金山!这是用JS脚本写出来的跑马灯哦! ";
var interval = 100;
var space10="";
var seq=0;
function Scroll() {
document.tmForm.tmText.value = msg.substring(seq, msg.length) + space10 + msg.substring(0, msg.length);
seq++;seq++;
if ( seq > msg.length ) { seq = 0 };
window.setTimeout("Scroll();", interval );
}
</SCRIPT>
<BODY OnLoad="Scroll();" >
<CENTER><FORM Name=tmForm>
<INPUT Type=Text Name=tmText Size=65>
</FORM></CENTER>
</BODY>
(11)W3C标准中不允许使用target="_blank"而是用target="new"在新窗口打开链接
过度标准(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">
W3C标准测试网址 http://validator.w3.org/
测试时一定要有标准声明还有指定文件编码
<meta http-equiv="Content-Type" content="text/html; charset=big5" />才能顺利进行测试。
未完待续……
如果认为某段代码不能符合规范,那么就请你用JavaScript中的document.write("")直接输出。记住了最后将JS和CSS抽取出来单独写在.js或.css文件中。基本就能解决很多问题了。