Ich versuche, beim Klicken von Hyperlinks gleitende horizontale Linie zu erstellen. Weitere Informationen finden sie unter: http://codepen.io/anon/pen/JdEPPbCSS-Unterstreichung bewegt sich nicht Klick
Der HTML ist:
* {
box-sizing: border-box;
}
body {
font: 300 100% 'Helvetica Neue', Helvetica, Arial;
}
.container {
width: 50%;
margin: 0 auto;
}
ul li {
display: inline;
text-align: center;
}
a {
display: inline-block;
width: 25%;
padding: .75rem 0;
text-decoration: none;
color: #333;
}
.one:active ~ hr {
margin-left: 0%;
}
.two:active ~ hr {
margin-left: 25%;
}
.three:active ~ hr {
margin-left: 50%;
}
.four:active ~ hr {
margin-left: 75%;
}
hr {
height: .25rem;
width: 25%;
margin: 0;
background: tomato;
border: none;
transition: 0.3s ease-in-out;
}
<div class="container">
<ul>
<li class="one"><a href="#">Uno</a></li><!--
--><li class="two"><a href="#">Dos</a></li><!--
--><li class="three"><a href="#">Tres</a></li><!--
--><li class="four"><a href="#">Quatro</a></li>
<hr />
</ul>
</div>
Es gibt keine Javascript-Code.
Wenn ich auf Zwei klicke, möchte ich, dass sich die Unterstreichung unter Zwei verschiebt, aber zur Zeit bewegt es sich nicht. Ich muss länger halten, damit es sich bewegt, und wenn ich die linke Maustaste loslasse, fällt es wieder auf One
Der gewünschte Effekt ist mit JS trivial. Wenn Sie nur eine css-Methode verwenden möchten, müssen Sie eine andere Technik verwenden, wie die Verwendung von Checkboxen oder die Pseudo-Klasse ': target'. –