我试图创建滑动水平线点击超链接。请看看:
http://codepen.io/anon/pen/JdEPPb
http://codepen.io/anon/pen/JdEPPb
HTML是:
* { 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>
没有JavaScript代码。
当我点击二,我想要下划线移动在二,但目前它不动。我需要持续更长时间才能移动,当我释放鼠标左键时,它会回到一个
解决方法
:仅当您按住元素上的鼠标按钮(即当您正在主动单击元素时),激活才会触发。
您可以使用:target而不是:active。
当URL中的哈希和元素的id相同时,CSS中的目标伪选择符会匹配。
通过为li元素的链接和ids的href属性赋予值,我们可以:定位已点击的li:
* { Box-sizing: border-Box; } body { font: 300 100% 'Helvetica Neue',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; } #uno:target ~ hr { margin-left: 0%; } #dos:target ~ hr { margin-left: 25%; } #tres:target ~ hr { margin-left: 50%; } #quatro:target ~ 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" id="uno"><a href="#uno">Uno</a></li><!-- --><li class="two" id="dos"><a href="#dos">Dos</a></li><!-- --><li class="three" id="tres"><a href="#tres">Tres</a></li><!-- --><li class="four" id="quatro"><a href="#quatro">Quatro</a></li> <hr /> </ul> </div>