【解説】Swiperで余白を調整する方法 – spaceBetweenとカスタマイズ
コードのこと
Swiperの余白調整ってちょっとコツがいるので悩んでいる方も多いのではないかと思います。
今回は、Swiperで余白を上手に設定する方法についてお話しします。
もくじ
Swiperの基本的な使い方
Swiperの基本ファイルの読み込みや実装するための書き方は以下の記事にまとめています。
はじめてSwiperでスライダーを実装する方はまず読んでみてくださいね。
Swiperで余白を調整するオプション
Swiperには余白を調整するためのオプションとしてspaceBetween
があります。
実際の余白の設定
const swiper = new Swiper('.swiper-container', {
spaceBetween: 20, // スライド間に20pxの余白を設定
slidesPerView: 2,
});
もし余白の単位をvwや%にしたい場合は’’や””で囲むようにしましょう。単位を付けない場合はpxとなります。
余白の設定の単位を指定する場合
const swiper = new Swiper('.swiper-container', {
spaceBetween: '5%', // スライド間に5%の余白を設定
});
const swiper = new Swiper('.swiper-container', {
spaceBetween: '2vw', // スライド間に5%の余白を設定
});
カスタムCSSを使った余白調整
spaceBetween
だけでは物足りないときは、カスタムCSSを使って余白を調整できます。特にpadding
を活用すると、スライドの位置ズレを防ぎながら余白を設定できます。
.swiper-slide {
padding: 0 10px; // 左右に10pxの余白を設定
}
これで、スライドが左右に10pxの余白を持ちながら配置されます。
Swiperの余白調整でmarginやpaddingは使わないのが無難です。
Swiperの余白調整でmarginは使わない事をおススメします…
以下のスライダーをスライドしてみると、スライドするたびに左側の開始位置がずれていくのが分かりますでしょうか?
さらに最後のスライドの端まで見ることができません…!
これがspaceBetweenオプションを使わず、marginやpaddingで余白調整をする懸念点です
↓marginで余白を付けてずれていくスライダー
marginでSwiperのスライドがずれる実際のコード
spaceBetweenオプションは使わずにmargin-right:30px;で余白を付けるとスライドするたびにずれていきます…
HTML
<div class="swiper-container2">
<div class="swiper-wrapper">
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat01.webp"></div>
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat02.webp"></div>
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat03.webp"></div>
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat04.webp"></div>
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat05.webp"></div>
</div>
</div>
JavaScript
const swiper2 = new Swiper('.swiper-container2', {
slidesPerView: 2,
});
CSS
.swiper-container2 .swiper-slide{margin-right:30px;}
↓paddingで余白を付けてずれていくスライダー
paddingでSwiperのスライドがずれる実際のコード
spaceBetweenオプションは使わずにpadding-right:30px;で余白を付けてもスライドするたびにずれていきます…
<div class="swiper-container3">
<div class="swiper-wrapper">
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat01.webp"></div>
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat02.webp"></div>
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat03.webp"></div>
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat04.webp"></div>
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat05.webp"></div>
</div>
</div>
const swiper3 = new Swiper('.swiper-container3', {
slidesPerView: 2,
});
.swiper-container3 .swiper-slide{padding-right:30px;}
余白調整は不具合を起こさないようにSwiperのオプションであるspaceBetweenを使うようにしましょう!
Swiperの高さに余白ができる場合の対策
Swiperの高さに意図しない余白ができることがあります。これは、CSSの設定やSwiperの設定が原因です。
高さに余白が出来た時のCSS調整
.swiper-slide {
height: calc(100% - 20px); // 高さから余白分を差し引く
}
こうすることで、余白分を考慮した高さ設定ができます。
片側だけ余白を作る方法
片側に少し空白を入れたいということもありますよね。
そんな時はSwiperの基本要素にpadding-left:○○pxのようにCSSで余白を入れます。
HTML
<div class="swiper-container4"><!--padding-left:○○pxを当てる要素-->
<div class="swiper-wrapper">
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat01.webp"></div>
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat02.webp"></div>
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat03.webp"></div>
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat04.webp"></div>
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat05.webp"></div>
</div>
</div>
CSS
.swiper-container4{padding-left:50px;}
JavaScript
const swiper4 = new Swiper('.swiper-container4', {
slidesPerView: 2,
spaceBetween: 20,
});
片側に余白があるスライダーの実際の表示
スライダーの一番最後に右余白を追加したい
ページいっぱいのスライダーだと右側ピッタリくっついて終わることもあるので少し余白が欲しいこともあります。そんな時は
HTML
<div class="swiper-container5"><!--padding-right:○○pxを当てる要素-->
<div class="swiper-wrapper">
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat01.webp"></div>
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat02.webp"></div>
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat03.webp"></div>
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat04.webp"></div>
<div class="swiper-slide"><img src="https://nakaemon.net/demo/img/cat05.webp"></div>
</div>
</div>
CSS
.swiper-container5{padding-right:50px;}
JavaScript
const swiper5 = new Swiper('.swiper-container5', {
slidesPerView: 2,
spaceBetween: 20,
});
スライダーの一番最後に右余白を追加した実際の表示
Swiperで余白を調整する方法のまとめ
この記事のポイントをまとめます。
spaceBetween
を使って簡単にスライド間の余白を設定できるmargin
やpaddingを使用すると、スライドがずれて見えるため避けるべき- 片側だけに余白を作りたい場合は.swiper-containerにpadding-leftなどを入れる
- 最後のスライドに余白を追加する場合は.swiper-containerにpadding-rightなどを入れる
余白は基本的にはspaceBetween
オプションを使うのがおすすめです。
片側によはくを付けたい場合は.swiper-containerに適切なpaddingを付けるようにしてみてくださいね!