什么是WebKit,它是如何与CSS相关的?

最近,我已经看到标签“webkit”的问题。 这样的问题通常倾向于与CSS,jQuery,布局,跨浏览器兼容性问题等有关的基于Web的问题。

那么这个“webkit”是什么?它与CSS有什么关系? 我也注意到各种网站的源代码中有很多-webkit-...属性。 这两个有关系吗?

更新

所以从目前的答案… WebKit是Safari / Chrome的HTML / CSS网页浏览器渲染引擎。 IE / Opera / Firefox是否有这样的引擎,以及使用其他引擎的优缺点有哪些? 我可以在Firefox中使用WebKitfunction吗?

最终的问题是IE支持WebKit吗?

更新2

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

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

更新:显然,WebKit是Safari / Chrome的HTML / CSS Web浏览器呈现引擎。 IE / Opera / Firefox是否有这样的引擎,以及使用其他引擎的优缺点有哪些? 我可以在Firefox中使用WebKitfunction吗?

每个浏览器都有一个渲染引擎来绘制HTML / CSS网页。

  • IE→ 三叉戟 (停产)
  • Edge→ EdgeHTML (三叉戟清理叉)
  • Firefox→ 壁虎
  • 歌剧→ Presto (自2013年2月起不再使用Presto,现在考虑Opera = Chrome)
  • Safari→ WebKit
  • Chrome→ Blink (WebKit的一个分支)。

查看网页浏览器引擎比较不同领域的比较列表。

最终的问题是IE支持的WebKit?

不是原生的。

除了@KennyTM所说的:

  • IE
    • 引擎: 三叉戟
    • CSS-prefix: -ms
  • 边缘
    • 引擎: EdgeHTML
    • CSS-prefix: -ms
  • 火狐
    • 引擎: 壁虎
    • CSS-prefix: -moz
  • 歌剧
    • 引擎: Presto → 闪烁 1
    • CSS-prefix: -o (Presto)和-webkit (Blink)
  • 苹果浏览器
    • 引擎: WebKit
    • CSS-prefix: -webkit
    • 引擎: WebKit → 闪烁 2
    • CSS-prefix: -webkit

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

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

Webkit是Safari和Chrome使用的Web浏览器渲染引擎(其中包括但不限于stream行的Web浏览器)。

CSSselect器上的-webkit前缀是只有这个引擎打算处理的属性,非常类似于-moz属性。 我们中的许多人都希望这消失,例如-webkit-border-radius将被标准的border-radius所替代,并且对于多个浏览器,您不需要多个规则来执行相同的操作。 这实际上是“预定义”function的结果,这些function旨在不干扰标准版本。

对于你的更新: …不,它与IE真的没有关系,IE至less在9之前使用了一个叫做Trident的不同渲染引擎。

这已经得到了答复和接受,但如果有人仍然在想,为什么今天的事情有点混乱,你必须阅读:

http://webaim.org/blog/user-agent-string-history/

它提供了gecko,webkit和其他主要渲染引擎是如何演变的,以及导致当前用户代理string混乱的状态的一个好主意。

引用TL的最后一段; DR目的:

然后谷歌build立了Chrome浏览器,Chrome浏览器使用了Webkit,就像Safari一样,并且想要为Safari创build页面,所以假装成Safari浏览器。 因此,Chrome使用了WebKit,并假装为Safari,而WebKit假装为KHTML,KHTML假装为Gecko,所有的浏览器都假装为Mozilla,Chrome自称为Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13 ,用户代理string是一个完整的混乱,几乎没有用,每个人都假装是其他人,混乱丰富。

最终的问题是IE支持WebKit吗?

有点。 查看Chrome Frame ,它是Internet Explorer的一个插件,它使用Webkit引擎。 唯一的怪癖是你必须说服你的访问者来安装插件。

WebKit是一种布局引擎,旨在允许Web浏览器呈现网页。 WebKit引擎提供了一组类,用于在Windows中显示Web内容,并实现浏览器function,例如用户点击后的链接,pipe理后退列表以及pipe理最近访问的页面的历史logging。

WebKit最初是作为KHTML的一个分支来创build的,作为Apple Safari的布局引擎; 它可以移植到许多其他计算平台。 它也用于Google的Chrome浏览器。

WebKit的WebCore和JavaScriptCore组件在GNU宽通用公共许可证下可用,WebKit的其余部分可以使用BSDforms的许可证。

来源维基百科

有关布局引擎的更多信息,请看这里

Webkit是Chrome和Safari使用的HTML渲染引擎。

它支持许多以-webkit-为前缀的自定义CSS属性。

Webkit是在stream行的浏览器Safari和Chrome以及其他浏览器中使用的渲染引擎。

Webkit是Apple的Safari浏览器和Google的Chrome中使用的html / css渲染引擎。 css值的前缀-webkit是webkit特定的,通常是CSS3或其他非标准化的function。

回答更新2 W3C是试图规范这些事情的机构,他们编写规则,然后程序员编写他们的渲染引擎来解释这些规则。 所以基本上w3c说DIV应该工作“这样”引擎编写器然后使用该规则来编写他们的代码,任何错误或错误的规则解释导致兼容性问题。

我作为一个网站devise者遇到的一个常见问题是很多人使用IE6 +。 通常没有什么大不了的,除了CSS,我必须添加多个渲染语法来parsing每个浏览器的每个请求。 这将是非常好的,如果有一个通用的CSS渲染设置,IE浏览器可以像Chrome / FF / Opera和Webkit一样轻松阅读。 与IE的问题是,如果我不使用所有适当的CSS样式和呈现,比我的网站看起来和使用IE浏览器以外的每个浏览器很好。 这可能会让一个不满意的,顽固的IE客户。

示例是这样的:让我们说我需要一个1px,边框半径为10%的灰色边框。 对于Chrome和其他人,我使用webkit属性。 现在,对于IE,我必须使用简单的旧CSS值“border:1px solid#E5E5E5”和“border-radius:10%”来添加单独的CSS样式。 一个积极的结果并不总是保证所有的IE浏览器版本,但在大多数情况下,这种方法对我和其他许多人来说工作正常。

即使这是一个较旧的post,也有另一种方法来渲染旧版本的Internet Explorer。 -webkit,而作为一个CSS供应商前缀,您还可以下载一些JS应用程序,并将它们放在HTML的HEAD的底部。

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

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

 <head> <!-- HEAD Elements --> <script src="path/to/modernizr.js" type="text/javascript"></script> <!--[if lt IE 6]> <script src="path/to/HTMLSiv.js" type="text/javascript"> </script> <script src="path/to/respond.js" type="text/javascript"> </script> <![endif]--> </head> 

关于WebEngines一个很好的文档,尤其是WebEngines及其开发者,你可以在这里阅读: WebKit