什么是WebKit以及它与CSS有什么关系?

Hri*_*sto 254 css webkit cross-browser rendering-engine

最近,我一直看到标签"webkit"的问题.这些问题通常倾向于与CSS,jQuery,布局,交叉浏览器兼容性问题等相关的基于Web的问题......

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

更新

所以从目前为止的答案...... WebKit是Safari/Chrome的HTML/CSS Web浏览器渲染引擎.IE/Opera/Firefox是否有这样的引擎?使用其中一个的优点和缺点是什么?我可以在Firefox中使用WebKit功能吗?

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

更新2

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

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

ken*_*ytm 149

更新:显然,WebKit是Safari/Chrome的HTML/CSS Web浏览器渲染引擎.IE/Opera/Firefox是否有这样的引擎?使用其中一个的优点和缺点是什么?我可以在Firefox中使用WebKit功能吗?

每个浏览器都由渲染引擎支持,以绘制HTML/CSS网页.

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

有关不同区域的比较列表,请参阅Web浏览器引擎的比较.

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

不是原生的.

  • 应该更新.Chrome开发者已经分叉了webkit,而且Opera不再使用presto了 (3认同)

jer*_*one 101

除了@KennyTM所说的:

  • IE
  • 边缘
  • 火狐
    • 发动机:壁虎
    • CSS前缀: -moz
  • 歌剧
    • 发动机:Presto闪烁1
    • CSS-prefix :( -oPresto)和-webkit(Blink)
  • 苹果浏览器
    • 引擎:WebKit
    • CSS前缀: -webkit

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

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

3) 2018年12月6日,微软(2019年初准备预览版)宣布他们将使用基于WebKit的Blink引擎.

  • ..这是很棒的信息!那么不同的渲染引擎会忽略这些前缀吗?即 Firefox 会忽略 `-msie`、`-o`、`-webkit`;Webkit 会忽略 `-moz`、`-o`、`-msie`;等等...? (2认同)
  • JKirchartz 是正确的。其他浏览器将忽略彼此的 css-prefix。 (2认同)
  • Opera正在转向的WebKit是Chromium品种,它本身就变成了Blink. (2认同)

Nic*_*ver 36

Webkit是Safari和Chrome使用的Web浏览器渲染引擎(除其他外,但这些是流行的).

-webkitCSS选择器上的前缀是只有这个引擎要处理的-moz属性,与属性非常相似.我们中的许多人希望这一点消失,例如-webkit-border-radius将被标准所取代,border-radius并且对于多个浏览器,您不需要针对同一事物的多个规则.这实际上是"预先规范"功能的结果,这些功能旨在不会干扰标准版本.

对于你的更新: ...不,它与IE无关,IE至少在9之前使用了一个名为Trident的不同渲染引擎.

  • 那么`-webkit-` 可以像 Firefox 一样用于 CSS3 特性的高级渲染吗? (2认同)
  • @Hristo - Firefox 使用了一些类似的属性,但它们被称为 `-moz`(对于 mozilla),它在解析样式时会忽略 `-webkit` 角色:) (2认同)

Cod*_*ess 33

这已得到回答和接受,但如果有人仍然想知道为什么今天的事情有些混乱,你必须阅读:

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

它很好地了解了gecko,webkit和其他主要渲染引擎是如何演变的,以及导致当前状态混乱的用户代理字符串的原因.

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

然后谷歌构建了Chrome,Chrome使用了Webkit,它就像Safari一样,想要为Safari构建的页面,因此假装是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,用户代理字符串完全混乱,几乎没用,每个人都假装成其他人,而且混乱很多.


edg*_*ner 8

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

的种类.查看Chrome Frame,它是Internet Explorer的一个插件,可以使用Webkit引擎.唯一的怪癖是你必须说服访问者安装插件.

更新

Chrome Frame不再维护或支持...

  • 我们不再支持Chrome Frame. (2认同)

Sot*_*ris 7

WebKit是一种布局引擎,旨在允许Web浏览器呈现网页.WebKit引擎提供了一组类,用于在Windows中显示Web内容,并实现浏览器功能,例如用户单击时的以下链接,管理后退列表以及管理最近访问过的页面的历史记录.

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

WebKit的WebCore和JavaScriptCore组件在GNU Lesser通用公共许可证下可用,其余的WebKit在BSD风格的许可证下可用.

来源维基百科

有关布局引擎的更多信息,请查看此处


Tyc*_*liz 7

-webkit-只是Chrome,Safari,Opera和iOS浏览器适合的一组。它们都有一个共同的祖先,因此它们的功能/限制(在运行CSS和Javascript时)通常仅限于该组。

开发人员将在-webkit-其后放置一些代码,这意味着该代码只能在Chrome,Safari,Opera和iOS浏览器上运行。这是完整列表:

-webkit- (Chrome,Safari,Opera的较新版本,几乎所有的iOS浏览器(包括Firefox for iOS);基本上是任何基于WebKit的浏览器)

-moz- (Firefox)

-o- (旧的,WebKit之前的Opera版本)

-ms- (Internet Explorer和Microsoft Edge)


SLa*_*aks 6

Webkit是Chrome和Safari使用的HTML呈现引擎.

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


rec*_*ive 5

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


JKi*_*rtz 5

Webkit是在Apple的Safari浏览器和Google的Chrome中使用的html / css呈现引擎。带-webkit-的css值前缀是特定于Webkit的,它们通常是CSS3或其他非标准化的功能。

回答更新2 w3c是试图标准化这些东西的主体,他们编写规则,然后程序员编写其渲染引擎来解释这些规则。因此,基本上w3c表示DIV应该以这种方式工作,然后引擎编写者使用该规则来编写其代码,任何错误或对该规则的错误解释都会导致兼容性问题。