- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编辑了问题
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.
最佳答案
考虑供应商特定的扩展时,应尝试遵循的原则是progressive enhancement。基本思想是,您应该设计站点以使其服务于尽可能多的人。将其设计为在终端客户端上以纯HTML 3.2运行,没有JavaScript,CSS或任何特定于供应商的扩展。
然后,使用并非所有浏览器都支持的更高级的标准,使用视觉媒体的设计,使用可能被禁用的CSS和JavaScript,最后使用供应商特定的扩展来添加样式和功能,而这些扩展完全不支持其它浏览器。但是,因为您是从开始设计时就获得了每个人都支持的一组通用功能,所以不需要新功能中的额外功能就可以使站点正常工作。它会继续在具有旧功能的旧浏览器中工作,因为新功能是作为增强功能添加的,而不是网站正常工作所必需的。
因此,您不应依赖于这些特定于供应商的扩展,而应将其用作增强功能。如果由于某种原因您确实依赖它们(如果您的产品在没有特定浏览器可用的扩展的情况下无法运行),那么可能值得使用它。但是在那种情况下,您的 future 将与该浏览器紧密相连。如果它掉到了路边,那么你就是SOL。如果最终只能在韩国使用,并且您的产品是德语,而另一种浏览器是主要浏览器,那么您就是SOL。
现在,做出这些决定时可以选择不同种类的特定于供应商的功能。有些功能将始终特定于特定供应商。在其他平台上不适用的功能,或者已向标准机构提出的功能,并且整个方法已被拒绝。这些功能是您非常非常明智地要使用的功能。
标准轨道上还有其他功能。它们在当前的CSS 3草案中,几乎可以在两个或三个不同的浏览器中实现。如果您的用户群都支持这些功能,那么您可能就可以开始依赖这些功能,因为可以肯定的是,这些功能肯定会由大多数主要浏览器(大多数潜在用户使用)实现。 future 。
因此,总而言之,我要说的是,您应该随意为仅在单个浏览器中支持的页面添加效果。但是,除非您有充分的理由相信所有主要浏览器都将支持它们,否则您不应依赖这些。主流浏览器支持的HTML的当前状态可以做很多事情。请尽量在当前的标准和浏览器之间的通用功能范围内工作,同时请记住,遵守标准并不会带来麻烦,而是要提供功能和一定数量的样式。
作为您的问题的直接答案,有关特定于供应商的扩展的优缺点:
优点
关于javascript - W3C规范中未包含使用特定于 vendor 的扩展的优缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1962697/
使用 Webpack,支持将代码拆分为不同的包。其中一个选项是指定您想要选择作为分割点的一组模块。 取自 here : var webpack = require("webpack"); module
我正在编写一个依赖于某些导入的库包,但我不确定如何正确处理它。 让我从目录结构开始: go/src/github.com/ ├── developer A/ │ ├── project 1 │
我要在我的 Rails 应用程序中使用 git-submodules 跟踪依赖关系。到目前为止,我已经将 haml、shoulda 和 authlogic 之类的子模块添加到“vendor/plugi
Java 中的 java.vendor 和 java.vm.vendor 属性有区别吗? 看起来两者总是一样的。这是修正假设吗? 如果您知道这两个值不相同的情况,请列出它们。 编辑: 我试图弄清楚哪个
例子:“在测试/虚拟中销售 Rails 应用程序”“为生产销售 Rails 的推荐方法是什么?” 最佳答案 Vendoring 是将所有第 3 方项目(例如插件、gem 甚至 rails)移动到 /v
将我的 Go 服务部署到 Google AppEngine(标准)时,我收到一条错误,描述未找到模块版本,但编译一切正常。 模块位于私有(private) Github 实例上,并 check out
这个问题在这里已经有了答案: Error "can't load package: package my_prog: found packages my_prog and main" (3 个答案)
我是Laravel的新手,我已经安装了PHP,并且我已经在本地服务器上使用过EasyPHP。我也安装了Composer,这里可能会有问题,所以我首先将其安装在PHP低于V8的默认文件夹中。然后我用8.
我正在尝试将一个 Go 项目转换为新的模块标准,但我在一个依赖项上遇到了问题。 该存储库提供了一个库(在本例中为 golang.org/x/net/html)以向该库添加一些功能;这意味着它已经修改了
我在玩 create-react-app和目前的代码拆分。它工作得非常好,直到我开始导入供应商库,这些库将包含在每个块中。 这是我目前的做法: App.js const HomePage = Load
Closed. This question is opinion-based。它当前不接受答案。 想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。 在6个月前关闭
以下两者似乎都有效: element.style.WebkitFlex = 1; element.style.webkitFlex = 1; 但是哪种语法是标准的? 最佳答案 第一个, eleme
我正在构建来自 github.com/tarm/serial 的示例程序. 案例 1:如果将上述 repo check out 到 $GOPATH/src/github.com/tarm/serial
我需要为构建期间使用的工具使用“vendoring”(github.com/mjibson/esc 和 golang.org/x/tools/cmd/stringer) 以满足我们的来源管理要求。 我
在生产构建我的 vue.js 应用程序后,我看到我的 block vendor 文件太大,这对 Web 性能有影响,屏幕如下: 如何减小此文件的大小? 我尝试通过延迟加载在我的 router.js 中
我必须修改 vendor 文件中的结构。假设这是结构体在 vendor 文件中的方式 type sampleStruct struct { sampleStringvar1 str
我正在使用 styled-components我的 React 项目中的库。 我想在开发期间禁用供应商前缀的生成。 在这么多相似的属性中找到一个指定的 CSS 属性来切换它并在浏览器的开发工具中测试是
我想了解在复习 go 模块和 vendor 目录时遇到错误的原因。显然,在主模块和 vendor 文件夹中具有相同的包会导致错误,我想了解原因。据我了解,如果有go.mod go甚至不应该检查 ven
究竟什么是“贩卖”?你如何定义这个词? 它在不同的编程语言中意味着相同的事情吗?从概念上讲,不看确切的实现。 最佳答案 基于 this answer 定义 here为: Vendoring is th
我有一个具有多个入口点的应用程序。但所有入口点都使用相同的第三方库。我想将这些第三方库单独放在一个单独的文件中。当我按照 documentation 中的步骤操作时,它将我的应用程序代码也移动到第三个
我是一名优秀的程序员,十分优秀!