Bootstrap 是最受歡迎的 HTML、CSS 和 JS 框架,用於開發響應式佈局、移動設備優先的 WEB 項目。—— Bootstrap 官網css
Bootstrap 來自 Twitter,是目前最受歡迎的前端框架。Bootstrap 是基於 HTML、CSS、JavaScript的,它簡潔靈活。開發過程當中,咱們只需經過給DOM元素添加相應的class便可調用,使得 Web 開發更加快捷。 html
接下來進入主題,談談 Bootstrap 3 瀏覽器兼容性問題及其對應的解決方案:前端
一、移動設備支持狀況html5
二、PC端支持狀況jquery
注:Windows 支持 IE 8-11。git
請參考 瀏覽器支持狀況 以獲取詳細的 Bootstrap 3在各個瀏覽器上的支持狀況。github
如上述所示,IE8 是被支持的。然而,不少 CSS3 屬性和 HTML5 元素是不被支持的。例如,Bootstrap 的響應式佈局是經過CSS3的媒體查詢(Media Query)功能實現的,根據不一樣的分辨率來匹配不一樣的樣式,IE8瀏覽器並不支持這一優秀的CSS3特性。Bootstrap在開發文檔中已經明確指出, IE8 須要 Respond.js 配合才能實現對媒體查詢(media query)的支持。按照官方文檔,筆者在HTML文件<head></head>標籤底部添加了以下的代碼:chrome
<!--[if lt IE 9]>
<script src="https://cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.js"></script>
<![endif]-->
注:其中 html5shiv.min.js 文件是讓不(徹底)支持html5的瀏覽器支持 html5 標籤;respond.js 文件是讓IE8實現對媒體查詢(media query)的支持。bootstrap
可是,在IE8瀏覽器中打開頁面發現,兼容性問題並無獲得解決(坑、坑、坑)。經過查閱相關資料,筆者總結幾點注意事項(效果實現的關鍵):瀏覽器
模板代碼以下:
<!DOCTYPE html> <html lang="en"> <head> <!-- 編碼格式 --> <meta charset="UTF-8"> <title></title> <!-- 做者 --> <meta name="author" content="author"> <!-- 網頁描述 --> <meta name="description" content="hello"> <!-- 關鍵字使用","分隔 --> <meta name="keywords" content="a,b,c"> <!-- 禁止瀏覽器從本地機的緩存中調閱頁面內容 --> <meta http-equiv="Pragma" content="no-cache"> <!-- 用來防止別人在框架裏調用你的頁面 --> <meta http-equiv="Window-target" content="_top"> <!-- content的參數有all,none,index,noindex,follow,nofollow,默認是all --> <meta name="robots" content="none"> <!-- 收藏圖標 --> <link rel="Shortcut Icon" href="favicon.ico"> <!-- 網頁不會被緩存 --> <meta http-equiv="Cache-Control" content="no-cache, must-revalidate"> <!-- 解決部分兼容性問題,若是安裝了GCF,則使用GCF來渲染頁面,若是未安裝GCF,則使用最高版本的IE內核進行渲染。 --> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <!-- 頁面按原比例顯示 --> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="plugin/bootstrap-3.3.0/css/bootstrap.min.css"> <!--[if lt IE 9]> <script src="https://cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.js"></script> <![endif]--> </head> <body> <script src="plugin/jquery/jquery-1.11.2.min.js"></script> </body> </html>