<p>Element queries vs Media Queries. Drag the slider to see the effect</p>

<style>

  .demo-grid {
    margin-bottom: 16px;
  }
  .demo-grid .mdl-grid,
  .demo-grid .mdlext-grid {
    /*padding: 0;*/
  }
  .demo-grid .mdl-cell,
  .demo-grid .mdlext-cell {
    background: rgb(63,81,181);
    text-align: center;
    color: white;
    padding: 10px;
    border: 1px solid #aaaaaa;
  }
  .demo-grid .mdl-cell:nth-child(odd),
  .demo-grid .mdlext-cell:nth-child(odd) {
    background: rgb(33,150,243);
  }
  .demo-grid-c .mdl-cell,
  .demo-grid-c .mdlext-cell {
    background: rgb(255,213,79);
    color: #000;
    border: 0;
  }
  .demo-grid-c .mdl-cell:nth-child(odd),
  .demo-grid-c .mdlext-cell:nth-child(odd) {
    background: rgb(165,214,167);
    color: #000;
  }
</style>


<p id="grid-container-width" style="text-align: center;">
  <strong>100</strong>%
  <input class="mdl-slider mdl-js-slider" type="range" min="50" max="100" value="100" step="10" tabindex="0">
</p>

<div style="border: 1px solid #dddddd;">
  <div id="grid-container" style="margin: 0 auto;">

    <h5>mdlext-grid, using element queries</h5>
    <div class="demo-grid">
      <div class="mdlext-grid mdlext-grid--no-spacing">
        <div class="mdlext-cell mdlext-cell--1-col">1</div>
        <div class="mdlext-cell mdlext-cell--1-col">1</div>
        <div class="mdlext-cell mdlext-cell--1-col">1</div>
        <div class="mdlext-cell mdlext-cell--1-col">1</div>
        <div class="mdlext-cell mdlext-cell--1-col">1</div>
        <div class="mdlext-cell mdlext-cell--1-col">1</div>
        <div class="mdlext-cell mdlext-cell--1-col">1</div>
        <div class="mdlext-cell mdlext-cell--1-col">1</div>
        <div class="mdlext-cell mdlext-cell--1-col">1</div>
        <div class="mdlext-cell mdlext-cell--1-col">1</div>
        <div class="mdlext-cell mdlext-cell--1-col">1</div>
        <div class="mdlext-cell mdlext-cell--1-col">1</div>
      </div>
    </div>

    <div class="demo-grid demo-grid-c">
      <div class="mdlext-grid mdlext-grid--no-spacing">
        <div class="mdlext-cell mdlext-cell--4-col mdlext-cell--2-col-tablet mdlext-cell--1-col-phone">4 (2 tablet, 1 phone)</div>
        <div class="mdlext-cell mdlext-cell--6-col mdlext-cell--4-col-tablet mdlext-cell--3-col-phone">6 (4 tablet, 3 phone)</div>
        <div class="mdlext-cell mdlext-cell--2-col mdlext-cell--2-col-tablet mdlext-cell--hide-phone">2 (2 tablet, hide phone)</div>
      </div>
    </div>


    <h5>mdl-grid, using media queries</h5>
    <div class="demo-grid">
      <div class="mdl-grid mdl-grid--no-spacing">
        <div class="mdl-cell mdl-cell--1-col">1</div>
        <div class="mdl-cell mdl-cell--1-col">1</div>
        <div class="mdl-cell mdl-cell--1-col">1</div>
        <div class="mdl-cell mdl-cell--1-col">1</div>
        <div class="mdl-cell mdl-cell--1-col">1</div>
        <div class="mdl-cell mdl-cell--1-col">1</div>
        <div class="mdl-cell mdl-cell--1-col">1</div>
        <div class="mdl-cell mdl-cell--1-col">1</div>
        <div class="mdl-cell mdl-cell--1-col">1</div>
        <div class="mdl-cell mdl-cell--1-col">1</div>
        <div class="mdl-cell mdl-cell--1-col">1</div>
        <div class="mdl-cell mdl-cell--1-col">1</div>
      </div>
    </div>

    <div class="demo-grid demo-grid-c">
      <div class="mdl-grid mdl-grid--no-spacing">
        <div class="mdl-cell mdl-cell--4-col mdl-cell--2-col-tablet mdl-cell--1-col-phone">4 (2 tablet, 1 phone)</div>
        <div class="mdl-cell mdl-cell--6-col mdl-cell--4-col-tablet mdl-cell--3-col-phone">6 (4 tablet, 3 phone)</div>
        <div class="mdl-cell mdl-cell--2-col mdl-cell--2-col-tablet mdl-cell--hide-phone">2 (2 tablet, hide phone)</div>
      </div>
    </div>
  </div>
</div>

<script>
  'use strict';
  window.addEventListener('load', function() {
    (function() {
      'use strict';
      var widthLabel = document.querySelector('#grid-container-width strong');
      var slider = document.querySelector('#grid-container-width input');

      slider.addEventListener('input', function(e) {
        setWidth(this.value);
      }.bind(slider));

      function setWidth(value) {
        widthLabel.innerText = value;
        document.querySelector('#grid-container').style.width = value + '%';
        eqjs.refreshNodes();
        eqjs.query(undefined, true);
      }
    }());
  });
</script>
