3

我编辑了我的问题

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

供应商特定的扩展可以以“-”(破折号)或“_”(下划线)开头,通常后跟该扩展特定的公司或浏览器项目的缩写,对于 Mozilla 浏览器,fi“-moz-” ,或“-webkit-”用于基于 WebKit 的浏览器。此供应商特定前缀后跟属性名称。一个很好的例子是 -webkit-border-radius 或 -moz-border-radius。

IE有3样东西:

  1. .htc 文件支持(与 javascript 相同)
  2. css 表达式(也是 javascript 的一种形式)
  3. 一些 IE 只有xhtmlcss 属性

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 标准的 CSS,我们现在或将来会遇到什么问题吗?例子:

  1. 如果我有相同解决方案的 jquery 代码和特定于供应商的 CSS 代码,我应该使用哪个?如果 JS 被禁用但页面不会通过 W3C 验证,则使用供应商特定的 CSS 解决方案将起作用。如果我使用 JS 解决方案,页面将在验证器中传递。一个例子是制作一个圆角。

  2. 如果由于使用供应商特定的属性而导致站点未完全通过 W3C 验证,是否会受到任何伤害?我是否应该尽可能避免特定于供应商的事情以获得良好的跨浏览器和平台兼容性,例如 PC、MAC、iPhone 和其他手机?

  3. 如果为了通过 W3C 验证而在两者都有解决方案,我应该选择 JS 解决方案而不是供应商特定的 CSS 属性吗?如果我每次都选择 JS 解决方案,该网站将无法在移动浏览器上正常运行。如果 W3C 验证为特定于供应商的扩展提供错误,是否可以不理会它?

4

4 回答 4

5

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

于 2009-12-26T06:13:14.293 回答
5

在考虑特定于供应商的扩展时,您应该尝试遵循的原则是渐进式增强。基本思想是您应该设计您的网站以供尽可能多的人使用;将其设计为在终端客户端上以纯 HTML 3.2 工作,无需 JavaScript、CSS 或任何类型的供应商特定扩展。

然后,您添加样式和功能,使用并非所有浏览器都支持的更高级标准,使用视觉媒体设计,使用可能被禁用的 CSS 和 JavaScript,最后,使用供应商特定的扩展,这些扩展完全不受其它浏览器。但是,由于您最初是根据每个人都支持的一组通用功能开始设计的,因此您不需要新功能中的额外功能来使站点正常工作;它将继续在具有旧功能的旧浏览器中工作,因为新功能是作为增强功能添加的,而不是您的网站运行所必需的东西。

因此,您不应依赖这些特定于供应商的扩展,而应将它们用作增强功能。如果出于某种原因,你确实依赖它们——如果你的产品在没有特定浏览器上可用的扩展程序的情况下无法运行——那么它可能值得使用。但在那种情况下,你的未来与那个浏览器有着千丝万缕的联系。如果它落在路边,你就是SOL。如果它最终只在韩国使用,并且您的产品是德语的,而另一种浏览器占主导地位,那么您就是 SOL。

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

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

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

作为对您的问题的直接回答,关于供应商特定扩展的优缺点:

优点

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

缺点

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

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

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

于 2010-01-01T09:23:16.883 回答
2

遵守标准被认为是整个行业的最佳实践,因为它可以带来可预测性和互操作性。

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

如果我们同意 W3C 是 Web 的标准制定机构,我们应该遵循他们制定的指导方针。

这意味着不依赖专有扩展,无论是谁介绍它们。

于 2009-12-26T06:21:21.327 回答
0

除非您的网站严格且专门针对 Windows + IE 用户,并且您很高兴失去来自 Firefox 用户、Mac 用户、使用 iPhone 或黑莓或 Android 设备的用户等的所有流量,否则使用任何专有的 IE 扩展都是非常短视的。微软刚刚与欧盟达成一致,在不久的将来提供一个“浏览器调色板”供用户选择作为默认浏览器,因此可以想象,坚持使用 IE 作为默认浏览器或唯一浏览器的 Windows 用户的百分比可能会在不久的将来减少。未来。

使用 Firefox 的专有扩展几乎是短视的——您将很难说服所有访问者为您的网站切换到 FF(从 IE、Safari 或其他任何他们喜欢的方式),而且,尽管使用的设备范围很广可以安装 FF 的范围比可以安装 IE 的范围更广,但您仍在切断 iPhone 和 Android 等设备,这部分市场的增长速度快于“传统 PC”。

于 2009-12-26T06:18:28.760 回答