我正在使用CSS flexbox重新构建网站。
在检查浏览器兼容性时,我看到所有现代浏览器都支持flexbox,但Safari8和IE 10需要供应商前缀。
在检查GoogleAnalytics(分析)时,我发现过去6个月中有96%的网站访问者使用的浏览器完全支持flexbox。其余4%使用需要前缀或不提供支持的浏览器。
由于我们谈论的是4%的用户,并且这个数字会越来越小(并且我希望代码尽可能简洁明了),因此我考虑不使用前缀,而是要求用户升级其前缀。浏览器。
我如何定位较旧的浏览器,以便向用户显示一条消息,要求他们更新浏览器?
这是我到目前为止的内容:
<!--[if IE]>
<div class="browserupgrade">
<p>You are using an outdated browser. Please <a href="http://browsehappy.com/">
upgrade your browser</a> to improve your experience.</p>
</div>
<![endif]-->
该IE条件注释涵盖了IE 6、7、8和9版本的信息。
这些访问者将收到带有下载当前浏览器链接的警报。但是,Microsoft从IE10开始不再支持条件注释。
现在我需要类似的东西:
有没有简单的JS / jQuery脚本来处理这项工作?还是另一种轻巧的方法?
感谢所有的答案。显然,有很多方法可以解决此问题(Modernizr,PHP,jQuery函数,纯Javascript,CSS,浏览器update.org等),其中许多方法都可以完全有效地完成这项工作。
该CSS基本上涵盖了除IE <= 7外的所有目标浏览器。
.browserupgrade { display: block; }
_:-ms-fullscreen, :root .browserupgrade { display: none; }
:-o-prefocus, .browserupgrade { display: none; }
@supports (display: flex) { .browserupgrade { display: none; }}
有关详细信息,请参见答案。
对于使用IE <= 7的相对较少的访问者,HTML中的条件注释:
<!--[if lte IE 7]>
<div style=" ... inline styles here ...">
browser upgrade message here
</div>
<![endif]-->
问题修改后的答案修改
这是实现此目的的唯一CSS方法。
由于CSS@supports
无法在目标(不需要的)浏览器上运行:Safari7-8,IE<=10,Android浏览器<4.4,适用于Android的UC浏览器和Opera Mini <8,因此在这些浏览器上将显示“
browserupgrade”消息使用此规则。
@supports (display: flex) { .browserupgrade { display: none; }}
有一些浏览器仍然支持非前缀flex
但不支持@supports
IE11(1)和OperaMini8,但是幸运的是,我们可以使用一些CSS特定规则来解决它们。
/* IE 11 */
_:-ms-fullscreen, :root .browserupgrade { display: none; }
/* Opera Mini 8 */
:-o-prefocus, .browserupgrade { display: none; }
这是完整的代码,显示针对您的目标浏览器的升级消息。
CSS
.browserupgrade { display: block; }
/* IE 11 */
_:-ms-fullscreen, :root .browserupgrade { display: none; }
/* Opera Mini 8 */
:-o-prefocus, .browserupgrade { display: none; }
/* all modern browsers */
@supports (display: flex) { .browserupgrade { display: none; }}
HTML
<div class="browserupgrade">
<p>You are using an outdated browser. Please <a href="http://browsehappy.com/">
upgrade your browser</a> to improve your experience.</p>
</div>
(1):IE 11 CSS规则也应该适用于IE Mobile 11,尽管还没有人对其进行测试。
此外,如果要自动重定向这些浏览器,可以使用一个小脚本,在延迟10秒后执行此操作。
var el = document.querySelector('.browserupgrade');
if (window.getComputedStyle(el,null).getPropertyValue("display") != 'none') {
setTimeout(function(){
window.locathtml" target="_blank">ion = 'http://browsehappy.com/';
}, 10000);
}
我试图访问HTTPS网站,如脸书和谷歌,我使用burpsuite拦截流,但每次都失败了 以下是我所尝试的:我将burp suite CA导入firefox浏览器/刷新firefox几次/尝试了我在stack上找到的解决方案:SSLPeerunverifiedException:peer未经过身份验证我将parrot OS从4.4更改为4.5,我将java版本更改为11.0.1 在警报面板中,我有以
Edge:(Mozilla/5.0(Windows NT 6.1;Win64;x64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/83.0.4103.97 Safari/537.36 EDG/83.0.478.45) 其中4个浏览器的共同点是Chrome和Safari关键字接受FireFox,但android上的FireFox在userAgent字符串中显
如何检查网页是否已被手机浏览器或电脑浏览器打开。我试过这个: 但它给出了这些类型的结果: 对于Fedora Firefox浏览器:Mozilla/5.0(X11;Linux i686;rv:13.0)Gecko/20100101 Firefox/13.0 从以上两个结果中,我无法区分网页是被手机还是电脑访问的。我该怎么做? 如果我能在Java做到这一点,那就太好了。
问题内容: 我想使用Python在本地计算机的网络浏览器(Chrome或Internet Explorer)中打开网站。 有没有可以为我做到这一点的模块? 问题答案: 该模块看起来很有希望
问题内容: 是否可以使用selenium浏览给定URL(网站)的所有URI ? 我的目标是使用具有给定选择的URL的selenium来启动firefox浏览器(由于有了此网站,我知道该怎么做),然后让firefox浏览URL(该网站)拥有的所有页面。我感谢有关如何在Python中进行操作的任何提示/帮助。 问题答案: 您可以在类中使用递归方法,例如下面给出的方法。 希望这对您有所帮助。
我需要在一个网页上滚动(例如twitter),并制作一个网站上出现的新元素的网络抓取。我试着用,和来做这个。这是我的密码 问题是我无法滚动到底部。和是相同的。但是如果我将从更改为,同样的代码可以正常工作。为什么?