Html 基于浏览器的CSS应用&x27;谁的发动机?

Html 基于浏览器的CSS应用&x27;谁的发动机?,html,css,browser,cross-browser,Html,Css,Browser,Cross Browser,最近,我一直在为某人建立一个网站,我对一些浏览器以一种方式呈现网站和其他浏览器以另一种方式呈现网站感到恼火。我决定研究一下原因,发现问题可能在于浏览器下面的HTML引擎。例如,Chrome和Opera(以及大多数(如果不是全部)Chrome浏览器)使用Blink引擎,这是WebKit引擎(从KHTML引擎派生而来)的一个分支。Safari使用WebKit。Internet Explorer使用三叉戟浏览器;Edge使用了三叉戟的叉子,称为EdgeHTML。Netscape和FireFox使用Ge

最近,我一直在为某人建立一个网站,我对一些浏览器以一种方式呈现网站和其他浏览器以另一种方式呈现网站感到恼火。我决定研究一下原因,发现问题可能在于浏览器下面的HTML引擎。例如,Chrome和Opera(以及大多数(如果不是全部)Chrome浏览器)使用Blink引擎,这是WebKit引擎(从KHTML引擎派生而来)的一个分支。Safari使用WebKit。Internet Explorer使用三叉戟浏览器;Edge使用了三叉戟的叉子,称为EdgeHTML。Netscape和FireFox使用Gecko引擎(或者在Netscape的情况下,考虑到浏览器已经停止使用)

考虑到所有这些,是否有可能将CSS应用于特定的引擎而不是浏览器?或者,当我们尝试使用特定于浏览器的CSS时,是否已经做到了这一点?用户代理字符串做这件事的目的是什么(这显然是因为开发者想模仿其他浏览器而弄糟的)

注意,通过比较这些引擎之间的关系,我认为有3种主要引擎:基于KHTML的、基于Trident的和Gecko的。因此,我猜想这个问题的答案将给出至少三种不同的方法(每个主引擎一种)。

即使可能(使用供应商前缀),维护代码库也可能是一件痛苦的事情。我建议你去看医生

我的重置是重置和规范化的合并。

即使可能(使用供应商前缀),维护代码库也可能是一件痛苦的事情。我建议你去看医生


我的重置是重置和正常化的合并。

您可以使用供应商前缀,甚至可以通过使用供应商前缀的支持查询来定位其中一些前缀,例如

@supports (-webkit-appearance:none) {}
这方面有很多方法


也就是说,你真的,真的不应该。这将是一场噩梦

浏览器差异是由以下原因造成的:

1) 不同的用户代理样式(默认浏览器规则);或者我会帮你处理的

2) 一些实验性的特性可能只对某些浏览器可用,或者在它们之间有所不同,通常由供应商前缀来处理;自动引用器,比如Post CSS,可以很好地处理这个问题

3) 不同的特点;了解会让你走很长的路,当你发现一个限制时,一定要使用回退,甚至多填充

99.999%可以通过normalise、自动刷新器以及对浏览器功能和回退的良好理解来实现


请记住,您的项目应该在所有浏览器上都能正常运行(或者尽可能多地运行,没有人希望在2018年支持IE6),但在某些/大多数浏览器上,它看起来会更好,体验也会更好。这就是渐进增强和优雅降级的目的

可以使用供应商前缀,甚至可以通过使用供应商前缀的支持查询(如

@supports (-webkit-appearance:none) {}
这方面有很多方法


也就是说,你真的,真的不应该。这将是一场噩梦

浏览器差异是由以下原因造成的:

1) 不同的用户代理样式(默认浏览器规则);或者我会帮你处理的

2) 一些实验性的特性可能只对某些浏览器可用,或者在它们之间有所不同,通常由供应商前缀来处理;自动引用器,比如Post CSS,可以很好地处理这个问题

3) 不同的特点;了解会让你走很长的路,当你发现一个限制时,一定要使用回退,甚至多填充

99.999%可以通过normalise、自动刷新器以及对浏览器功能和回退的良好理解来实现


请记住,您的项目应该在所有浏览器上都能正常运行(或者尽可能多地运行,没有人希望在2018年支持IE6),但在某些/大多数浏览器上,它看起来会更好,体验也会更好。这就是渐进增强和优雅降级的目的

1+,我甚至在浏览器、chrome和firefox之间的打印预览上也遇到了同样的问题。是否在打印预览中应用了相同的重置和规格化?谢谢。它通常是应用的,但是关于CSS在打印中的应用,似乎没有跨浏览器的指导原则。在mobile first布局中,chrome通常应用第一种样式,因此我在桌面的媒体查询中也指定了打印,例如:@media(最小宽度:769px),print{…}值得尝试并了解更多关于它们的信息,非常感谢您的响应;)1+,我甚至在浏览器、chrome和firefox之间的打印预览上也遇到了同样的问题。是否在打印预览中应用了相同的重置和规格化?谢谢。它通常是应用的,但是关于CSS在打印中的应用,似乎没有跨浏览器的指导原则。在mobile first布局中,chrome通常应用第一种样式,因此我在桌面的媒体查询中也指定了打印,例如:@media(最小宽度:769px),print{…}值得尝试并了解更多关于它们的信息,非常感谢您的响应;)