我希望我的菜单在激活时加下划线,而不是仅仅悬停。那可能吗? (不是常规下划线代码)

时间:2018-05-02 20:07:18

标签: html css

所以我使用我在CodePen上找到的一些CSS代码在我的网站菜单上有一个很好的下划线,所以它没有使用适用于链接的常规下划线。<\ n / p>

目前,它设置为在悬停时带有轻微动画效果的下划线但是我希望它在活动时加下划线而不是悬停。我尝试过使用多种方法,但因为它不完全是我的下划线代码,有些部分让我感到困惑。

有人可以帮忙吗?如果它看起来很乱我道歉,如果需要我可以抓取其他代码。非常感谢。

这是我的代码:

HTML:

<nav>
    <ul>
        <li class="item"><a href="index.html">Home</a></li>
        <li><a href="about.html">About</a></li>
        <li><a href="services.html">Services</a></li>
        <li><a href="faq.html">FAQ</a></li>
        <li><a href="contact.html">Contact</a></li>
    </ul>
</nav>

CSS(来自codepen的代码):

a:link {
    text-decoration: none!important;
}

nav li a {
    color: #fff;
    font-size: 14px;
    position: relative;
    letter-spacing: 2px;
    text-transform: uppercase;
    -webkit-transition: all 0.4s ease;
    transition: all 0.4s ease;
    padding: 15px;
}

a:after {
    content: "";
    position: absolute;
    height: 2px;
    background-color: white;
    width: 0;
    left: 50%;
    bottom: 0;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    -webkit-transition: 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) all;
    transition: 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) all;
}

a:hover {
    color: tomato;
}

a:hover:after {
    width: 100%;
}

2 个答案:

答案 0 :(得分:0)

只需创建一个与悬停样式具有相同样式的类。

转过来:

a:hover:after {
    width: 100%;
}

进入这个:

a.active:after {
    width: 100%;
}

然后只需将课程添加到a

<li class="item"><a class="active" href="index.html">Home</a></li>

ul {
    padding: 0;
    margin: 0;
    list-style:none;
}

ul li {
    float: left;
}

a:link {
    text-decoration: none !important;
}

nav li a {
   
    font-size: 14px;
    position: relative;
    letter-spacing: 2px;
    text-transform: uppercase;
    -webkit-transition: all 0.4s ease;
    transition: all 0.4s ease;
    padding: 15px;
}

a:after {
    content: "";
    position: absolute;
    height: 2px;
    background-color: red;
    width: 0;
    left: 50%;
    bottom: 0;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    -webkit-transition: 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) all;
    transition: 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) all;
}

a:hover {
    color: tomato;
}

/*a:hover:after {
    width: 100%;
}*/

a.active:after {
    width: 100%;
}
<nav>
    <ul>
        <li class="item"><a class="active" href="index.html">Home</a></li>
        <li><a href="about.html">About</a></li>
        <li><a href="services.html">Services</a></li>
        <li><a href="faq.html">FAQ</a></li>
        <li><a href="contact.html">Contact</a></li>
    </ul>
</nav>

答案 1 :(得分:0)

我认为,真的不明白,在&#39; a&#39;中是15px填充。 你可以把更好的东西添加到&#39; li&#39;。另一位建议使用Firefox Developer的开发人员,您的样式编辑器是一个很好的帮助,指出可能的对象以这种方式查看您的属性。

enter image description here

通过这种方式,您可以根据规则的颜色来解释您的元素从其填充中获取apatir大小。

&#13;
&#13;
<nav>
                <ul>
                    <li class="item"><a href="index.html">Home</a></li>
                    <li><a href="about.html">About</a></li>
                    <li><a href="services.html">Services</a></li>
                    <li><a href="faq.html">FAQ</a></li>
                    <li><a href="contact.html">Contact</a></li>
                </ul>
            </nav>
&#13;
data.columns
Index(['president', 'speech', 'year'], dtype='object')
&#13;
&#13;
&#13;