什么是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