こんにちは、Ryohei(@ityryohei)です!

bxsliderをデフォルトの状態で設置すると、画像はすべて左上を基準に配置され、スライドに表示されます。画像サイズをすべて親要素のサイズに合わせて編集し、アップロードするのであればデフォルトの状態でも問題ないのですが、CMSから投稿したり、お客様側で画像を追加される場合はサイズがまちまちになって左上にちょこんと表示されてしまいますよね……。

そこで、今回はどのサイズの画像であってもbxsliderで中央に表示する方法をご紹介したいと思います!

bxsliderの使い方については以下の記事をご参照いただければ幸いです!

bxslider

共通のHTMLとJS

本記事では以下のHTMLタグを使って解説しています。スライダーはリストにしています。

HTML

<ul class="slider">
  <li><img src="//into-the-program.com/demo/images/sample001.jpg"></li>
  <li><img src="//into-the-program.com/demo/images/sample002.jpg"></li>
  <li><img src="//into-the-program.com/demo/images/sample003.jpg"></li>
  <li><img src="//into-the-program.com/demo/images/sample004.jpg"></li>
  <li><img src="//into-the-program.com/demo/images/sample005.jpg"></li>
</ul>

JS

$(document).ready(function(){
  $('.slider').bxSlider();
});

横中央揃えにする

横方向に中央表示にする場合、imgタグに少しだけスタイルを追加してあげます。

以下、デモになります。画像が横方向に対して中央に表示されるようになります。

Demo

CSS

.slider img {
  display: block;
  margin: 0 auto;
}

縦中央揃えにする

画像の親要素であるliタグのpositionをrelativeにして相対位置とし、表示する画像の絶対位置を指定します。縦方向で中央表示する場合は親要素に高さを指定してあげる必要があります。本記事ではliタグに高さを指定しています。

以下デモです!横方向は左に寄っていますが、縦方向は中央に表示されるようになります。

Demo

CSS

.slider li {
  position: relative;
  height: 800px;
}
.slider img {
  position: absolute;
  top: 0;
  bottom: 0;
  display: block;
  margin: auto 0;
}

縦横中央揃えにする

最後に、縦横方向に対して中央表示にする方法です。上記の縦方向の中央表示に横位置の指定を付加しています。

Demo

CSS

.slider li {
  position: relative;
  height: 800px;
}
.slider img {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: block;
  margin: auto;
}

以上、bxsliderで異なるサイズの画像を中央に表示する方法のご紹介でした!最後まで読んでいただきありがとうございました!

この記事を書いた人

Ryohei

Webエンジニア / ブロガー

福岡のWeb制作会社に務めるWebエンジニアです。エンジニア歴は10年程で、好きな言語はPHPとJavaScriptです。本サイトは私がインプットしたWebに関する知識を整理し、共有することを目的に2015年から運営しています。Webに関するご相談があれば気軽にお問い合わせください。

JavaScriptを基礎からしっかりと学びたい方へ

下記の参考書がおすすめです。私がJavaScript入門時に購入した書籍で、基礎から応用まで多様なサンプルを用いて解説されています。ページ数は多いですが、内容が伴っているのですらすら読めます。腰を据えて学びたい方に最良の一冊となっています。