※ ChatGPTを利用し、要約された質問です(原文:HTML・CSS 目次を閉じている時のみ不具合)
目次が閉じた時のジャンプ不具合
このQ&Aのポイント
HTMLとCSSを使って目次を作成したが、目次を閉じた状態でリンクをクリックすると不具合が発生する。
ブログを参考に目次の開閉を実装したが、目次非表示時に特定のリンクが他の場所に飛ぶことがある。
初心者が目次を作成し、想定外の動作を報告。正しい動作を確認するためのデバッグが必要。
HTML・CSS超初心者です。
この方のブログ
https://webwork-plus.com/content/design/open-area.html#2
を参考にして、目次の開閉を作成しました。
が、目次を開いている時は問題ありませんが、目次を閉じている場合のみ、その目次直下の文章をクリックすると同じページ内のまったく違う場所に飛んでしまいます。
ソースコードは
■HTML■
<div class="open-box">
<input type="checkbox" id="switch" class="on-off" />
<label for="switch" class="open-label"></label>
<div class="open">
<p>
<ol class="numbering">
<li><a href="#1">imgにposition:absoluteで文字を重ねる</a>
<ol>
<li><a href="#2">文字を中央に重ねる</a></li>
<li><a href="#3">文字を左上に重ねる</a></li>
<li><a href="#4">文字を左下に重ねる</a></li>
</ol>
</li>
<li> <a href="#5"> まとめ</a></li>
</ol>
<p>
</div>
</div>
■CSS■
/*inputを非表示*/
input[type="checkbox"].on-off{
opacity: 0;
}
/*ラベル(「開く」ボタン)*/
.open-label{
width: 200px;
margin: 0 1.5em;
padding: 0.8em;
display: block;
color: #ffffff;
font-weight: bold;
text-align: center;
box-shadow: 5px 5px 5px #aaa; /* 影を付ける */
background: linear-gradient(-80deg, #ff65ff, #65ffff); /* グラデーションの背景色 */
border: 2px solid #ff0000; /* 線の太さ 線のタイプ 線の色 */
border-radius: 20px; /* 角を丸く */
}
/*エフェクト*/
.open-label:active{
box-shadow: 5px 5px 5px #aaa; /* 影を付ける */
}
.open-label:hover{
background: -webkit-linear-gradient(bottom, #fff4e0 1%,orange 80%);
background: #ffb8b3;
}
/*ラベルに表示するテキスト*/
.open-label::after{
content:'※目次[開く]';
}
.on-off:checked ~ .open-label::after{
content: '※目次[閉じる]';
}
/*開閉エリア*/
.open{
padding: 0 1em;
height: 0;
opacity: 0;
transition: .5s;
width: 500px;
box-shadow: 5px 5px 5px #aaa; /* 影を付ける */
background: #ffeff9;
border: 2px solid #ff95d5; /* 線の太さ 線のタイプ 線の色 */
border-radius: 20px; /* 角を丸く */
}
/*「開く」をタップで表示*/
.on-off:checked ~ .open{
padding: 1.5em 1em;
height: auto;
opacity: 1;
}
よろしくお願いいたします。
補足
本当にいろいろとありがとうございました。 おっしゃる通りにして、また探してみます。