让Bootstrap 3兼容IE8浏览器
看到這篇文章有越來(lái)越多的人看,我決定給大家節(jié)省時(shí)間,廢話少說(shuō)。有幾個(gè)點(diǎn)大家要注意。
1、本地調(diào)試需要Web Server(如IIS、Apache,Nginx),單純地本地打開文件不能看到兼容效果。
2、如果你發(fā)現(xiàn)已經(jīng)引用了respond.js和Bootstrap,仍無(wú)效果,請(qǐng)查看你的Bootstrap是否使用了CDN文件。(詳情看第4點(diǎn))
3、本文主要針對(duì)Bootstrap3版本,如果你是Bootstrap2 ,請(qǐng)搜索 BSIE ,還可以兼容IE6瀏覽器.
4、Bootstrap3 需要Html5文檔聲明。
?
最近在研究Bootstrap(官方,Github)這個(gè)優(yōu)秀的前端框架,Bootstrap最開始是Twitter團(tuán)隊(duì)內(nèi)部的一個(gè)前端框架,所謂前端框架就是一個(gè)CSS/HTML框架,框架里面有下拉菜單、按鈕組、按鈕下拉菜單、導(dǎo)航、導(dǎo)航條、面包屑、分頁(yè)、排版、縮略圖、警告對(duì)話框、進(jìn)度條、媒體對(duì)象等。Bootstrap他們預(yù)先定義好,等要進(jìn)行正式制作網(wǎng)頁(yè)的時(shí)候,我們可以直接用里面的class就可以了。
今天不多介紹Bootstrap的功能,以后有機(jī)會(huì)可以重點(diǎn)介紹一下,確實(shí)十分優(yōu)秀。響應(yīng)式布局,定制性強(qiáng),組件豐富,與Jquery完美契合。
進(jìn)入主題,說(shuō)說(shuō)Bootstrap 3的兼容IE8問(wèn)題。
Bootstrap是一個(gè)響應(yīng)式的布局,你可以在寬屏電腦、普通電腦,平板電腦,手機(jī)上都得到非常優(yōu)秀的布局體驗(yàn)。這種響應(yīng)式的布局正是通過(guò)CSS3的媒體查詢(Media Query)功能實(shí)現(xiàn)的,根據(jù)不同的分辨率來(lái)匹配不同的樣式。IE8瀏覽器并不支持這一優(yōu)秀的Css3特性,Bootstrap在開發(fā)文檔中寫了如何使用進(jìn)行兼容IE8。但是筆者多次嘗試沒(méi)有成功,IE8的布局是亂的。直到今天忍無(wú)可忍,決定再嘗試一下,最終獲得成功。有些細(xì)節(jié)沒(méi)有注意到,導(dǎo)致IE8沒(méi)法響應(yīng)式布局。
下面講解下如何讓Bootstrap 3兼容IE8瀏覽器,至于有人會(huì)問(wèn)我如何兼容IE6 IE7,請(qǐng)繞道搜索bsie (bootstrap2)。
Bootstrap在IE8中肯定不如Chrome、Firefox、IE11那么完美,部分組件不保證完全兼容,還是要Hack的。這里不談
?
1、使用html5文檔聲明
<!doctype html> <html lang="en"> <head><meta charset="UTF-8"><title>Document</title> </head> <body></body> </html>2、加入meta標(biāo)簽
前者定義媒體查詢,后者確定顯示此網(wǎng)頁(yè)的IE版本。
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge">3、引入bootstrap文件
這步十分重要,這里要看你是引用其他網(wǎng)站(CDN)的bootstrap文件還是把Bootstrap文件放本地。
這里我放在本地,因?yàn)橹蟮牟渴鸨容^簡(jiǎn)單。
?4、引入respond.js 和?html5.js
respond.js(Github)是用于媒體查詢的,項(xiàng)目說(shuō)明描述:要和需要進(jìn)行媒體查詢的文件放在同一域中。不然CDN部署的需要更改一些選項(xiàng),之后再說(shuō)。
html5shiv :?html5.js(Google Code)(Github)是讓不(完全)支持html5的瀏覽器“支持”html5標(biāo)簽。
<!--[if lte IE 9]> <script src="bootstrap/js/respond.min.js"></script> <script src="bootstrap/js/html5.js"></script> <![endif]-->4.1 CSS文件在CDN上(或子域名)的Respond.js部署
詳情請(qǐng)見:https://github.com/scottjehl/Respond#cdnx-domain-setup
Github上說(shuō),這個(gè)js是通過(guò)ajax復(fù)制一份你的css文件。所以需要一個(gè)代理頁(yè)面去請(qǐng)求文件。
需要上傳一些文件,步驟比較復(fù)雜,而且一般公共CDN基本沒(méi)人有這種操作權(quán)限。
之后再添加代碼。
<!-- Respond.js proxy on external server --> <link href="http://externalcdn.com/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /><!-- Respond.js redirect location on local server --> <link href="/path/to/respond.proxy.gif" id="respond-redirect" rel="respond-redirect" /><!-- Respond.js proxy script on local server --> <script src="/path/to/respond.proxy.js"></script>5、添加1.X版本的Jquery庫(kù)
Jquery 2.0以上就不再支持IE 6/7/8 這三大虐心神器了。所以要想使用Bootstrap3中的一些插件效果,比如modal 彈出層對(duì)話框這類控件。我們就需要添加 2.0以下的,這里我用1.10.2的Jquery庫(kù)。
Jquery 2.0以上就不再支持IE 6/7/8 這三大虐心神器了。所以要想使用Bootstrap3中的一些插件效果,比如modal 彈出層對(duì)話框這類控件。我們就需要添加 2.0以下的,這里我用1.10.2的Jquery庫(kù)。?6、總結(jié)
本人非前端工程師,只是愛(ài)好者一枚,如有錯(cuò)誤還請(qǐng)批評(píng)指教。大家相互學(xué)習(xí)~
本人也正是做了個(gè)Bootstrap3的小項(xiàng)目(姓名代碼查詢,由于使用CDN,E8有短暫屏閃,且屏閃無(wú)法避免),正是這個(gè)項(xiàng)目讓我總結(jié)以上經(jīng)驗(yàn)出來(lái)。
主要還是在于讓respond.js起效果,關(guān)鍵就是讓bootstrap的文件和respond.js同域,不同域需要用CDN上的html做ajax。
懶人代碼總結(jié)如下:
<!doctype html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="author" content="Jophy" /><title>ie8</title><link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"><link rel="stylesheet" href="bootstrap/css/style.css"><!--[if lte IE 9]><script src="bootstrap/js/respond.min.js"></script><script src="bootstrap/js/html5.js"></script><![endif]--><script src="http://libs.baidu.com/jquery/1.10.2/jquery.js"></script><script src="bootstrap/js/bootstrap.min.js"></script> </head> <body> </body> </html>?程序員的基礎(chǔ)教程:菜鳥程序員
總結(jié)
以上是生活随笔為你收集整理的让Bootstrap 3兼容IE8浏览器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 删除顺序表指定下标的元素
- 下一篇: lt;xliff:ggt;标签