最近,我看到一些带有“webkit”标签的问题。这类问题通常是基于web的问题,与CSS、jQuery、布局、跨浏览器兼容性问题等有关…

那么什么是“webkit”,它与CSS有什么关系呢?我还注意到很多-webkit-…属性在各种网站的源代码。这两者有关系吗?

更新

从目前的答案来看…WebKit是一个HTML/CSS浏览器渲染引擎Safari/Chrome。IE/Opera/Firefox有这样的引擎吗?使用其中一种引擎的优缺点有什么不同?我可以在Firefox中使用WebKit功能吗?

终极问题……IE支持WebKit吗?

更新2

所有主流浏览器都使用不同的呈现引擎。我想这就是为什么有这么多跨浏览器兼容性问题的一个重要原因!

那么,是否存在某种项目或移动到所有浏览器都将使用的标准渲染引擎?HTML5会解决跨浏览器兼容性问题吗?


当前回答

Webkit是Safari和Chrome使用的web浏览器渲染引擎(在其他浏览器中,但这些是流行的)。

CSS选择器上的-webkit前缀是只有这个引擎才打算处理的属性,非常类似于-moz属性。我们中的许多人都希望这种情况消失,例如-webkit-border-radius将被标准的border-radius所取代,你将不需要为多个浏览器的同一件事制定多个规则。这实际上是“预规范”特性的结果,这些特性的目的是在标准版本出现时不干扰标准版本。

关于你的最新情况:……不,它和IE没有关系,IE至少在9之前使用了一个叫做Trident的不同渲染引擎。

其他回答

尽管这是一篇较老的文章,但对于较旧版本的Internet Explorer,还有另一种渲染方法。-webkit作为CSS的供应商前缀,你也可以下载一些JS应用程序,并把它们放在HTML的HEAD底部。

尝试使用Modernizr, HTML5 Shiv和response .js。这些都是惊人的兼容IE的polyfill脚本,使用polyfill,和其他资源,这将有助于更好地呈现HTML5元素在IE9和以下。

要使用这些填充,只需添加HTML布尔逻辑来放置它们,如果浏览器低于所需的IE版本。示例代码如下:

< >头 <!——HEAD Elements——> <script src="path/to/modernizr.js" type="text/javascript"></script> .js <!——[if lt IE 6]> <script src="path/to/HTMLSiv.js" type="text/javascript"> . > < /脚本 <script src="path/to/ response .js" type="text/javascript"> . > < /脚本 <!(endif)——> < / >头

WebKit is a layout engine designed to allow web browsers to render web pages. The WebKit engine provides a set of classes to display web content in windows, and implements browser features such as following links when clicked by the user, managing a back-forward list, and managing a history of pages recently visited. WebKit was originally created as a fork of KHTML as the layout engine for Apple's Safari; it is portable to many other computing platforms. It is also used in Google's Chrome Browser. WebKit's WebCore and JavaScriptCore components are available under the GNU Lesser General Public License, and the rest of WebKit is available under a BSD-style license.

源维基百科

关于布局引擎的更多信息,你可以看看这里

Webkit是苹果Safari浏览器和谷歌的Chrome浏览器中使用的html/css渲染引擎。 css值前缀-webkit-是特定于webkit的,它们通常是CSS3或其他非标准化的特性。

回答更新2 W3c是一个试图标准化这些东西的组织,他们编写规则,然后程序员编写他们的渲染引擎来解释这些规则。所以基本上w3c说div应该“这样工作”,然后引擎编写人员使用该规则来编写他们的代码,任何错误或对规则的错误解释都会导致兼容性问题。

除了@KennyTM所说的:

即 引擎:三叉戟 CSS-prefix: - ms 边缘 引擎:EdgeHTML→Blink3 CSS-prefix: - ms 火狐 引擎:壁虎 CSS-prefix: -moz 歌剧 引擎:Presto→Blink1 CSS-prefix: -o (Presto) and -webkit (Blink) Safari WebKit引擎: CSS-prefix: webkit 铬 引擎:WebKit→Blink2 CSS-prefix: webkit

1) 2013年2月12日,Opera(版本15+)宣布他们将从自己的引擎Presto转移到名为Blink的WebKit上。

2) 2013年4月3日谷歌(Chrome版本28+)宣布他们将使用基于webkit的Blink引擎。

3) 2018年12月6日,微软(Microsoft Edge 79+稳定)宣布他们将使用基于webkit的Blink引擎。

Webkit是Safari和Chrome使用的web浏览器渲染引擎(在其他浏览器中,但这些是流行的)。

CSS选择器上的-webkit前缀是只有这个引擎才打算处理的属性,非常类似于-moz属性。我们中的许多人都希望这种情况消失,例如-webkit-border-radius将被标准的border-radius所取代,你将不需要为多个浏览器的同一件事制定多个规则。这实际上是“预规范”特性的结果,这些特性的目的是在标准版本出现时不干扰标准版本。

关于你的最新情况:……不,它和IE没有关系,IE至少在9之前使用了一个叫做Trident的不同渲染引擎。