Swiper overflows inside grid with Edge and Safari

T. *_*Bot 2 javascript css safari swiper microsoft-edge

This Swiper Fiddle works with Firefox and Chrome. Apparently my grid layout breaks this with Edge and Safari (without display: grid this fiddle will work with Safari and Edge). However, I don't want to replace the grid with flexbox.

How can I get this working in Edge and Safari while using display: grid?

var swiper = new Swiper('.swiper-container', {
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },
});
Run Code Online (Sandbox Code Playgroud)
body {
  background: grey;
}
.grid {
  display: grid;
  grid-template-columns: 8fr 4fr;
  grid-gap: 2rem;
}
.swiper-container {
  width: 100%;
  height: 100%;
}
.swiper-slide {
  min-height: 80px;
  text-align: center;
  background: red;
  display: flex;
  justify-content: center;
  align-items: center;
}
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="utf-8">
    <title>Swiper demo</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">

<!-- Link Swiper's CSS -->
<link rel="stylesheet" href="https://unpkg.com/swiper/css/swiper.css">
<link rel="stylesheet" href="https://unpkg.com/swiper/css/swiper.min.css">

<script src="https://unpkg.com/swiper/js/swiper.js"></script>
<script src="https://unpkg.com/swiper/js/swiper.min.js"></script>



</head>

  <body>
    <!-- Swiper -->
    <div class="grid">
      <div class="swiper-container">
        <div class="swiper-wrapper">
          <div class="swiper-slide">Slide 1</div>
          <div class="swiper-slide">Slide 2</div>
          <div class="swiper-slide">Slide 3</div>
          <div class="swiper-slide">Slide 4</div>
          <div class="swiper-slide">Slide 5</div>
          <div class="swiper-slide">Slide 6</div>
          <div class="swiper-slide">Slide 7</div>
          <div class="swiper-slide">Slide 8</div>
          <div class="swiper-slide">Slide 9</div>
          <div class="swiper-slide">Slide 10</div>
        </div>
        <!-- Add Arrows -->
        <div class="swiper-button-next"></div>
        <div class="swiper-button-prev"></div>
      </div>
      <aside>
        <div>
          <p>
            Vivamus placerat lacus vel vehicula scelerisque, dui enim adipiscing lacus sit amet sagittis, libero enim vitae mi. In neque magna posuere, euismod ac tincidunt tempor est. Ut suscipit nisi eu purus. Proin ut pede mauris eget ipsum. Integer vel quam nunc commodo consequat. Integer ac eros eu tellus dignissim viverra. Maecenas erat aliquam erat volutpat. Ut venenatis ipsum quis turpis. Integer cursus scelerisque lorem. Sed nec mauris id quam blandit consequat. Cras nibh mi hendrerit vitae, dapibus et aliquam et magna. Nulla vitae elit. Mauris consectetuer odio vitae augue.
          </p>
        </div>
      </aside>
    </div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Osk*_*emi 6

这似乎是使用灵活单位 ( fr) 的问题,并且 Safari 没有正确计算宽度。此问题的解决方法是定义网格列minmax(),例如grid-template-columns: minmax(0, 8fr) 4fr;