对于移动网站,我是否真的需要指定两个前缀和非前缀CSS属性名称?
例如:
-webkit-background-size:1em; /* absolutely mandatory */
background-size:1em; /* a useless redundancy */
是否有任何移动浏览器会忽略-webkit属性而只考虑未加前缀的浏览器?我想摆脱所有非前缀属性来缩短和清除CSS代码。
PS:使用Android 4.1销售的第三世界国家的大多数手机甚至不解析非前缀属性,它们仍然需要-webkit前缀。删除未加前缀的另一个原因。
答案 0 :(得分:1)
这种情况下的冗余并非无用。不支持标准background-size
但支持-webkit-background-size
的旧版移动浏览器仍会呈现。较新版本的浏览器可能会弃用-webkit
前缀属性,但会同时支持前缀属性值-webkit-background-size
和非前缀标准化属性background-size
。在这种情况下,指定的最后一个值将是使用的值,因此移动浏览器将忽略-webkit
前缀属性以支持标准化属性。
请注意,未来的浏览器可能会删除已弃用的值。在这种情况下,将不再支持带前缀的属性,并且网站的样式将会中断。为了确保当前和未来的功能,现在使用这两个版本是个好主意。如果您不再需要支持旧版本的浏览器,则应删除 前缀版本 ,以支持非前缀标准化版本。非前缀属性是CSS标准,不应该删除有利于供应商特定的前缀属性。
答案 1 :(得分:1)
我不知道在所有移动浏览器(有很多移动浏览器)中跟踪CSS属性支持的任何资源,因此很难确定是否有任何浏览器不再支持前缀版本。
我会注意到,特别是关于background-size
,看起来对非前缀版本的支持非常快,并且没有很多浏览器需要前缀:http://caniuse.com/#search=background-size。
目前的想法是,在将来的某个时候,将删除对属性的前缀版本的支持。例如,请参阅2013年5月发布的此WebKit邮件列表帖子:
我们会在一段时间内继续支持前缀属性,具体情况视具体情况而定。
https://lists.webkit.org/pipermail/webkit-dev/2013-May/024850.html
这可能需要很长时间才会发生,或者可能永远不会发生。但随着时间的推移,它发生的可能性会增加,而且仍在使用需要前缀版本的浏览器的人数会减少。
鉴于通过删除*非*前缀版本,您将只删除一行,在我看来,在短期或清晰度方面似乎没有大的收获来换取潜在的未来破损。
我建议您最初编写CSS 而不用前缀版本,然后查看您网站的浏览器统计信息,以查看您真正需要的前缀版本。对于某些带前缀的功能(例如渐变),也许较旧的浏览器可以在没有它们的情况下生存。