Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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
CSS标准被打破了吗?_Css_Web Standards_Cross Browser - Fatal编程技术网

CSS标准被打破了吗?

CSS标准被打破了吗?,css,web-standards,cross-browser,Css,Web Standards,Cross Browser,不同的浏览器选择以他们自己喜欢的方式呈现CSS,有一个标准有什么意义 简单的事情,比如创建一个可以在所有浏览器上运行的流畅的3列布局,可能会让人沮丧。您如何处理这个问题,或者使跨浏览器兼容开发不那么痛苦?该标准有一些缺点。这也是一件很难实现的事情。问题出在执行上,而不是标准上 使用像YUI这样的东西,很多聪明的人都做了很多艰苦的工作,让这些东西在各种浏览器中工作。像往常一样,所有这些背后都有一个原因 标准没有被打破(一个标准不能被打破),只是一些浏览器,比如IE,没有完全遵守它 这主要是因为IE

不同的浏览器选择以他们自己喜欢的方式呈现CSS,有一个标准有什么意义


简单的事情,比如创建一个可以在所有浏览器上运行的流畅的3列布局,可能会让人沮丧。您如何处理这个问题,或者使跨浏览器兼容开发不那么痛苦?

该标准有一些缺点。这也是一件很难实现的事情。问题出在执行上,而不是标准上


使用像YUI这样的东西,很多聪明的人都做了很多艰苦的工作,让这些东西在各种浏览器中工作。

像往常一样,所有这些背后都有一个原因

标准没有被打破(一个标准不能被打破),只是一些浏览器,比如IE,没有完全遵守它

这主要是因为IE是在创建任何标准之前开发的,当时它是最好的浏览器,几乎没有竞争对手(我读到netscape是另一种选择,它比IE差得多)

然后人们意识到需要一个标准,他们创建的标准显然不包括任何IE专有代码和特性。IE被迫选择与以前的版本向后兼容,或者坚持这个新的“标准”,他们绝对统治着浏览器市场,所以选择是显而易见的

随着新版本的出现,IE试图越来越符合标准,他们说IE8成功地通过了ACID2测试,因此标准乌托邦(慢慢地)成为现实

同时,检查包含有用的跨浏览器信息的网站->。另外,请尝试在线查看任何关于“IE box model”的文章,不要在IE中填充内容。如果您也使用第三方javascript库(JQuery、Prototype、Dojo),您应该很好(或者像我们任何人一样好)


尊敬。

拥有标准的一个主要目的是让我们避免另一场浏览器大战。你知道网景和微软一直在浏览器中添加尽可能多的专有功能。与当时相比,今天的跨浏览器开发是一件轻而易举的事

拥有标准的另一个很好的理由是,您知道浏览器的未来版本将走向何方。遵循这些标准是对未来浏览器工作方式的最佳预测


您可以在这个问题中找到许多跨浏览器提示:

标准是公开的,因此不符合标准的浏览器可以查看和学习。该标准很重要,因为它是您希望使网页在所有页面上正确显示的唯一方法

还要记住,制定的标准绝不是为了过去,而是为了未来。如果在过去一些浏览器没有确认标准,这并不意味着我们不应该有标准

事实上,该标准的诞生是因为浏览器都在做自己的事情,那时就需要该标准

如果您按照标准编写代码,浏览器将对此进行确认


有希望的朋友

标准是紧急的,不是预先定义的。好吧,至少应该是这样。与我交谈过的许多开发人员似乎发现我对Web标准的看法有点异端,但请继续关注我

在实施之前尝试创建标准时,会出现以下问题:

  • 在有用的实现出现之前有很长的延迟。没有人有一个可供参考的工作实现,而且由于没有人使用该标准的任何特性(因为它还不存在),因此实际实现它的动力很小。鸡和蛋的问题
  • 无法实际实施的标准的可能性。在有人真正尝试之前谁能确定呢?HLA标准就是一个很好的例子,国防部不得不写一份“解释”备忘录,试图通过掩盖实际标准中的一些错误来设定事实标准
  • 不满足任何实际需要的标准的潜力。人们真的想要这个吗?参见XForms的例子,它已经陷入了一个奇怪的服务器端利基。或者,我想不出我见过的任何人会认为CSS“宽度不包括填充”框模型是直观的
  • 标准实施者无法将其产品与竞争对手区分开来,从而导致顽固地希望在实践中违反标准或以令人鼓舞的方式锁定。参见CORBA的例子
我认为W3C在最近几年中以艰难的方式学会了这一点。一些终端用户最明显的创新来自一场新的浏览器大战:例如HTML5(多家供应商)、canvas(苹果)、XMLHttpRequest(微软的Outlook Web Access团队)、input range(Safari内置RSS阅读器)和视频元素(Firefox)——这些都来自专有级别,不是从标准塔上下来的。这些新的“标准”是通过查看过去的单个实现(Firefox在很大程度上复制了微软的XMLHttpRequest等)而形成的,而不是由一些思考未来的目光开阔的智囊团制定的。(ISAPI、Netscape插件API和SQL都是自底向上标准的例子,在这些标准中,打破性的更改是以一种锁定的方式逐步完成的。)

一个标准应该是一个最小公分母,它可以消除实现中的基本差异,一种适用于所有实现的洋泾浜语言,而不是罗勃特·洛思式的语言或系统规定性规则的枚举,因为这样一来,你最终得到的规则就不总是有意义或应用不现实的理想(就像尝试将基于拉丁语的语法规则应用于基于日耳曼语的语言,就像尝试将基于XML的语法规则应用于基于SGML的语言)

可能是t的CSS标准中最大的缺陷
.box {css rules}
*+html .box {css rules to override in ie7}
* html .box {css rules to override in ie6}