CSS だけでアコーディオンを実装しました (Lightning 無料版)

この記事はアフィリエイト広告を利用しています。

こんにちは、魚沼情報サービスの対馬です。

先日、以下の記事で Lightning 無料版でアコーディオンを実装するやり方を紹介しました。

アコーディオンを実装しました (VK Blocks 無料版)

VK Blocks Pro にはアコーディオンブロックが含まれていますが、無料版の VK Blocks にはないので、アコーディオンブロック相当のものを作ってみました。

上記の記事では JavaScript を使うやり方を紹介していますが、今回は JavaScript を使わずに CSS だけでアコーディオンを作るやり方を紹介します。

手順① グループブロックに カスタム HTML とグループを入れる

ブロックを組みあわせて、以下のように作ります。赤字で示したものはグループブロックに割り当てる 追加 CSS クラス です。

グループブロックに カスタム HTML とグループを入れる

手順② カスタム HTML ブロック

カスタム HTML ブロックに以下のように入力します。

<input type="checkbox" id="accordion-check">
<label for="accordion-check" class="css-accordion-title">
クリックして、CSS だけでアコーディオンを作る方法を見る
<span class="fa-icon"></span>
</label>

手順③ CSS

以下の CSS を追加します。

.css-accordion {
border: 1px solid var(--vk-color-border);
border-radius: calc(var(--vk-size-text)*0.5);
margin-bottom: 2.0em;
}

.css-accordion-title {
display: block;
pointer-events: all;
cursor: pointer;
position: relative;
padding-top: calc(var(--vk-size-text)*1);
padding-right: calc(var(--vk-size-text)*2);
padding-bottom: calc(var(--vk-size-text)*1);
padding-left: calc(var(--vk-size-text)*1);
border-radius: calc(var(--vk-size-text)*0.5) calc(var(--vk-size-text)*0.5) 0 0;
background-color: rgba(0,0,0,.05);
margin-bottom: 0;
margin-block-start: 0 !important;
}

.css-accordion input[type=checkbox] {
display: none;
}

.css-accordion input ~ .css-accordion-content {
max-height: 0;
padding-right: calc(var(--vk-size-text)*1);
padding-left: calc(var(--vk-size-text)*1);
overflow: hidden;
transition: all 0.3s ease-in;
margin-block-start: 0 !important;
}

.css-accordion input:checked ~ .css-accordion-content {
max-height: 9999px;
padding-top: calc(var(--vk-size-text)*2);
padding-bottom: calc(var(--vk-size-text)*2);
}

.css-accordion span.fa-icon::before {
display: block;
font-family: "Font Awesome 6 Free";
font-weight: bold;
position: absolute;
top: calc(var(--vk-size-text)*1);
right: 10px;
content: "\f055";
font-size: 1.5em;
color: #666666;
}

.css-accordion input:checked + label span.fa-icon::before {
content: "\f056";
}

2022.1.26 機能追加 アコーディオンの開閉に合わせて Font Awesome アイコンを切り替えるようにしました。

2022.12.2 CSS 調整 Lightning 15.1.3 にアップデートして theme.json を有効化したことにより必要になった CSS の調整を行いました。

2022.12.2 CSS 調整 アイコン部分をクリックしてもアコーディオンが開くようにしました。

2023.1.4 CSS 調整 アコーディオン上下の不要な余白が表示されないようにしました。これも theme.json 有効化の影響のようで、以下の CSS の影響を受けています。

body .is-layout-flow > * + * {
    margin-block-start: 24px;
}

補足 同一ページで複数のアコーディオンを使うには

このままだとひとつのページにひとつのアコーディオンしか使えません。

2つめ以降のアコーディオンは、カスタム HTML ブロック内の label と input の accordion-check の部分を accordion-check-2, accordion-check-3 ... のように別のものに書き換えればオッケーです。

この手のカスタマイズがお好きな方はご参考にどうぞ。そうでない方におすすめなのが VK Blocks Pro !!

VK Blocks Pro をインストールすれば、手間をかけなくてもアコーディオンブロックを含む超便利なブロックをたくさん使えるんです (^^♪

VK Blocks Pro で使えるブロック
VK Blocks Pro で使えるブロック

VK Blocks Pro の入手方法

VK Blocks Pro は有料の WordPress プラグインですが、単体では販売されていなくて、Vektor Passport というライセンス製品に含まれて販売されています。

Vektor Passport は、コピペで使える豊富なプロ品質プレミアムパターン、Lightning G3 Pro Unit、VK Blocks Pro を好きなだけ使える大変お得なライセンス製品です。ライセンス1つで自分が制作・管理する複数のサイトに使うことができます。ライセンス期間は 1年 / 3年 / 5年 から選べます。

Vektor Passport(ライセンス期間1年)
Vektor Passport(ライセンス期間3年)
Vektor Passport(ライセンス期間5年)

投稿者プロフィール

対馬 俊彦
対馬 俊彦魚沼情報サービス (新潟県南魚沼市)
【日本全国対応】WordPress のサイト制作、設定、カスタマイズ、トラブルでお悩み、お困りの方、お手伝いいたします。

Lightning / VK Blocks / VK Filter Search のサポート、カスタマイズを得意としています。

遠方からのご依頼の場合、打ち合わせ・サポートを Zoom や電子メール・電話などを併用して行わせていただきます。

オンラインレッスン形式でのホームページ制作サポートも行っています。お客様ご自身でホームページを制作・運用する上でうまくいかない部分をサポートいたします。設定やカスタマイズを手伝ってもらいたい、同時に便利な使い方や設定方法、カスタマイズのやり方も知ることができたら...という方にご好評いただいています。

デザイナー様、制作業者様のサイト制作のお手伝いも数多く行っています。難しい部分のコーディング ( PHP / CSS / jQuery ) をやってほしい、いま人手が足りない等、お仕事の依頼をお待ちしています。

ご要望をうかがった上で費用見積り(無料)を提示させていただきますので、お気軽にお問い合わせください。

メールでのお問い合わせはこちら

Lighting テーマ使用

WordPress サイト開設

スターターパック

  • デザイン済みパーツを組み合わせることで価格納期を大幅削減
  • プロが作ったクオリティが高いホームページ
  • サポート付き・ご自分でかんたんに情報発信できます