← All Articles

Bootstrap5のタブ切り替えでつまづいた話

Posted on

はじめに

Bootstrapの練習で、タブによる切り替えを実装したのですが

うまく切り替わってくれない事象に悩まされてしまいました。

原因はバージョン5を使用しているにもかかわらず,

バージョン4での属性名 data-toggle を使用しているためでした。

バージョン4から5では属性名が以下のように変わっているようです。

  • バージョン4 : data-toggle
  • バージョン5 : data-bs-toggle

(自分がバージョン4の情報を見ながらバージョン5を使っているのがそもそもの間違いですね。)

反省のため こちらにバージョン5で切り替えができるhtmlのソースを記載しておきます。

htmlのソース

こちらのhtmlをローカルに保存してからブラウザで開いてください。

TEST1、TEST2という二つのタブがあってそれぞれをクリックすると、 タブ名と同じ文字列が表示される画面になっているはずです。

<!DOCTYPE html>
<html>
    <head>
        <!-- Bootstrap5 -->
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>

        <!-- タイトル -->
        <title>タブ切り替えの練習</title>
    </head>
    <body>
        <div>
            <ul class="nav nav-tabs">
                <li class="nav-item">
                    <!-- 属性名に、data-toggleを使わないように注意 -->
                    <a class="nav-link" href="#test1" data-bs-toggle="tab">TEST</a>
                </li>
                <li class="nav-item">
                    <!-- 属性名に、data-toggleを使わないように注意 -->
                    <a class="nav-link" href="#test2" data-bs-toggle="tab">TEST2</a>
                </li>
            </ul>
        </div>
        <div class="tab-content">
            <div class="tab-pane active" id="test1">
                <p>TEST1</p>
            </div>
            <div class="tab-pane" id="test2">
                <p>TEST2</p>
            </div>
        </div>
    </body>
</html>

想定の画面

TEST1の画面

20211230-1

TEST2の画面

20211230-2

参考文献

Bootstrap 3からBootstrap 5に移行してみた

技術Bootstrap5