Bootstrap4の各カラムの隙間を無くす新設クラス「no-gutters」

カラム両脇の空白を無くす(no-gutters)

Bootstrapの各カラムは左右に15pxの余白がデフォルト、この余白を0にしたい場合はBootstrap4では新クラス「.no-gutters」を使います。「row」にクラス追加するのがポイント。

  <div class="row no-gutters">
    <div class="col-sm"><img src="https://placehold.it/1000x400" class="img-fluid" alt=""/></div>
    <div class="col-sm"><img src="https://placehold.it/1000x400" class="img-fluid" alt=""/></div>
  </div>

HTMLサンプル

<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<title>Bootstrap4 カラムの隙間をゼロにする</title>
</head>
<body>

<!-- コンテンツ --> 
<div class="container">

  <h3>no-gutters無し</h3>
  <div class="row">
    <div class="col-sm"><img src="https://placehold.it/1000x400" class="img-fluid" alt=""/></div>
    <div class="col-sm"><img src="https://placehold.it/1000x400" class="img-fluid" alt=""/></div>
  </div>
  
  <div class="w-100 my-4"></div>

  <h3>no-guttersあり</h3>
  <div class="row no-gutters">
    <div class="col-sm"><img src="https://placehold.it/1000x400" class="img-fluid" alt=""/></div>
    <div class="col-sm"><img src="https://placehold.it/1000x400" class="img-fluid" alt=""/></div>
  </div>

</div>
<!-- /コンテンツ --> 

<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<!-- Bootstrap JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</body>
</html>

内容は下記ですがCSS記載の必要はありません。

.no-gutters {
  margin-right: 0;
  margin-left: 0;

  > .col,
  > [class*="col-"] {
    padding-right: 0;
    padding-left: 0;
  }
}

 

カラム両脇の空白を少しにする

ゼロは駄目だけどページ全体の空白を少し詰めたい、そんな時は「no-gutters」を改造しても実現できます。

.no-gutters {
  margin-right: -5px;
  margin-left: -5px;
}
.no-gutters > .col,
.no-gutters > [class*="col-"] {
  padding-right: 5px;
  padding-left: 5px;
}

Bootstrap CSS よりも後に上記CSSを追加して「no-gutters」を上書き。

HTMLサンプル

<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<title>Bootstrap4 カラムの隙間を少しにする</title>
<style>
.no-gutters {
  margin-right: -5px;
  margin-left: -5px;
}
.no-gutters > .col,
.no-gutters > [class*="col-"] {
  padding-right: 5px;
  padding-left: 5px;
}
</style>
</head>
<body>

<!-- コンテンツ --> 
<div class="container">

  <h3>no-gutters無し</h3>
  <div class="row">
    <div class="col-sm"><img src="https://placehold.it/1000x400" class="img-fluid" alt=""/></div>
    <div class="col-sm"><img src="https://placehold.it/1000x400" class="img-fluid" alt=""/></div>
  </div>
  
  <div class="w-100 my-4"></div>

  <h3>no-guttersあり</h3>
  <div class="row no-gutters">
    <div class="col-sm"><img src="https://placehold.it/1000x400" class="img-fluid" alt=""/></div>
    <div class="col-sm"><img src="https://placehold.it/1000x400" class="img-fluid" alt=""/></div>
  </div>

</div>
<!-- /コンテンツ --> 

<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<!-- Bootstrap JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</body>
</html>

 

カラム両脇の空白を細かく設定したい

そんな場合は下記記事を参考にしてください。

https://kokopelli.pw/2518

コメント

タイトルとURLをコピーしました