淺談如何讓 Bootstrap 3兼容IE8瀏覽器

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瀏覽器中打開頁面發現,兼容性問題並無獲得解決(坑、坑、坑)。經過查閱相關資料,筆者總結幾點注意事項(效果實現的關鍵):瀏覽器

  1. 本地調試須要Web Server(如IIS、Apache,Nginx),單純地本地打開文件不能看到兼容效果;
  2. 若是你發現已經引用了 respond.js 和 Bootstrap,仍無效果,請查看你的Bootstrap是否使用了CDN文件;
  3. Bootstrap3 須要Html5文檔聲明;
  4. Jquery 版本須要在2.0如下。

模板代碼以下:

<!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>
相關文章
相關標籤/搜索