HTML/CSSだけでスライダーを作る方法【HTML/CSS・サンプルコード付き】

スライダー

HTML/CSSだけでスライダーを作る方法

HTML/CSSだけでスライダーを作る方法を紹介します。このサンプルでは、JavaScriptを使用せずにHTMLとCSSだけで画像やコンテンツを切り替えられるスライダーを作成します。ラジオボタンとlabel要素を利用して表示するスライドを切り替えるため、シンプルな構成で導入でき、軽量なスライダーを実装したい場面に適しています。

商品紹介、サービス案内、実績紹介、ポートフォリオ、キャンペーンバナーなど、複数のコンテンツを限られたスペースへまとめて表示したい場面で活用できます。左右の切り替えボタンや自動再生などのJavaScript機能は使用せず、クリック操作だけでスライドを切り替えられるため、HTML/CSSの基本を学びたい方にも分かりやすい構成になっています。

タイトルや説明文、各スライドの内容はHTMLから変更でき、CSSでは横幅、余白、背景色、枠線、角丸、文字サイズ、配色などを自由に調整できます。レスポンシブにも対応しやすい構成のため、スマートフォン・タブレット・PCまで幅広い画面サイズで利用できます。JavaScriptを使わずにスライダーを実装したい場合の基本サンプルとして活用してください。

コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。

デモ

基本のスライダー

左右のボタンまたはドットをクリックすると、スライドを1枚ずつ切り替えられます。

HTML

HTMLでスライダー全体と表示するスライドを配置します。

CSS

CSSでスライドやボタンのデザインを設定します。

JavaScript

JavaScriptで左右のボタンやドットによる切り替えを行います。

左右のボタンまたはドットをクリックして、3枚のスライドを切り替えてお試しください。

コードをコピーして使おう!

<!DOCTYPE html>
<html lang="ja">
<head>

  <!-- 文字コード -->
  <meta charset="UTF-8">

  <!-- スマートフォン表示対応 -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- ページタイトル -->
  <title>HTML/CSSだけでスライダー</title>

  <!-- CSSファイルを読み込み -->
  <link rel="stylesheet" href="style.css">

</head>
<body>

  <!-- スライダー全体 -->
  <div class="html-css-slider_wrap">

    <!-- タイトル -->
    <div class="html-css-slider_title">
      HTML/CSSだけで動くスライダー
    </div>

    <!-- 説明文 -->
    <p class="html-css-slider_text">
      左右のボタンまたはドットをクリックすると、スライドを切り替えられます。
    </p>

    <!-- 表示するスライドを管理するラジオボタン -->
    <input
      class="html-css-slider_input"
      type="radio"
      name="html-css-slider"
      id="html-css-slider-1"
      checked>

    <input
      class="html-css-slider_input"
      type="radio"
      name="html-css-slider"
      id="html-css-slider-2">

    <input
      class="html-css-slider_input"
      type="radio"
      name="html-css-slider"
      id="html-css-slider-3">

    <!-- スライダー表示エリア -->
    <div class="html-css-slider_area">

      <!-- 1枚目の操作ボタン -->
      <div class="html-css-slider_controls html-css-slider_controls-1">

        <span class="html-css-slider_button html-css-slider_button-disabled">
          ‹
        </span>

        <label
          class="html-css-slider_button"
          for="html-css-slider-2"
          aria-label="次のスライド">
          ›
        </label>

      </div>

      <!-- 2枚目の操作ボタン -->
      <div class="html-css-slider_controls html-css-slider_controls-2">

        <label
          class="html-css-slider_button"
          for="html-css-slider-1"
          aria-label="前のスライド">
          ‹
        </label>

        <label
          class="html-css-slider_button"
          for="html-css-slider-3"
          aria-label="次のスライド">
          ›
        </label>

      </div>

      <!-- 3枚目の操作ボタン -->
      <div class="html-css-slider_controls html-css-slider_controls-3">

        <label
          class="html-css-slider_button"
          for="html-css-slider-2"
          aria-label="前のスライド">
          ‹
        </label>

        <span class="html-css-slider_button html-css-slider_button-disabled">
          ›
        </span>

      </div>

      <!-- スライド表示枠 -->
      <div class="html-css-slider_view">

        <!-- スライド一覧 -->
        <div class="html-css-slider_track">

          <!-- 1枚目 -->
          <div class="html-css-slider_slide">

            <div class="html-css-slider_slide-title">
              HTML
            </div>

            <p class="html-css-slider_slide-text">
              HTMLでスライダー全体と表示するスライドを配置します。
            </p>

          </div>

          <!-- 2枚目 -->
          <div class="html-css-slider_slide">

            <div class="html-css-slider_slide-title">
              CSS
            </div>

            <p class="html-css-slider_slide-text">
              CSSでスライド、ボタン、ドットのデザインを設定します。
            </p>

          </div>

          <!-- 3枚目 -->
          <div class="html-css-slider_slide">

            <div class="html-css-slider_slide-title">
              サンプル
            </div>

            <p class="html-css-slider_slide-text">
              ラジオボタンの選択状態を利用してスライドを切り替えます。
            </p>

          </div>

        </div>

      </div>

    </div>

    <!-- ドットナビゲーション -->
    <div class="html-css-slider_dots">

      <label
        class="html-css-slider_dot"
        for="html-css-slider-1"
        aria-label="1枚目のスライドを表示">
      </label>

      <label
        class="html-css-slider_dot"
        for="html-css-slider-2"
        aria-label="2枚目のスライドを表示">
      </label>

      <label
        class="html-css-slider_dot"
        for="html-css-slider-3"
        aria-label="3枚目のスライドを表示">
      </label>

    </div>

  </div>

</body>
</html>
コードをコピーする場合 使用するコードのタブを選び、「このタブをコピー」をクリックすると、現在表示中のコードをコピーできます。
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。

ファイル構成と設置方法

このサンプルはHTMLとCSSの2ファイルで構成されています。HTMLではラジオボタンを利用して現在表示するスライドを管理し、左右ボタンやドットをクリックすると表示するスライドを切り替えます。JavaScriptは使用せず、CSSの:checkedを利用して表示位置や選択状態を制御しているため、シンプルな構成で導入できます。

sample/
├── index.html
└── style.css

各ファイルの役割
index.htmlはスライダー全体を構成するファイルです。タイトル、説明文、スライドのタイトル・本文、左右ボタン、ドットナビゲーションを編集できます。スライドを追加・削除する場合も、このファイルを編集します。

style.cssはスライダー全体のデザインを設定するファイルです。横幅、余白、背景色、ボタン、ドット、スライドサイズ、切り替えアニメーションなどを変更できます。

設置方法・使い方
sampleフォルダへindex.htmlとstyle.cssを配置します。2つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開いてください。左右ボタンまたはドットをクリックすると、JavaScriptを使用せずにスライドを切り替えられます。

カスタマイズできる内容
index.htmlではタイトル、説明文、スライドのタイトル・本文、スライド枚数、左右ボタン、ドットナビゲーションを変更できます。用途に合わせて、お知らせ、商品紹介、サービス紹介、実績紹介など自由に利用できます。

style.cssではスライダー全体の横幅、背景色、余白、角丸、スライドサイズ、文字サイズ、ボタンサイズ、ボタン色、ドットサイズ、ドット色、アニメーション速度などを変更できます。

数値調整
style.css
max-width:760px;
スライダー全体の最大横幅です。値を大きくすると横に広がり、小さくするとコンパクトになります。

margin:40px auto;
スライダー全体の上下余白です。40pxを大きくすると上下の間隔が広がり、小さくすると狭くなります。

padding:32px;
スライダー全体の内側余白です。値を大きくすると余白が広がり、小さくすると詰まった表示になります。

border-radius:20px;
スライダー全体の角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。

gap:18px;
左右ボタンとスライドの間隔です。値を大きくすると離れ、小さくすると近づきます。

width:52px;
height:52px;
左右ボタンのサイズです。値を大きくするとボタンが大きくなり、小さくするとコンパクトになります。

min-height:220px;
スライドの高さです。値を大きくすると高さが増え、小さくすると低く表示されます。

padding:36px 48px;
スライド内部の余白です。値を変更すると文字と枠線の間隔が変わります。

font-size:30px;
スライドタイトルの文字サイズです。値を大きくすると文字が大きくなり、小さくすると控えめになります。

gap:10px;
ドットナビゲーション同士の間隔です。値を大きくするとドット同士が離れ、小さくすると近づきます。

width:12px;
height:12px;
ドットナビゲーションのサイズです。値を大きくするとドットが大きく表示されます。

margin-top:24px;
ドットナビゲーションの上余白です。値を変更するとスライドとの間隔が変わります。

transition:transform .3s ease;
スライドの切り替え速度です。0.3秒で切り替わります。値を大きくするとゆっくり、小さくすると速く切り替わります。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%max-width:760pxにより画面幅に応じてスライダー全体が縮小されます。また、640px以下では余白、ボタンサイズ、スライドの高さ、文字サイズを調整しているため、スマートフォン・タブレット・PCで利用できます。


こちらもおすすめ


コメント