校验零页边距的网页

ZDNet软件频道 时间:2003-12-23 作者:ZDNet China |  我要评论(1)
本文关键词:网页制作
页边距是网站设计时最令人头痛的问题之一,这主要是传统和现代设计法则出现偏差的缘故。
本文译自Builder.com,未经许可请勿转载

页边距是网站设计时最令人头痛的问题之一,这主要是传统和现代设计法则出现偏差的缘故。

对于简单的文字网页,让浏览器围绕网页内容默认显示一个页边距是没有问题的。然而,对于主要由图形构成的网页,如果围绕标题图形以及其他设计元素创建一个你不希望的空白间距,就会造成问题。所以,设计师往往会覆盖默认设置,将页边距设为零。当然,随时都能为任何网页元素添加页边距,确保它与浏览器窗口边缘之间有一定的空距。

但问题在于,将页边距设为零的传统技术可能使你的网页无法通过校验。所以,如果你真的需要一个遵循标准的网站,就必须换用另一种技术。

零页边距──传统方式

以前为了控制页边距,需要设置<body>标记的属性。但这种方式比较复杂,因为IE和Netscape要求用不同的属性来设置页边距。但是,由于每个浏览器都优先考虑它自己的页边距属性,并忽略其他属性,所以能在一个文档中放心地包含针对两种浏览器的代码,它不会造成显示问题。

下面是将页边距设为零的传统代码:

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

上述代码在所有主流浏览器中都能正常工作,能有效消除你不希望在网页元素周围出现的空白间距。问题在于,由于代码中出现了浏览器特有的属性,所以会使网页不能通过校验。另外,在Dreamweaver内建的浏览器兼容性扫描和其他代码校验器中,它们会触发错误消息。

要确保网页通过校验,就必须从<body>标记中移除专用的leftmargin,rightmargin,marginwidth以及marginheight属性。

零页边距──CSS的方式

为了以遵循标准的方式来设置页边距,你需要使用CSS。在这种情况下,你仍然需要控制<body>标记的页边距属性,但这是通过一个CSS规则声明来实现的,而不是通过浏览器专用的属性。请将以下代码插入CSS样式表中,将页边距设为零:

body {
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
    margin-left: 0px;
}

要进一步精简代码,可使用以下简化版本来达到同样的目的:

body {
    margin: 0px;
}

另一个办法是在<body>标记中嵌入一个style属性设置,比如:

<body style="margin: 0px;">

一些浏览器不支持怎么办

上述简单的CSS方案并非不是所有浏览器都支持的。有问题的浏览器是Opera 7和Netscape 4。

Opera的默认网页设置包括一些填充空距。所以,要确保最终没有任何页边距视觉效果,除了要将页边距设为零以外,还必须将填充(padding)设为零。要做到这一点很容易,只需在CSS样式表中新增一行,变成:

body {
    margin: 0px;
    padding: 0px;
}

在Netscape 4中,只有使用负值才能将页边距设为零。以下CSS规则能在Netscape 4中获得所需的效果。但是,在其他浏览器中,它会造成某些网页内容被裁剪掉。

body {
    margin: -10px;
}

随着Netscape 4的用户越来越少,你可考虑暂时忽略这种浏览器中的页边距问题,除非你决定单独为Netscape 4加载一个自定义的CSS样式表。

将旧式的、专用的页边距属性替换成CSS样式,除了同样能够控制页边距,还使你更有把握生成遵循标准的、能顺利通过校验的网页。


Michael Meadhra自Web问世之初便涉足IT行业,目前已出版了30多本书,其中包括How to Do Everything with Dreamweaver MX。(Osborne/McGraw-Hill出版)。




周靖最初从事计算机硬件行业,后专注于计算机资料翻译,迄今已有10年的翻译经验,代表作包括即将问世的《C++问题求解第4版》。


责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134