css - 为什么浏览器在工作时使用不同的 css 规则并且定义几乎相同?

标签 css browser compatibility

我已经使用了很多 css,并且知道如何使用它。我明白为什么我必须放置额外的属性才能让不同的浏览器做同样的事情。我的问题是:为什么浏览器不实现一些更常见的属性?例如:

我需要文本不可选,所以我添加:

-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;

几乎所有人都说用户选择,而最后一个,似乎应该在多个浏览器上支持,根本不支持。

有谁知道为什么至少有些浏览器没有开始迁移到通用标准?如果每个人都有做同样事情的东西,也许浏览器可以努力解决这个问题?

我知道如果 Mozilla 摆脱了 -moz-user-select,那么一些页面会中断,但这并不意味着他们不能添加用户选择,以便更多页面可以工作。

有什么想法吗?

最佳答案

浏览器前缀属性旨在用作 beta/trial/demonstration/experimental/{inser more adjectives here} 并且没有完全实现或者是标准文档未完成/批准/完成的属性的一部分。

当该功能完全可用时,它会删除前缀并用作“标准”。

您可以通过如何声明多年来提出的背景渐变的所有方式来了解这在多大程度上是实验性的,最后是“标准”版本:

background: #1e5799; /* Old browsers */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 ); /* IE6-8 */
background: -moz-linear-gradient(top,  #1e5799 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#1e5799), color-stop(50%,#2989d8), color-stop(51%,#207cca), color-stop(100%,#7db9e8)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* IE10+ */
background: linear-gradient(to bottom,  #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* W3C */

来自 http://www.colorzilla.com/gradient-editor/

各浏览器版本请引用上述代码注释。

另外,读一读:http://davidwalsh.name/vendor-prefixes 引述:

Why Vendor Prefixes?

There are a few reasons browser vendors use prefixes:

  • To implement proprietary CSS properties that have no working standard and may never become standard
  • To provide early implementations of standard properties
  • To provide an alternate syntax than the standard
  • Other reasons may apply but these are the main reasons.

关于css - 为什么浏览器在工作时使用不同的 css 规则并且定义几乎相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25772472/

相关文章:

html - 更改电子邮件中的图像会扰乱 Outlook 2007、2010、2013 中的文本对齐方式

html - 旋转 div、绝对定位和响应性

css - 在 CSS 类中定义多个背景图像;浏览器会全部下载吗?

sql-server-2005 - 如何以 SQL 2000 + SQL 2005 兼容的方式删除存储过程?

java - 编译隔离的java文件

html - 位置绝对+滚动

javascript - 使用 JavaScript 获取一个月中的天数 :Issue

Python - Selenium - 如何使用浏览器快捷方式

Android webview 在默认浏览器中打开页面而不是我的 webview

java - 我在哪里可以找到权威的 Selenium WebDriver 到 Firefox 兼容性矩阵?