html页面在360极速浏览器样式不兼容

 Pala   2017-08-07 19:34   181 人阅读  0 条评论

 在此并不从整体的角度来阐述,只是简单得记录下今天花了一个下午的时间才解决的问题。

 下面是在360兼容模式的显示:

而在火狐浏览器、360浏览器的极速模式、甚至IE浏览器中显示都是正常的,如下图所示:

这让我很郁闷,都说360浏览器用的是IE内核,IE都可以了它怎么就不行呢。从效果上看,显示出错的页面:margin-left、border-radius、box-shadow都出了问题。想查看该元素的样式,发现兼容模式下无法右键查看源代码,后用f12开发者工具找到对应的html标签,然后查看了他对应的样式,发现确实这几个属性都没有载入。于是直接将border-radius内嵌元素,发现也无法载入。很是不解,无意发现了此时文档模式用的IE5,如下图:

97.png

把文档模式改成IE9,显示就正常了。但为何会使用IE5的文档模式呢?如何才能自动使用高版本的模式,就百度了一下,发现加上下面这句话,360浏览器就会自动使用最高的文档模式了。

360浏览器官方解答:

由于众所周知的情况,国内的主流浏览器都是双核浏览器:基于Webkit内核用于常用网站的高速浏览。基于IE的内核用于兼容网银、旧版网站。以360的几款浏览器为例,我们优先通过Webkit内核渲染主流的网站,只有小量的网站通过IE内核渲染,以保证页面兼容。在过去很长一段时间里,我们主要的控制手段是一个几百k大小网址库,一个通过长期人工运营收集的网址库。

尽管我们努力通过用户反馈、代码标签智能判断技术提高浏览器的自动切核准确率。但是在很多情况下,我们仍然无法达到百份百正确。因此,我们新增加了一个控制手段:内核控制Meta标签。只要你在自己的网站里增加一个Meta标签,告诉360浏览器这个网址应该用哪个内核渲染,哪么360浏览器就会在读取到这个标签后,立即切换对应的内核。并将这个行为应用于这个二级域名下所有网址。

目前该功能已经在所有的360安全浏览器实现。我们也建议其它浏览器厂商一起支持这个实现。让这个控制标签成为行业标准。

代码示例

在head标签中添加一行代码:

<html>
    <head>
        <meta name="renderer" content="webkit|ie-comp|ie-stand">
    </head>
    <body>
    </body>
</html>

content的取值为webkit,ie-comp,ie-stand之一,区分大小写,分别代表用webkit内核,IE兼容内核,IE标准内核。

若页面需默认用极速核,增加标签:<meta name="renderer" content="webkit">

若页面需默认用ie兼容内核,增加标签:<meta name="renderer" content="ie-comp">

若页面需默认用ie标准内核,增加标签:<meta name="renderer" content="ie-stand">

注意:引号要英文状态下的,直接复制代码后看一下格式对不对,请自行更正。


http://blog.csdn.net/u014527912/article/details/46928189

本文地址:http://chenxm.cc/post/252.html
版权声明:本文为原创文章,版权归 Pala 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?