gpt4 book ai didi

javascript - W3C规范中未包含使用特定于 vendor 的扩展的优缺点是什么?

转载 作者:行者123 更新时间:2023-12-01 15:51:16 26 4
gpt4 key购买 nike

我编辑了问题

What is a vendor specific extension?

A vendor specific extensions can startwith a “-” (dash) or a “_”(underscore), usually followed by anabbreviation of the company or thebrowser project the extension isspecific for, f.i. “-moz-” for Mozillabrowsers, or “-webkit-” for WebKitbased browsers. This vendor specificprefix is followed by the propertyname. A good example of this is-webkit-border-radius, or -moz-border-radius.


IE具有3件事:
  • .htc文件支持(与javascript相同)
  • css表达式(也是javascript的一种形式)
  • 某些IE仅xhtmlcssproperties

  • 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,我们现在或将来会遇到任何问题吗?
    例子:
  • 如果同一解决方案具有jquery代码和特定于供应商的CSS代码,则应使用哪个?如果禁用了JS,则可以使用特定于供应商的CSS解决方案,但该页面无法通过W3C验证。如果我使用JS解决方案,则该页面将通过验证程序。一个例子是制作一个圆角。
  • 如果由于使用供应商特定的属性而未完全通过W3C验证站点,则从某种意义上说会受到伤害吗?为了获得良好的跨浏览器和平台兼容性,例如PC,MAC,iPhone和其他移动设备,我是否应该尽量避免使用特定于供应商的东西?
  • 如果为了通过W3C验证而同时拥有这两种解决方案,是否应该在特定于供应商的CSS属性上选择JS解决方案?如果我每次都选择JS解决方案,则该网站将无法在移动浏览器上正常运行。如果W3C验证为供应商特定的扩展提供了错误,可以不理会它吗?
  • 最佳答案

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

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

    因此,您不应依赖于这些特定于供应商的扩展,而应将其用作增强功能。如果由于某种原因您确实依赖它们(如果您的产品在没有特定浏览器可用的扩展的情况下无法运行),那么可能值得使用它。但是在那种情况下,您的 future 将与该浏览器紧密相连。如果它掉到了路边,那么你就是SOL。如果最终只能在韩国使用,并且您的产品是德语,而另一种浏览器是主要浏览器,那么您就是SOL。

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

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

    因此,总而言之,我要说的是,您应该随意为仅在单个浏览器中支持的页面添加效果。但是,除非您有充分的理由相信所有主要浏览器都将支持它们,否则您不应依赖这些。主流浏览器支持的HTML的当前状态可以做很多事情。请尽量在当前的标准和浏览器之间的通用功能范围内工作,同时请记住,遵守标准并不会带来麻烦,而是要提供功能和一定数量的样式。

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

    优点

  • 获得对可能不久就会普及的功能的访问
  • 为您的客户提供更好的值(value)
  • 您可以做一些很酷,有趣的东西
  • 帮助鼓励其他浏览器的实现者以及从事标准工作的人们,
  • 是一个好主意

    缺点
  • 该功能可能会消失,甚至在同一浏览器的更高版本中也不会打开
  • 如果您依赖于此类扩展,则可能会严重限制用户群
  • 该功能在发布之前可能会发生重大变化,从而导致页面破裂或某些很难发现的新嗅探模式。

  • 至于是否应该使用基于JavaScript的方法或CSS扩展方法,则应根据具体情况做出判断。如果您能够遵循渐进增强的原则,则可以很好地使用它们。只要它不是您网站的基本功能,或者您发现对所有主要浏览器都可以执行相同操作的其他方式,我想说CSS将比JavaScript解决方案更可取,因为它通常较小并且加载更快。

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

    关于javascript - W3C规范中未包含使用特定于 vendor 的扩展的优缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1962697/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com