微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

32.纯 CSS 创作六边形按钮特效

原文地址:http://www.voidcn.com/article/p-vkqrsmmh-bsg.html

感想:简简单单的动画特效,位置,动画。

HTML代码

<nav>
    <ul>
        <li>Home</li>
        <li>Products</li>
        <li>Services</li>
        <li>Contact</li>
    </ul>
</nav>
<nav>
    <ul>
        <li>Home</li>
        <li>Products</li>
        <li>Services</li>
        <li>Contact</li>
    </ul>
</nav>
<nav>
    <ul>
        <li>Home</li>
        <li>Products</li>
        <li>Services</li>
        <li>Contact</li>
    </ul>
</nav>

CSS代码

html,body {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}
nav{
    --h: 3em;
}
nav:nth-child(1){
    --rate: 1.5;
    --bgcolor: black;
}
nav:nth-child(2){
    --rate: 1.732;
    --bgcolor: brown;
}
nav:nth-child(3){
    --rate: 2;
    --bgcolor: green;
}
nav ul{
    padding: 0;
}
nav ul li{
    position: relative;
    list-style-type: none;
    width: calc(var(--h) * var(--rate));
    height: var(--h);
    line-height: var(--h);
    margin: 2em;
    background-color: var(--bgcolor);
    color: white;
    font-family: sans-serif;
    text-align: center;
}
/* 用伪元素增加2个倾斜的矩形 */
nav ul li::before,nav ul li::after{
    position: absolute;
    top: 0;
    left: 0;
    content: ‘‘;
    /* inherit : 继承 */
    width: inherit;
    height: inherit;
    background-color: var(--bgcolor);
    z-index: -1;
    filter: opacity(0);
    transition: 0.3s;
}
nav ul li::before{
    /* 角度 位置 */
    transform: rotate(60deg) translateX(calc(var(--h) * -2));
}
nav ul li::after{
    transform: rotate(-60deg) translateX(calc(var(--h) * 2));
}
nav ul li:hover::before{
    filter: opacity(1);
    transform: rotate(60deg) translateX(0);
}
nav ul li:hover::after{
    filter: opacity(1);
    transform: rotate(-60deg) translateX(0);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。