CSSだけで選択ボタン付きスライドショー
2020年02月17日
CSSだけで自動再生スライドショーの作成方法を掲載しました。
しかし、これはユーザーの意思では選択できないので、CSSだけで選択ボタン付きスライドショーを作成しました。
完成イメージ
特徴
- 中央下部に選択ボタンを表示し、クリックすると画像が切り替わる。
- 画像の追加時の作業は画像の参照先指定のみ。(CSS調整などなし)
- aタグ(画像リンク)あり・なし、どっちでも可
- 自動再生なし
html
<div class="out">
<img src="1.jpg">
<div class="in">
<label><input type=radio name="slide" checked><span></span><a href="#1"><img src="1.jpg"></a></label>
<label><input type=radio name="slide"><span></span><img src="2.jpg"></label>
<label><input type=radio name="slide"><span></span><a href="#3"><img src="3.jpg"></a></label>
<label><input type=radio name="slide"><span></span><a href="#4"><img src="4.jpg"></a></label>
</div>
</div>
2行目のimgは高さ確保のためです。高さが決まっていればdivに高さ指定することでこのimgはいらなくなります。
画像を増やすには<label>~</label>をコピペして画像の参照先を指定するだけです。
画像を減らすには<label>~</label>を削除するだけです。
ただし、画像の数は10個がいいところ。
それ以上だとスマホにて選択ボタンが1行に収まらなくなります。
CSS
.out{
position: relative;
}
.in img{
position: absolute;
top: 0;
left: 0;
opacity: 0;
transition: .3s;
}
img{
display: block;
max-width: 100%;
height: auto;
}
input{
display: none;
}
.in{
display: flex;
justify-content: center;
}
label span{
display: block;
width: 15px;
height: 15px;
padding: 7px;
margin: -40px 0 0;
border-radius: 100%;
cursor: pointer;
position: relative;
z-index: 2;
}
label span::before{
content: "";
display: block;
width: 100%;
height: 100%;
background: #4287f5;
opacity: 0.5;
border-radius: 100%;
}
label input:checked + span::before{
background: #000;
opacity: 1;
}
label input:checked ~ img,label input:checked ~ a img{
opacity: 1;
z-index: 1;
}
CSSやhtmlの基本をしっかり理解すると、この記事の内容もより理解できるようになりますよ。
↓CSSやhtmlを楽しく学べるようにマンガを描きましたのでゼヒご覧ください↓
↑「副業してもう少し稼ぎたい!」というかたのために副業の方法も解説しています。
まとめ
選択スライドショーはCSSだけでできます。
しかも画像の増減も簡単なので、画像の増減がある場合はこちらがお勧めです。
↓この記事の選択ボタンスライドショーに自動再生もつけたバージョンもあります。
以上、CSSだけで選択ボタン付きスライドショーを作成する方法でした。
「この記事の内容がよくわからなかった…」「なんかうまくいかなかった…」というかたは下記記事↓でhtmlとCSSの基本を学びましょう。
わからないまま突き進むより基本を学ぶのが結局近道です。