私は古い質問を繰り返さないことを本当に望んでいます - 私はセレクタが新しく、用語が不足している可能性があります。単一ページのナビゲーションでアクティブなタブをハイライトする
私はこのDefault :target with CSSソリューションに基づいてタブ付きの単一ページのWebページを作成しています。私は現在のタブをリンクを強調表示したり、現在の場所を示す何らかの方法で変更したりしたいと思います。
HTML:
<ul id="tabnav">
<li><a href="#tab1" class="tab1">Tab 1</a></li>
<li><a href="#tab2" class="tab2">Tab 2</a></li>
</ul>
<a id="tab1"></a>
<a id="tab2"></a>
<div class="tab tab1 default-tab">This is text you should see as you load the page</div>
<div class="tab tab2">This is text that will appear after you click on tab 2</div>
はCSS:(:ターゲット)何もしないタブをクリックすると、持参していても、
.tab {
display:none
}
.default-tab {
display:block
}
:target ~ .default-tab {display:none}
#tab1:target ~ .tab1,
#tab2:target ~ .tab2 {
display: block
}
ul#tabnav a:hover {
background: red;
}
ul#tabnav a:target{
border-width: thick;
border-color: black;
}
私の最後の要素は以下のように思えます私を新しいアンカーに変えて、表示されたコンテンツを変更します。助言がありますか?
こんにちはマイケル、 はお返事をいただき、ありがとうございます。 ids&:targetに関するこの情報は私にとってはニュースでした!私はこの仕事(おそらくばかげて)で最小限のjquery/javascriptを使用しようとしています。私は、スクリプトフリーのソリューションが可能かもしれないと思う(例えばhttps://css-tricks.com/examples/CSSTabs/例6)が、デフォルトの「タブ」がないことは面倒です。 –
@ K.D.Mortimerええ、それは可能ですが、あなたのマークアップではありません。あなたが提供したマークアップで作業していました。それらのソリューションのすべてはハッキーです - 私はあなたがそれをきれいにするjavascriptのいくつかの行を書くことができる点を見ません。このことはページの状態を制御しています.CSSはこれをうまくやっていません。 CSSは設計のためのものです。 Javascriptはページの状態を操作するための標準であり、CSSのページの状態のデザインを反映するためにCSSのペアがあります。 –