为什么浏览器厂商会制作自己的css属性?

时间:2010-03-13 06:26:57

标签: css cross-browser standards browser

  • 为什么浏览器供应商会自己创建 css属性,即使他们知道这些属性 在批准之前不会通过w3c验证并由w3c添加?
  • 目的是什么?是为了自己 测试,或Web开发人员,或 演示浏览器功能 对世界和W3C组织 和W3C的CSS开发团队?
  • 就像是测试版的 示范?
  • 如果我现在使用任何特定的浏览器 他们可以删除该财产吗? 来自未来版本的支持。我将来必须编辑我的CSS

例如:

https://developer.mozilla.org/en/CSS_Reference/Mozilla_Extensions

6 个答案:

答案 0 :(得分:4)

  • 负责任的浏览器供应商(不包括IE的大型供应商)知道几年后网络的外观。我不知道你在哪里得到“不通”部分。他们只实现浏览器将在几年内支持的东西
  • 这是为现代和未来的浏览器提供设计网络的工具。
  • 是的,我们可以说这是一个测试版。
  • 是和否,他们不太可能会删除对扩展部分的支持。

W3C正在考虑的是语法。我们以梯度为例:

-webkit-gradient(
    linear,
    left bottom,
    left top,
    color-stop(0.2, rgb(86,45,199)),
    color-stop(0.6, rgb(112,72,239))
)
-moz-linear-gradient(
    center bottom,
    rgb(86,45,199) 20%,
    rgb(112,72,239) 60%
)

这两个代码都生成相同的渐变。正如您所看到的,没有标准的过程,对于基于webkit和Mozilla的浏览器,该结构既令人困惑又不同。

但是让我们想象一下,在两三年内,实施工作就完成了。现在,您只需为标准添加另一行代码。

gradient: center bottom #colorFrom opacityFrom #colorTo opacityTo;

现在两个引擎都会理解渐变状态,如果它在扩展名之后指定,那么最后一个将是要解释的。

答案 1 :(得分:1)

标准流程运行如下:

  1. 规范是
  2. 浏览器实施规范
  3. 一切都是小马和彩虹
  4. 与任何IT项目一样,编写规范,然后实现其中的一部分,然后根据实施过程中学到的经验改变规范。这是一种精致的舞蹈,如Robert O’Callahan said

    使用供应商前缀进行初始实现意味着如果稍后更改规范,则针对现有实现编写的现有代码不会中断。

    供应商前缀也允许浏览器制造商进行实验,这可能会导致Safari的渐变效果非常好。

答案 2 :(得分:0)

它们大多是从css2-> css3开始进行的工作,但由于浏览器尚不支持它(如css3),因此它会以不同的名称显示。

答案 3 :(得分:0)

他们这样做有几个原因:

  1. 正如您所说,展示独特的浏览器功能
  2. 公开某些浏览器行为 - 将这些属性视为API
  3. 创建粘性 - 一旦你有很多代码依赖于专有属性,你就会“绑定”到浏览器。
  4. 是的,遗憾的是,这些属性可能会在未来版本中发生变化甚至消失,因此需要更改代码。底线:坚持标准,或者至少要注意任何当前闪亮的功能都有未来价格。

答案 4 :(得分:0)

Mozilla有一些扩展,可能会在下一个css标准中领先一步。当这些属性是标准属性时,使用它们而不使用moz前缀,以便支持多个浏览器。

答案 5 :(得分:0)

我不了解CSS标准演变的具体细节,可以猜测以下是制造商“超出标准”的主要原因。

  • 标准起草是一个漫长而缓慢的过程(通常是有充分理由的),在快速变化,激烈的竞争环境中,这种速度并不令人满意。
  • 有时,这是展示潜在新功能的一种方式,目的是确认其有效性,或者向标准化机构施加压力,使其具有回溯性。

虽然有效地规避了既定的标准化过程,但上述驱动因素可能具有良好的意义并且注意到更大的利益。不幸的是,不太高尚的原因:

  • 对于拥有足够市场份额的制造商而言,这提供了使产品在某种程度上符合要求但具有额外功能的机会,然后这些功能可用作使用户和/或开发人员难以使用的方式切换(因此既保证了用户的忠诚度,也可能为其他用户提供了尝试产品的激励,从而进一步提高了他们的市场份额。)
  • 对于市场地位较弱的制造商而言,这可能是一种做法。因为这样的制造商认为他们通过严格遵守标准而获得(或保存)很少,他们试图发明一种新功能并带领它。