Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在设计网页(html/css/javascript)时,为了与所有浏览器具有最高的兼容性,我们应该遵循哪些基本技巧?_Javascript_Html_Css_Xhtml - Fatal编程技术网

在设计网页(html/css/javascript)时,为了与所有浏览器具有最高的兼容性,我们应该遵循哪些基本技巧?

在设计网页(html/css/javascript)时,为了与所有浏览器具有最高的兼容性,我们应该遵循哪些基本技巧?,javascript,html,css,xhtml,Javascript,Html,Css,Xhtml,在设计网页(html/css/javascript)时,为了与大多数浏览器(如firefox opera chrome safari)具有最高的兼容性,我们应该遵循哪些基本技巧 谢谢 在发布公共版本时,通常会删除并挤压所有验证错误。毕竟,验证的目的是将html解析为符合标准的浏览器,然后避免浏览器的解析器会发现的错误 运用技巧。这通常意味着将一些复杂的动态页面移到后端(例如php、django等),这样您就可以拥有复杂的功能,而不会在运行页面javascript的数千个不同客户端环境中中断。它非

在设计网页(html/css/javascript)时,为了与大多数浏览器(如firefox opera chrome safari)具有最高的兼容性,我们应该遵循哪些基本技巧

谢谢

  • 在发布公共版本时,通常会删除并挤压所有验证错误。毕竟,验证的目的是将html解析为符合标准的浏览器,然后避免浏览器的解析器会发现的错误

  • 运用技巧。这通常意味着将一些复杂的动态页面移到后端(例如php、django等),这样您就可以拥有复杂的功能,而不会在运行页面javascript的数千个不同客户端环境中中断。它非常适合将javascript开发的重点缩小到功能增强上,而不是javascript中的开放式功能,并且它还将有助于跨浏览器兼容性

  • IE-在至少一个IE7或IE8的实时版本中进行测试。不幸的是,真的没有办法解决这个问题,因为即使是IE8也不像其他浏览器。如果可能,将支持IE6的目标限制为html/css(即,不要承诺通过IE6中的javascript支持用户增强功能)。如果可能,放弃对IE 5.5及以下版本的支持


对于Javascript,使用与平台无关的库(即JQuery、Prototype)。并不是每件事都会如此,但这会让你的生活更轻松

对于CSS,我会说遵循标准,但IE往往会导致全面的问题


也就是说,你需要经常测试。Selenium在自动功能测试方面非常出色,几乎可以与所有浏览器配合使用。我们在Windows机器上使用Selenium RC服务器来测试IE和Firefox,然后通过我们的标准Java JUnit测试来控制它们。

看看这篇很棒的文章:

记住:有些东西不仅仅适用于特定的浏览器(可能在Chrome中不会显示左虚线边框)。如果可以的话,请不要为此烦恼!:)交叉兼容性是一门需要花费大量时间的艺术。

保持简单

标记、CSS和JavaScript越简单,就越容易发现不兼容。尽量将自己限制在CSS1范围内。只有在没有更简单的方法完成任务时,才使用更现代的CSS2/3功能

不要使用表,它们只会增加额外的复杂性。使用语义标记不仅可以使事情变得可维护,而且如果操作得当,还可以获得最佳的跨浏览器支持

请记住,浮动是邪恶的,但也非常强大。慷慨地使用它们,但避免试图清除浮动

使用JavaScript框架。框架开发人员已经为您消除了大多数跨浏览器错误。我推荐jQuery,但您可以选择开发人员喜欢的任何框架。我的建议是:

  • 使用不会改变本机对象原型的JavaScript框架(就像Prototype JS一样)
  • 没有引入很多全局变量。大多数框架都遵循这一规则

除了这两条JavaScript规则之外,尝试使用来封装代码,这样就不会引入自己的全局变量。

我使用的一种策略是用一组规则来启动CSS,这些规则将所有内容都清空。每个浏览器的元素属性可能有不同的值,因此确保从开始到开始的所有内容都是一致的,这非常方便。下面是reset.css的一个示例

决策路径并不简单,因此通常你从特定的目标开始——一个你想要合理完整性能的浏览器列表(及其版本号)。定义“所有浏览器”是第一步。为了实现最高兼容性,你应该坚持纯文本。@Matti你的意思是,纯ANSI文本(没有特殊字符,umlauts…):)我想这暗示了一个问题的滑动比例:文本内容>html>html+css>JavaScription根据我的经验,#1不会帮助你,忽略#2在css方面不会伤害你,而#3也不会拯救你(如果只是在虚拟机中,你将无法避免安装IE的版本)。Shugsi只想添加一件事:在启动和修复明显问题之前,使用IETester查看IE6中的页面。IETester-link:不确定维护得有多好,所以我推荐blueprintcss(),它会随着环境的变化而不断地被修复和更新。去掉你不需要的部分,因为尺寸很大。大部分是好的建议,虽然我不认为使用更现代的css是一件坏事,但功能较差的浏览器应该忽略它,因此,您只需确保使用更现代的css只是为了增强功能/表示。@Tchalvak虽然您是正确的,而且大多数情况下这不应该成为问题,但在某些情况下,依赖较新的css功能可能会导致布局在较旧的浏览器中无法工作。例如,CSS模板布局功能(一旦实现)在较旧的浏览器中绝对不起作用,会导致布局完全中断。