试过很多网上说的方法让网页中的表格居于正中——水平和垂直方向上——但是最后都没有办法实现。
我们的设想是这样的:
1> 先在网页中,插入一个大的单行单列的表格1(为了表述方便,我们在这里这样命名,实际上并没有这样的命名问题),并且设置它的width和height都为100 % 。
2> 然后在这个表格中再插入一个单行单列的表格2,设置此表格的对称属性为“居中对齐”,在水平方向,表格2就会居中,而竖直方向上默认为valign=”middle”,这样表格2就会处于表格1的正中。而我们的设想是表格1占满整个网页,进而表格2便居中了。
以下是<body></body>中的代码:
<table width=”100%” height=”100%” border=”0″>
<tr>
<td>
<div align=”center”>
<table width=”100″ border=”0″>
<tr>
<td></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
接下来却发现,表格2却没有居于网页的正中,而是在最上,是什么原因呢?问题就出在height=”100%”上,在w3c上去检验就知道,这个语句是不符合w3c规范的,某些浏览器可能会不支持。也就是说无法让表格1占满整个网页。
最后的解决办法是这样的,我们注意网页的代码最上方有这么几句话:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
<html xmlns=”http://www.w3.org/1999/xhtml“>
他们看似对网页内容的实现没有任何的贡献,但是它却扮演着重要的角色。那么DOCTYPE有什么作用呢?
DOCTYPE的作用是告诉浏览器,使用哪种标准解释网页文件,但很少遇到它给我们带来麻烦。其实,也不能说是麻烦,因为javascript写的不规范才会出现麻烦,页面设计人员大多不懂javascript,所以出现这种问题的时候,我们解决问题的办法一般是修改声明DOCTYPE,让页面暂时正常访问,实际上是回避问题所在。
如果没有这个声明,一些浏览器就按照各自兼容的模式来分析网页。如果页面的DOCTYPE不完整,比如去掉了后面的URI地址,这个文档标准的声明也不起作用。
所以,当你写的某些代码没有被浏览器正常显示的时候,除了检查代码本身,还要考虑本身的兼容性问题,就要特地检查你的DOCTYPE声明是否和你的代码兼容。如果你对这些不是很在行,大可以删去上面的声明,以免造成不必要的麻烦。
回到上面的问题,当我们把DOCTYPE声明删去后,表格便居中了(在IE6.0,IE7.0,Maxthon上显示正常,但不能保证在所有的浏览器中都正常显示)。那么上面代码到底应该属于哪种声明呢?还没有查呢,谁叫我懒呢!~[偷笑]
PS:(2007年1月17日)今天把暴雪的燃烧的远征的Flash首页抓下来看了看,发现为了让图片居中,也删去了Doctype!声明。后来我也网上找了好久,也没有找到应该使用哪种声明,可能不使用DOCTYPE声明是唯一的办法吧。
2 comments so far