ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – 检测webkit / moz /等.要显示的前缀

2019-05-30 07:16:43  阅读:240  来源: 互联网

标签:php css css3 user-agent vendor-prefix


我一直在为PHP做一个CSS minifier,除了一件事:

我想让它检测用户的浏览器,并确定用户是否需要border-radius,-webkit-border-radius,-moz-border-radius等.这样我就不必使用非常长且烦人的组.

这将检测-webkit,-moz等所有实例的border-radius并合并它们或者我将{vendor} border-radius放入CSS文件中,然后将其替换为-webkit-, – moz-,或无.第一个是理想的,因为我希望它可以扩展到其他项目.

对于我的生活,我无法弄清楚一个有效的PHP实现,它可以准确地检测出使用哪个前缀(而且我已经用谷歌搜索/搜索了我想到的任何地方).

任何帮助将非常感激!

解决方法:

这里的主要问题是PHP(服务器)不会知道您的浏览器的CSS功能(客户端).远程接近识别将被发送到PHP的浏览器的唯一信息是用户代理字符串.即使这样,您仍然需要根据您通过解析用户代理字符串找到的内容来研究特定版本的特定浏览器或引擎的CSS功能,并根据该信息对某些决策代码进行硬编码.

我认为这是尝试使用服务器端代码来确定客户端的CSS功能的主要责任.可能还有其他人,但不幸的是,这似乎是最大的障碍.

在客户端,存在像-prefix-free这样的脚本,使得添加前缀成为一项微不足道的工作;只使用未加前缀的属性和规则来提供缩小的CSS,并让脚本根据它对浏览器的了解(服务器没有)为您添加前缀.

此条目在其FAQ中的第一段似乎也值得一读:

“Something like this belongs to the server-side”

A server side script would need to add all prefixes, making the size of the CSS file considerably larger. Also, it should maintain a list of features that need prefixes, or add them all and unnecessarily bloat the stylesheet. -prefix-free automatically detects what needs a prefix and what doesn’t.

以及链接到的interview with its author

“This is something better done on the server. Do it once instead of on every pageload”

What -prefix-free exactly does, is impossible to do in the server. -prefix-free detects which features need a prefix and only adds it if needed. Also, it automatically detects which properties are available that need a prefix. It doesn’t have to keep lists of which prefixes to add for which features, everything gets feature detected, and thus is very future proof. With preprocessors, lists need to be maintained about this sort of stuff. Such lists are doomed to be incomplete and quickly get out of date. Every server-side prefixer I ever tried fails in a number of cases.

(强调我的.)

标签:php,css,css3,user-agent,vendor-prefix
来源: https://codeday.me/bug/20190530/1182369.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有