どうも7noteです。CSSだけで作れるカルーセルの作り方
カルーセルといえば、東京にあるとしまえんが最近閉園になりました。
わたしはいったことがないのですがカルーセルエルドラドが有名らしいですね。
このカルーセルという言葉はフランス語で回転台とか、回転木馬を意味する言葉で、日本でいうところのメリーゴーランド(これは英語)ですね。
なのであまりカルーセルという言葉は聞き慣れないと思いますが、WEB業界では以下のようなデザインのことを、まるで回転しているかの様に見えることからカルーセルと呼びます。
![carousel.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F661092%2F1fff4265-428a-6c50-76d7-92352fa46a7e.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=c41bd5070b4359200754bb6a30285ff6)
スライドショーにしようと思うとjavascriptなども使わないといけなかったりしますが、今回のカルーセルはCSSだけでできるので簡単。さっそく作り方を解説。
作り方
index.html
<ul>
<li>
<img src="sample.gif" alt="">
<p>テキストが入るよ</p>
</li>
<li>
<img src="sample.gif" alt="">
<p>テキストが入るよ</p>
</li>
<li>
<img src="sample.gif" alt="">
<p>テキストが入るよ</p>
</li>
<li>
<img src="sample.gif" alt="">
<p>テキストが入るよ</p>
</li>
<li>
<img src="sample.gif" alt="">
<p>テキストが入るよ</p>
</li>
</ul>
style.css
ul {
overflow-x: auto; /* 横幅が画面からはみ出たら横スクロールさせる */
white-space: nowrap;
}
ul li {
display: inline-block; /* 要素を横並びにする */
width: 130px;
}
ul li p {
text-align: center;
}
基本的にはスマホ用になります。
PCの場合だと横スクロールバーが出てしまいますが、スマホなら指で横にスライドさせることができます。
このカルーセルなら、要素がはみ出ていても、スマホの画面全体がスクロールされるのではなく、カルーセルになっている個所のみが横スクロールされるのが特徴です。
![carousel.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661092/cda25852-d9cf-b859-f520-16332c495b38.gif)
まとめ
画像付きの情報を載せたり、テーブル(表など)をスクロールで見れるようにさせたりする時に使えます。
数行書くだけなので簡単に実装できるところがポイントですね。
もっとこだわった動きを入れたい場合はjavascriptを使ってスライドショーを導入するといい感じになるかも!