Я не знаю, является ли это глупым вопросом или нет. Мне просто интересно, есть ли какие-нибудь улучшенные или обновленные учебные пособия, чтобы подчеркнуть слайд с одной ссылки на другую, когда она зависала и оставалась по щелкнутой ссылке.Подчеркнутый переход в меню Nav
До сих пор я нашел этот хороший учебник от Underline transition in menu, который выглядит так, как он использует учебник от Css-only Lavalamp-like Fancy Menu Effect.
Тем не менее у меня есть некоторые проблемы с этим кодом в codepen
Так как я был в состоянии конкретнее шириной подчеркивания, я не был в состоянии центрирования подчеркивания по ссылке, так как позиция абсолют. Я мог бы сосредоточить его, используя левый элемент, но он требует проб и ошибок, прежде чем найти правильный номер. Поэтому я хотел бы центрировать подчеркивание, если возможно, с помощью margin: 0 auto или text-align: center.
Я не могу думать ни о чем другом, но это для навигационного меню wordpress, поэтому я задаюсь вопросом, есть ли у вас какие-либо советы.
HTML
<div class="width">
<nav class="ph-line-nav">
<a href="#">News</a>
<a href="#">Activities</a>
<a href="#">Search</a>
<a href="#">Time</a>
<div class="effect"></div>
</nav>
</div>
CSS
.width {
width: 700px;
margin: 0 auto;
}
nav {
margin-top:20px;
font-size: 110%;
display: table;
background: #FFF;
overflow: hidden;
position: relative;
width: 100%;
}
nav a {
text-align:center;
background: #FFF;
display: block;
float: left;
padding: 2% 0;
width: 25%;
text-decoration: none;
color: /*#555*/black;
transition: .4s;
color: /*#00ABE8*/ red;
/*border-right: 1px solid red;
border-left: 1px solid red;*/
}
/* ========================
Lava-lamp-line:
======================== */
.effect {
position: absolute;
left: 0;
transition: 0.4s ease-in-out;
}
nav a:nth-child(1).active ~ .effect {
left: 0%;
/* the middle of the first <a> */
}
nav a:nth-child(2).active ~ .effect {
left: 25%;
/* the middle of the second <a> */
}
nav a:nth-child(3).active ~ .effect {
left: 50%;
/* the middle of the third <a> */
}
nav a:nth-child(4).active ~ .effect {
left: 75%;
/* the middle of the forth <a> */
}
.ph-line-nav .effect {
width: /*55px*/ 25%;
height: 2px;
bottom: 5px;
background: /*#00ABE8*/black;
margin-left:/*-45px*/auto;
margin-right:/*-45px*/auto;
}
JS
$(document).ready(function() {
$('.ph-line-nav').on('click', 'a', function() {
$('.ph-line-nav a').removeClass('active');
$(this).addClass('active');
});
});
Я на самом деле не заботиться о JavaScript, если это не абсолютно необходимый, так что в некотором смысле, я хотел бы использовать css-only, если это возможно. Во всяком случае, я скоро удалю этот вопрос, если окажется, что это глупый вопрос ...
Обновление: Это то, что я искал: example Однако у него есть javascript .... но я думаю, что это не так В конце концов, важно?
Не удаляйте это, это интересно. – misterManSam
Почему не фиксированная ширина и левая: 0, а справа: 0? или слева: 50% и margin-left: - (фиксированная ширина) сумма? –