目前我正在设计一个网站,但非常难以在所有浏览器上完美地显示网站。
有什么规则、建议等需要遵循吗?
谢谢。
目前,最受欢迎的大部分兼容浏览器是Firefox,因此首先应该以Firefox为基础进行开发。使用W3C的验证器来确保你在正确的轨道上。一旦页面大体完成,请验证它在Safari和Chrome中仍然看起来不错(它们也都是高度兼容的浏览器,所以你不应该遇到太多麻烦),然后开始修复IE(6 和 7)。相信我,它需要修复!像QuirksMode这样的网站在添加例外时可以提供很大帮助。
这可能是这里面比较有争议的一点,因为XHTML有很多支持者。不幸的是,无法以同时兼容IE和符合标准的方式提供XHTML文件 - IE不会识别XHTML MIME类型,并且将它们作为text/html
服务会违反标准。只有HTML 4.01 Strict DOCTYPE可以将所有浏览器置于(接近)标准模式,同时仍符合标准。要了解更多信息,请查阅DOCTYPE switching。如果你绝对无法编写格式良好的XML页面,请使用XSL Transformation将你选择的XML转换为HTML。
有时候它们可能很诱人,但是这些hack都是基于浏览器漏洞的副作用。因此,很难甚至不可能预测未来的浏览器对其的反应。另一方面,条件注释是IE浏览器的一个有意的特性,因此可以放心使用。实际上,它们是保持IE特定(通常是非验证)CSS不进入有效样式表的绝佳方法。
试图让所有浏览器 完全像素对齐 是一种沮丧(而且经常是徒劳无功)的练习。尽量创建布局,即使被破坏也仍然看起来还可以,因为修复两个左边框之间的错位比修复在页面两侧的左右边框更容易!使用内置边框的背景图像应该是一个大警告标志!
并非每个人都使用与您相同大小的显示器;而不是将脚注设置为font-size: 10px;
,请将其设置为font-size: smaller;
或font-size: 80%;
。这是一个 acessibility 问题。
你永远不知道所有浏览器是否使用相同的默认样式。YUI的“reset”样式表是一个很好的起点。
在不同的浏览器和平台上,要让网站看起来完全一致几乎是不可能的。首要原因是不同操作系统下的字体渲染方式不同,包括Windows、Mac、Linux、Solaris等。
我们有一个新的思路:网站不必在不同浏览器和平台上完全相同,你可以很容易地达到96-98%的相似度。其它精细的调整可能需要花费大量的时间和精力去完成,但所得带来的潜在收益却微乎其微。
我们从Firefox开始进行开发。如果我们在Firefox上做得对,其它浏览器也就差不多了。IE是最难以正确处理的浏览器,我建议你告诉客户或者自己,IE6其实已经不再是必须支持的标准了。
确保你从一开始就使用一个“重置”CSS样式表,使所有浏览器输出的布局都处于公共基础上。请参考:http://developer.yahoo.com/yui/reset/
最后,为自己省些麻烦,统一使用像ExtJS、JQuery或Prototype这样的Javascript库,它们会隐藏浏览器间的差异,让你可以专注于项目代码的编写。
position: relative;
添加到元素就能启用 hasLayout。 - Astra请查看Browsershots。它可以使用各种浏览器对您的网站进行截屏,让您可以通过视觉方式进行检查。虽然速度有点慢,但对我来说很有效。
以下是我一段时间前在Stack Overflow上关于在浏览器中完善网站的回答(来源:这里)
实际上,在开发Web应用程序时,您需要使用以下浏览器:
我的意思是,您应该在所有三个主要的Grade-A浏览器上测试您网站的每一个步骤...这样,如果在过程中出现问题,您将知道导致故障的原因。
如果您不经常检查浏览器以了解页面的效果,那么以后修复问题就会更加困难。
我建议先确定目标受众,然后确定他们使用的浏览器。一旦完成这一步骤,请在该浏览器上追求完美。现在,您可以进行一些其他浏览器的工作,并使其看起来好看。
今天在所有浏览器中追求完美就像要求世界和平一样难。
您可以采用另一种方法,即使用像jQuery这样的Javascript框架来减轻痛苦。
不要试图让每个浏览器都像其他浏览器一样完美地显示它...只有你知道!只需尝试使其在每个浏览器上看起来好看即可。