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>