如何使用 Selectivizr 使 Bourbon Neat 网格在 IE8 中工作



我有一个不幸的任务,让波旁整洁与ie8一起工作。Thoughtbot的文档说你使用Selectivizr。我按照 Selectivizr 的说明进行操作,在 ie8 中测试时我看不到任何不同。我也不明白是否需要任何回退 css。有什么想法或解决方案吗?最赞赏!

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
<meta name="description" content="">
<!-- FONTS -->
<!--Typekit - Adrianna Extended Demibold-->
<script type="text/javascript" src="//use.typekit.net/sjw4zgk.js"></script>
<script type="text/javascript">try{Typekit.load();}catch(e){}</script>
<!-- AUTO RELOAD FOR HAMMER -->
        <!-- Hammer reload -->
          <script>
            setInterval(function(){
              try {
                if(typeof ws != 'undefined' && ws.readyState == 1){return true;}
                ws = new WebSocket('ws://'+(location.host || 'localhost').split(':')[0]+':35353')
                ws.onopen = function(){ws.onclose = function(){document.location.reload()}}
                ws.onmessage = function(){
                  var links = document.getElementsByTagName('link'); 
                    for (var i = 0; i < links.length;i++) { 
                    var link = links[i]; 
                    if (link.rel === 'stylesheet' && !link.href.match(/typekit/)) { 
                      href = link.href.replace(/((&|?)hammer=)[^&]+/,''); 
                      link.href = href + (href.indexOf('?')>=0?'&':'?') + 'hammer='+(new Date().valueOf());
                    }
                  }
                }
              }catch(e){}
            }, 1000)
          </script>
        <!-- /Hammer reload -->

<!-- CSS/SCSS -->
<link rel='stylesheet' href='css/ostrich-sans.css'>
<link rel='stylesheet' href='css/font-awesome.css'>
<link rel='stylesheet' href='css/normalize.css'>
<link rel='stylesheet' href='css/responsive-nav.css'>
<link rel='stylesheet' href='css/style.css'>
<!-- IOS LINK STYLES -->
<style type="text/css">
/*.applelinks a {color:#c4d52d; display:inline-block; padding: 10px 0;}*/
/*Disable touch-highlight
-webkit-tap-highlight-color: rgba(0,0,0,0); */
</style>
<!-- JS MODERNIZR -->
<script src='js/modernizr.custom.87213.js'></script>
<link href="favicon.ico" rel="shortcut icon">
<link href="apple-touch-icon.png" rel="apple-touch-icon">

<title>Title</title>
<!-- ZEPTO FALLBACK TO JQUERY -->
<script>
document.write('<script src=' +
('__proto__' in {} ? 'js/zepto.min' : 'js/jquery.min') +
'.js></script>')
</script>
<!--[if lte IE 8]>
<script type="text/javascript" src="selectivizr.js"></script>
<![endif]-->   
</head>
<body>
<header>
<nav class="nav-collapse">
  <ul>
    <li><a href="#">Home</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">Projects</a></li>
    <li><a href="#">Contact</a></li>
  </ul>
</nav>
</header>
  <section class="sec-one">
      <aside>Aside</aside>
      <article>Article</article>
  </section>
    <section class="sec-two">
      <aside>Aside</aside>
      <article>Article</article>
  </section>
    <section class="sec-three">
      <aside>Aside</aside>
      <article>Article</article>
    <p>Content copy</p>

  </section>

<script src='js/responsive-nav.js'></script>
<script src='js/app.js'></script>
<!-- INITIATE RESONSIVE-NAV -->
<script>
    var navigation = responsiveNav(".nav-collapse", {
        label: '<i class="icon-reorder icon-2x"></i>'
    });
</script>

</body>
</html>

selectivizr.js依赖于jquery(或类似的库(。 确保你在选择性之前加载 jquery ...

<!--[if lte IE 8]>
**<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>**
<script type="text/javascript" src="selectivizr.js"></script>
<![endif]--> 

你试过包括HTML5 shiv吗?

没有这个(或类似(,IE8将无法设置HTML5新元素的样式(例如。 <section><nav>等(。对我来说,selectivizr.js确实允许Neat与IE8一起使用,但是如果你使用HTML5元素,那么即使使用selectivizr Neat也无法在没有HTML5 shiv的情况下在IE8中设置它们的样式。(注意,这实际上不是Neat本身的问题 - 这是一个更普遍的问题,源于IE8是HTML5之前的浏览器(。

实际上,selectivizr.js解决了IE8无法识别的选择的问题,而HTML5 siv修复了无法识别的元素的问题:如果你使用的是HTML5元素,那么为了让一切顺利进行,你可能两者都需要。

最新更新