Я действительно надеюсь, что я не повторяю старый вопрос - я новичок в селекторах, поэтому моя терминология может отсутствовать.Подсветка активной вкладки с одностраничной навигацией
Я работаю над одностраничной страничной страницей, основанной на этом Default :target with CSS. Я хотел бы, чтобы текущая вкладка была выделена или изменена ссылка, чтобы указать текущее местоположение.
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 с ним отражают дизайн состояния страницы. –