使用特定于供应商的扩展有哪些优缺点,这些扩展未包含在W3C规范中?

时间:2009-12-26 05:55:41

标签: javascript css xhtml w3c web-standards

我编辑了我的问题

  

什么是供应商特定的扩展名?

     

可以启动特定于供应商的扩展程序   用“ - ”(短划线)或“_”   (下划线),通常后跟一个   公司的缩写或   浏览器项目的扩展名是   具体的,f.i。 Mozilla的“-moz-”   浏览器,或Webkit的“-webkit-”   基于浏览器。这个供应商具体   前缀后跟属性   名称。一个很好的例子是   -webkit-border-radius,或-moz-border-radius。

IE有3件事

  1. .htc文件支持(和javascript一样)
  2. 和css表达式(也是javascript的一种形式)
  3. 仅部分IE xhtmlcss properties
  4. Web-kitMozilla也有一些自己的css属性。

    和其他一些链接

    http://webdesign.about.com/cs/htmltags/a/aa012300a.htm

    http://reference.sitepoint.com/css/vendorspecific#

    http://www.456bereastreet.com/archive/200911/vendor-specific_extensions_are_invalid_css/

    http://www.css3.info/vendor-specific-extensions-to-css3/

    我的问题

    如果我们使用非W3C标准的东西,我们现在或将来是否会遇到任何问题?

    1. 如果我有一个jquery解决方案和 供应商specfic css两者都是一样的 我应该使用哪种解决方案? 使用供应商specfic css解决方案 如果js被禁用但页面将会工作 不会在w3c验证器中验证 如果我使用js解决方案然后页面 将在验证器中传递。

      • 例如喜欢制作圆角
    2. 如果网站是,它会在任何意义上受到伤害 由于使用不完全验证W3C 供应商特定的东西,我应该 尽可能避免供应商的特殊情况 尽可能好 跨浏览器和平台 兼容性(如PC,MAC,iPhone, 其他手机。?

    3. 我应该选择js解决方案吗? 供应商特定的CSS属性,如果我有两个解决方案得到 通过w3c验证? (但如果我愿意的话 每次都选择js解决方案 网站在移动设备上无法正常运行 浏览器如果w3c验证为供应商特定扩展提供错误,是否可以离开?

4 个答案:

答案 0 :(得分:5)

呃......他们不会在其他浏览器上工作......?

答案 1 :(得分:4)

在考虑特定于供应商的扩展时,您应该尝试遵循的原则是progressive enhancement。基本的想法是,您应该将您的网站设计为尽可能多的人工作;将它设计为在纯HTML 3.2中,在终端客户端上运行,没有JavaScript,CSS或任何特定于供应商的扩展。

然后,您添加样式和功能,使用并非所有浏览器都支持的更高级标准,使用可视媒体设计,使用可能被禁用的CSS和JavaScript,最后使用特定于供应商的扩展,而不是所有其他浏览器都支持。但是因为你首先开始设计给定一个每个人都支持的通用功能集,所以你不需要新功能的额外功能来使网站工作;它将继续在具有旧功能的旧浏览器中工作,因为新功能是作为增强功能添加的,而不是您网站工作所必需的功能。

因此,您不应该依赖这些特定于供应商的扩展,而是将它们用作增强功能。如果由于某种原因,您确实依赖它们 - 如果您的产品在没有特定浏览器可用的扩展程序的情况下无法运行 - 则可能值得使用它。但在这种情况下,您的未来与该浏览器密不可分。如果它落在了路边,你就是SOL。如果它最终仅在韩国使用,并且您的产品是德语,而另一个浏览器是主导的,那么您就是SOL。

现在,在做出这些决策时,可以选择不同类型的供应商特定功能。有些功能将始终特定于特定供应商;不适用于其他平台的功能,或已向标准机构提出的功能,以及整个方法已被拒绝。这些功能是您非常非常明智地使用的功能。

标准轨道上还有其他功能。它们在当前的CSS 3草案中,它们几乎兼容地在两个或三个不同的浏览器中实现。这些功能是您可以开始依赖的功能,如果您的用户群都支持它们,因为它们肯定会被大多数主流浏览器(大多数潜在用户使用)在某些时候实现。将来

因此,总之,我会说您应该随意添加仅在单个浏览器中支持的页面效果。但是你不应该依赖这些,除非你有充分的理由相信它们很快会得到所有主流浏览器的支持。主流浏览器支持的当前HTML状态可以做很多事情;尝试在当前标准内工作,并尽可能多地使用浏览器之间的功能,同时牢记遵守标准不支付账单,它提供的功能和一定的风格,即。 / p>

直接回答您的问题,关于供应商特定扩展的利弊:

赞成

  • 访问可能会更快发布的功能
  • 为您的客户提供更好的价值
  • 你可以做很酷的有趣的事情
  • 帮助鼓励其他浏览器的实施者和从事标准工作的人员,这个功能是个好主意

缺点

  • 该功能可能会消失,即使在同一浏览器的更高版本中也不会出现
  • 如果您依赖此类扩展程序,则可能会严重限制用户群
  • 该功能可能会在发布之前发生重大变化,导致页面损坏,或者某些新的嗅探模式很难弄明白。

至于你是否应该使用基于JavaScript的方法或CSS扩展方法,这是你应该根据具体情况做出的判断。如果您能够遵循渐进增强的原则,它们都可以使用。只要它不是您网站的基本功能,或者您找到了为所有主流浏览器做同样事情的替代方法,我会说CSS优先于JavaScript解决方案,因为它通常会更小,加载速度更快。

要考虑验证的一点是,尽管确保HTML验证通常是个好主意(尽管并非总是必不可少;例如,请参阅Google,他们认为最小化下载大小比验证更重要),由于CSS中特定于供应商的属性导致的验证失败不太重要。在CSS中,未知属性被定义为只是被忽略,因此即使它不使用特定于供应商的属性进行验证,您也知道它在不支持该属性的浏览器中的行为方式;他们会忽略它。如果您遵循渐进增强的方法,那么如果忽略这些属性,您的网站仍然可以正常工作,这意味着除了您的网站看起来不那么好之外没有任何负面影响。

答案 2 :(得分:2)

在整个行业中,遵守标准被视为最佳实践,因为它会带来可预测性和互操作性。

这适用于所有行业,而不仅仅是创建网络内容。

如果我们同意W3C是Web的标准制定主体,我们应该遵循它们设定的指南。

这意味着不依赖于专有扩展,无论是谁引入它们。

答案 3 :(得分:0)

除非您的网站严格且专门针对Windows + IE用户,并且您很高兴丢失来自Firefox用户,Mac用户,使用iPhone或黑莓或Android设备等的所有流量,使用任何专有的IE扩展程序,难以置信的近视。微软刚刚同意欧盟提供一个“浏览器调色板”供用户选择作为默认浏览器在不久的将来,所以可以想象,Windows用户坚持使用IE作为默认浏览器或仅浏览器的百分比可能会降低将来

使用来自Firefox的专有扩展几乎是近视 - 你很难说服所有访问者切换到你的网站的FF(来自IE,Safari,或他们喜欢的任何其他),并且,尽管范围你可以在其上安装FF的设备比你可以安装IE的设备更广泛,你仍然切断了iPhone和Android等设备,这是一个正在增长的市场 / em>比“传统PC”更快。