bootstrap 支持ie83支持ie8及以下吗

bootstrap不能支持ie8 - ThinkPHP框架
引入了html5shiv,以及respond.js后还是不行。ie6,7可以不管,ie8总得支持吧,代码如下,大家帮忙看看&!DOCTYPE&html&
&&&&&title&Bootstrap&101&Template&/title&
&&&&&meta&name=&viewport&&content=&width=device-width,&initial-scale=1.0&&
&&&&&!--&Bootstrap&--&
&&&&&link&rel=&stylesheet&&href=&/twitter-bootstrap/3.0.3/css/bootstrap.min.css&&
&&&&&!--&HTML5&Shim&and&Respond.js&IE8&support&of&HTML5&elements&and&media&queries&--&
&&&&&!--&WARNING:&Respond.js&doesn't&work&if&you&view&the&page&via&file://&--&
&&&&&!--[if&lt&IE&9]&
&&&&&&&&&script&src=&/html5shiv/3.7.0/html5shiv.min.js&&&/script&
&&&&&&&&&script&src=&/respond.js/1.3.0/respond.min.js&&&/script&
&&&&&![endif]--&
&&&div&class=&container&&
&&&&&&&&&&&div&class=&row&&
&&&div&class=&col-lg-6&&
&&&&&div&class=&input-group&&
&&&&&&&span&class=&input-group-btn&&
&&&&&&&&&button&class=&btn&btn-default&&type=&button&&Go!&/button&
&&&&&&&/span&
&&&&&&&input&type=&text&&class=&form-control&&
&&&&&/div&&!--&/input-group&--&
&&&/div&&!--&/.col-lg-6&--&
&&&div&class=&col-lg-6&&
&&&&&div&class=&input-group&&
&&&&&&&input&type=&text&&class=&form-control&&
&&&&&&&span&class=&input-group-btn&&
&&&&&&&&&button&class=&btn&btn-default&&type=&button&&Go!&/button&
&&&&&&&/span&
&&&&&/div&&!--&/input-group&--&
&&&/div&&!--&/.col-lg-6&--&
&/div&&!--&/.row&--&
积分:1150
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。&&国之画&&&&&&
版权所有 京ICP备号-2
迷上了代码!IE8+兼容经验小结 - 简书
下载简书移动应用
写了45934字,被50人关注,获得了24个喜欢
IE8+兼容经验小结
本文知识解决了实际开发的问题,所以转载,原文地址:
最近一段时间,我都使用Flask+Bootstrap3的框架组合进行开发。本文就是在这种技术组合下,分享IE8+兼容性问题的解决方法。根据我的实践经验,如果你在写HTML/CSS时候是按照W3C推荐的方式写的,然后下面的几点都关注过,那么基本上很大一部分IE8+兼容性问题都OK了(这里的IE8+主要是指IE8,据个人目测,IE9+的渲染效果已经非常好了)。
测试IE兼容性必须要在Windows中测,而且是Win7+,因为WinXP最高只支持IE8,IE9就呵呵啦!大部分做Web的童鞋都不是使用Windows做为开发环境,要么是Linux发行版,要么是Mac OS。怎么办?一般有2种方法:
开Windows虚拟机
将开发环境暂时切换到Windows
如果你的机器足够快,我推荐前一种方式。但我之前是在二手电脑上开发的,开虚拟机简直卡出翔了,所以采用了第二种方法。如果你是Pythoner,我之前写的一篇日志《》可能会对你有点用处。然后需要在Win7里安装用于测试的浏览器,查了下百度给出的最近一个月,也不知道准不准哈:
浏览器份额
我觉得需要测的大概有:IE11、IETester(IE8-IE9)、360浏览器、搜狗浏览器、Chrome、Firefox、Safari for Windows。IETester测完了建议再用真实的IE8、IE9测一遍,以防万一。Safari最好还是找苹果设备实测。
首先需要确保你的HTML页面开始部分要有DOCTYPE声明。DOCTYPE告诉浏览器使用什么样的HTML或XHTML规范来解析HTML文档,具体会影响:
对标记、attributes 、properties的约束规则
对浏览器的渲染模式产生影响,不同的渲染模式会影响到浏览器对于CSS 代码甚至 JavaScript 脚本的解析
DOCTYPE是非常关键的,目前的最佳实践就是在HTML文档的首行键入:&!DOCTYPE html&
对于DOCTYPE的具体阐述就不展开了,可以参考:《》、《》。
使用meta标签调节浏览器的渲染方式
IE8中有一个“兼容性视图”的概念,当初IE8发布时,相对于IE6/7已经做出了非常大的改进,但是很多老站点仅针对IE6/7进行了优化,使用IE8渲染反而会一团糟。为了照顾这些苦逼的前端工程师,IE8加入了“兼容性视图”功能,这样的话就可以在IE8中使用IE6或IE7的内核渲染页面。这个当然不是我们想要的,所以需要使用meta标签来强制IE8使用最新的内核渲染页面,代码如下:
&meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"&
IE=edge表示强制使用IE最新内核,chrome=1表示如果安装了针对IE6/7/8等版本的浏览器插件Google Chrome Frame(可以让用户的浏览器外观依然是IE的菜单和界面,但用户在浏览网页时,实际上使用的是Chrome浏览器内核),那么就用Chrome内核来渲染。关于此meta标签的具体说明,可参见StackOverflow上的。国内存在很多双核浏览器比如360浏览器、搜狗浏览器,它们是怎么决定某页面到底使用哪种内核渲染?下面引用一段360浏览器v6新特性的:
由于众所周知的情况,国内的主流浏览器都是双核浏览器:基于Webkit内核用于常用网站的高速浏览。基于IE的内核用于兼容网银、旧版网站。以360的几款浏览器为例,我们优先通过Webkit内核渲染主流的网站,只有小量的网站通过IE内核渲染,以保证页面兼容。在过去很长一段时间里,我们主要的控制手段是一个几百k大小网址库,一个通过长期人工运营收集的网址库。尽管我们努力通过用户反馈、代码标签智能判断技术提高浏览器的自动切核准确率。但是在很多情况下,我们仍然无法达到百份百正确。因此,我们新增加了一个控制手段:内核控制Meta标签。只要你在自己的网站里增加一个Meta标签,告诉360浏览器这个网址应该用哪个内核渲染,那么360浏览器就会在读取到这个标签后,立即切换对应的内核。并将这个行为应用于这个二级域名下所有网址。
解决方法360已经告诉我们了,通过meta标签的方式建议其使用Webkit,代码如下:
&meta name="renderer" content="webkit"&
我没有做细致的调查,不知道其他的双核浏览器是否支持此特性。
Media Query
Bootstrap3中使用了大量的Media Query特性,但是IE8似乎无法识别,所以需要hack一下啦!Bootstrap3的官方文档中已经针对浏览器兼容性做了比较详细的,推荐采用解决此问题,具体方法参见它的文档即可。有一个地方需要注意的是,如果对Bootstrap3 media query声明的属性(比如.container)进行覆盖,那在不支持media query的浏览器中Respond.js起作用后,会把你的覆盖样式再次覆盖。我的解决方案是在后面加上!important.
实现CSS3的某些特性
IE8不支持CSS3的很多新特性,不过我们可以使用一些比较成熟的hack方法,我采用的是,它支持的特性有这些:border-radius、box-shadow、border-image、multiple background images、linear-gradient等。
官方文档给出了2种使用方式,一种是引入.htc文件,另一种则是使用PIE.js。如果使用第一种方法(官方推荐),那么需要设置.htc文件的Content-Type为text/x-component。这个也好办,如果你是通过nginx来托管此文件,只要在Nginx的配置文件中加入一条MIME规则即可。我建议使用Flask来托管它(放在static文件夹中),这样更方便,然后只需加入下面的代码:
import mimetypesmimetypes.add_type('text/x-component', '.htc')
特别注意:请一定阅读CSS PIE给出的。
识别HTML5元素
如果你在前端代码中使用了HTML5的新标签(nav/footer等),那么在IE中这些标签可能无法正常显示。我使用,具体使用方法见文档。
关于max-width
还有一个在IE8中经常遇到的问题就是max-width,网页中图片的尺寸可能比较宽,我会给它设置max-width: 100%来限制其宽度最大为父容器的宽度,但是有时候却不奏效,慢慢摸索才得知IE解析max-width所遵循的规则:严格要求直接父元素的宽度是固定的。经实验发现Chrome所遵守的规则比IE松一些,所以这个问题应该不归属为IE兼容性问题,不过我还是提一下吧。分享两个我遇到的场景:
(1)td中的max-width如果针对td中的img元素设置max-width: 100%,在IE和Firefox你会发现不奏效,而在Chrome中却是可以的。经查询发现需要给table设置table-layout: fixed,对此属性的具体解释见。
(2)嵌套标签中的max-width如下的HTML结构:
&div class="work-item"&
&a href="#" class="work-link"&
&img src="sample.jpg" class="work-image img-responsive"&
最外层元素.work-item设置了固定宽度,但是对img设置max-width为100%却无效,后来才发现需要再对a标签设置width: 100%,这样才能使最内层的img标签充满整个div。嵌套inline-block下padding元素重叠HTML代码:
&li&&a&1&/a&&/li&
&li&&a&2&/a&&/li&
&li&&a&3&/a&&/li&
ul li{ display: inline-}
ul li a{ display: inline- padding: 10px 15}
按理来说a标签之间的距离应该是30px,但在IE8中出现了重叠,只有15px。和也提到了同样的问题。我的解决方法是使用float: left替代display: inline-block实现水平布局。
placeholder
IE8下不支持HTML5属性placeholder,不过为解决此问题的js插件挺多的,比如:。
last-child
first-child是CSS2的内容,但是last-child就不是了,所以IE8不买账。推荐的做法不是使用last-child,而是给最后一个元素设置一个.last的class,然后对此进行样式设置,这样就全部兼容了。
background-size: cover
如果你想使用background-size: cover设置全屏背景,很遗憾IE8办不到...但可以使用IE独有的AlphaImageLoader滤镜来实现,添加一条如下的CSS样式:
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=Enabled, sizingMethod=Size , src=URL)
将sizingMethod设置为scale就OK了。还没完,如果你在此背景之上放置了链接,那这个链接是无法点击的。一般情况下的解决办法是为链接或按钮添加position:relative使其相对浮动。
filter blur
CSS3中提供支持滤镜效果的属性filter,比如支持高斯模糊效果的blur(类似iOS7的效果):
filter: blur(10px);
-webkit-filter: blur(10px);
-moz-filter: blur(10px);
IE8对filter: blur(10px)的显示效果是对HTML元素进行小范围的模糊处理,这个效果并不是高斯模糊,要想支持高斯模糊,需要如下设置:
filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius='10');
在实践中发现一个坑就是,所有position: relative的元素都不会生效。其他的发现是,IE9对filter: blur(10px)无效,而对filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius='10');是针对元素小范围的模糊效果。IE11对两种写法好像都无感。IE10则没有测试。
好了,目前来说我所遇到的IE8+兼容性问题就这些啦。前端和后端我都做一点,这样的好处在于一个人能够独立开发网站,坏处就是各方面都不精。如果你有蛮重要的补充,或者更好的解决方法,欢迎告诉我!PS: 最近做了些IE7兼容方面的工作,相关的经验见。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
选择支付方式:}

我要回帖

更多关于 bootstrap 支持ie8 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信