css实现大气网站头部下拉导航条效果代码

代码语言:html

所属分类:菜单导航

代码描述:css实现大气网站头部下拉导航条效果代码

代码标签: css 下拉 导航条 头部

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">

    <script src="https://kit.fontawesome.com/628c8d2499.js" crossorigin="anonymous"></script>
    <!--图标库-->


    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
    <style>
        :root {
        --menu-width: 37.5em; /* Width of menu */
        --items: 4; /* Number of items you have */
        --item-width: calc(var(--menu-width) / var(--items));
    }
    
    body {
        margin: 0;
        padding: 0;
        background: linear-gradient(45deg, #102eff, #d2379b);
        font-family: 'Roboto', sans-serif;
        height: 100vh;
        overflow: hidden;
        width: 100vw;
    }
    
    nav {
        width: var(--menu-width);
        display: flex;
        transform-style: preserve-3d;
        justify-content: space-evenly;
        position: relative;
        z-index: 2;
        margin: 0px auto;
        perspective: 2000px;
        flex-wrap: wrap;
        top: 3em;
    }
    
    nav .menu-item {
        color: white;
        font-weight: 600;
        transform-style: preserve-3d;
        flex-grow: 1;
        display: flex;
        flex-basis: var(--item-width);
        box-sizing: border-box;
        padding: 1em 1.5em;
        justify-content: center;
        perspective: 200px;
        letter-spacing: 0.5px;
        min-height: 7.5em;
    }
    
    nav .menu-text, nav .menu-text a {
        font-size: 1em;
        color: white;
        text-decoration: none;
        text-shadow: 0 1px 5px rgba(0,0,0,0.1);
        transition: color 0.1s ease-out;
        text-align: center;
    }
    
    nav .menu-text a:hover {
        color: rgba(255,255,255,0.5);
    }
    
    #sub-menu-holder {
        pointer-events: none;
        color: rgba(0,0,0,0.5);
        font-weight: normal;
        padding: 1em;
        position: absolute;
        transition: opacity 2 ease-out;
        transform: rotateX(-25deg) scale(1);
        transform-origin: 50% 7em 0em;
        opacity: 0;
        box-shadow: 0 2px 7px rgba(0,0,0,0.1), 0 2px 20px rgba(0,0,0,0.3);
        box-sizing: border-box;
        top: 3rem;
        border-radius: 10px;
        background: white;
        display: block;
        height: 300px;
        width: calc(var(--menu-width) * 1.5);
    }
    
    #sub-menu-container {
        position: absolute;
        z-index: -1;
        min-width: 100%;
        top: 2.5em;
        width: 100%;
    }
    
    nav .menu-item:hover ~ #sub-menu-container #sub-menu-holder {
        animation: clipPath 0.25s ease-out 1 forwards;        
        transition: clip-path 0.25s ease-out, left 0.15s ease-out, height 0.15s ease-out;
        opacity: 1;
        right: auto;
    }
    nav .menu-item:nth-of-type(1):hover ~ #sub-menu-container #sub-menu-holder,
    nav .menu-item:nth-of-type(4):hover ~ #sub-menu-container #sub-menu-holder {
        clip-path: inset(0 28.75em 0 0 round 10px);
        height: 14em;
    }
    
    nav .menu-item:nth-of-type(2):hover ~ #sub-menu-container #sub-menu-holder,
    nav .menu-item:nth-of-type(3):hover ~ #sub-menu-container #sub-menu-holder {
        clip-path: inset(0 15em 0 0 round 10px);
    }
    
    nav .menu-item:nth-of-type(1):hover ~ #sub-menu-container #sub-menu-holder {
        left: calc(-9em + -1px);
    }
    nav .menu-item:nth-of-type(2):hover ~ #sub-menu-container #sub-menu-holder {
        left: calc(-6.5em + -1px);
        height: 18.75em;
    }
    nav .menu-item:nth-of-type(3):hover ~ #sub-menu-container #sub-menu-holder {
        left: calc(2.75em + 1px);
        height: 24.5em;
    }
    nav .menu-item:nth-of-type(4):hover ~ #sub-menu-container #sub-menu-holder {
        left: calc(19em + 1px);
    }
    
    .menu-item .sub-menu {
        position: absolute;
        top: 7em;
        color: rgba(0,0,0,0.5);
        border-radius: 10px;
        min-width: 27.5em;
        pointer-events: none;
        box-sizing: border-box;
        z-index: 999;
        margin-left: -5em;
        clip-path: inset(0 10em 10em 15em);
        opacity: 0;
        font-weight: initial;
        padding: 1.5em;
        transition: all 0.25s ease-out, opacity 0.25s ease-in, margin-left 0.25s ease-out, clip-path 0.15s ease-out;
    }
    
    .menu-item .sub-menu.double {
        min-width: 41.25em;
        height: 18.75em;
        display: grid;
        grid-template-columns: 54% 50%;
    }
    .menu-item .sub-menu.triple {
        min-width: 41.25em;
        height: 25em;
        display: grid;
        padding: 1.5em 2.5em;
        grid-template-columns: 55% 45%;
    }
    .menu-item:hover .sub-menu {
        pointer-events: all;
        clip-path: inset(0 0 0 0);
    }
    
    .menu-text:after {
        transition: bottom 0.25s ease-out, opacity 0.01s ease-out 0.01s;
        opacity: 0;
        content: '';
        position: absolute;
        pointer-events: none;
        bottom: -5em;
        left: calc(50% - 10px);
        border-color: transparent transparent white transparent;
        border-width: 10px;
        border-style: solid;
    }
    .menu-item:hover .menu-text:after {
        bottom: 0.5em;
        opacity: 1;
        transition: bottom 0.25s ease-out, opacity 0.01s ease-out 0.15s;
    }
    .menu-item:hover .sub-menu {
        opacity: 1;
        margin-left: 0;
    }
    
    .menu-item:hover ~ #sub-menu-container #sub-menu-holder  {
        transition: transform 0.25s ease-out, opacity 0.25s ease-out, clip-path 0.25s ease-out;
    }
    
    @keyframes clipPath {
        0% {
            opacity: 0;
        }
        100% {
            transform: rotateX(0deg) scale(1);
            top: 4.5em;
            opacity: 1;        
        }
    }
    
    /* Menu specific */
    .menu-item .title {
        font-weight: 500;
        color: rgb(44 70 86);
        margin: 0 0 0.25em 0;
    }
    
    .menu-item .icon-box * {
        transition: all 0.1s ease-out;
        position: relative;
    }
    .menu-item .icon-box.space {
        margin-bottom: 1.25em;
    }
    .menu-item .icon-box.flat {height: 1.5em;margin-bottom: 0.5em;}
    .menu-item .icon, .menu-item .text {
        float: left;
        color: #9ea9af;
    }
    
    .menu-item .icon {
        color: rgb(44 70 86);
        font-size: 1.25em;
        margin: 0 1em 0 0;
    }
    .menu-item .icon-box {
        cursor: pointer;
    }
    .menu-item .icon-box {
        float: left;
        width: 100%;
        margin: 0;
        height: 4em;
        row-gap: 0;
        line-height: 1em;
    }
    
    .menu-item .icon-box .text i {
        clip-path: inset(0 100% 0 0);
        font-size: 0.75em;
        position: relative;
        top: -1px;
    }
    
    /* Base Icon Style */
    .icon-box.gb .icon i:before {
        background: linear-gradient(45deg, #0c86ef, #0cef9b);
        -webkit-text-fill-color: transparent;
        -webkit-background-clip: text;
        padding-left: 1px;
    }
    
    /* Define Icon Colors */
    .icon-box.gb.a .icon i:before {background-image: linear-gradient(45deg, #2ca7ff 35%, #31d078 75%);}
    .icon-box.gb.b .icon i:before {background-image: linear-gradient(45deg, #f32b2b 35%, #efbe0c 75%);}
    .icon-box.gb.c .icon i:before {background-image: linear-gradient(45deg, #7176ff 35%, #b26cea 75%);}
    .icon-box.gb.d .icon i:before {background-image: linear-gradient(45deg, #79c76f 35%, #bed09b 75%);}
    .icon-box.gb.e .icon i:before {background-image: linear-gradient(45deg, #6082ff 35%, #ff5dbe 75%);}
    .icon-box.gb.f .icon i:before {background-image: linear-gradient(45deg, #808080 35%, #bbbbbb 75%);}
    
    .menu-item .icon-box:hover .text i {
        clip-path: inset(0 0 0 0);
        transition: clip-path 0.1s ease-out;
    }
    
    .menu-item .icon-box:hover .icon, .menu-item .icon-box:hover .title, .menu-item .icon-box:hover .sub-text {
        color: rgb(89 110 123);
    }
    
    #sub-menu-bottom {
        background: #d4e3ea70;
        position: absolute;
        bottom: 0;
        opacity: 0;
        transition: all 0.25s ease-out, height 0.1s ease-out;
        left: 0;
        width: 100%;
        height: 5em;
    }
    nav .menu-item:nth-of-type(3).highlight:hover ~ #sub-menu-container #sub-menu-holder #sub-menu-bottom {
        height: 7.5em;
    }
    .bottom-container {
        grid-area: 4 / -3 / 4 / 3;
        padding-top: 1.5em;
        color: #3a5260;
        font-weight: 500;
    }
    
    .top-container {
        grid-area: 1 / -3 / 1 / 3;
        margin: 0 0 2em 0;
    }
    
    .bottom-container a {
        float: right;
        background: linear-gradient(90deg, #8ea4b166, #a3b5bf6b);
        padding: 0.5em 1em;
        border-radius: 100px;
        position: absolute;
        color: #2c4655bf;
        font-weight: bold;
        text-decoration: none;
        right: 1.5em;
        bottom: 1.5em;
    }
    
    .bottom-container a:hover {
        background: linear-gradient(90deg, #8ea4b136, #a3b5bf33);
    }
    
    .sub-menu h3 {
        font-size: 1em;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        color: rgb(44 70 86 / 68%);
        margin: 0.75em 0;
    }
    
    .sub-menu .box a {
        width: 100%;
        float: left;
        font-size: 1em;
        line-height: 1.75em;
        color: #7a8a94;
        text-decoration: none;
    }
    
    .sub-menu .box a:hover {
        color: rgb(44 70 86);
    }
    
    .box {
        margin: 0 0 3em 0;
    }
    
    .icon.big i {
        font-size: 1.25em;
        top: 0.2em;
    }
    nav .menu-item.highlight:hover ~ #sub-menu-container #sub-menu-holder #sub-menu-bottom { opacity: 1; }
    </style>

</head>

<body>

    <nav id="menu">
        <div class="menu-item">
            <div class="menu-text">
                <a href="#">Products</a>
            </div>
            <div class="sub-menu">
                <div class="icon-box">
                    <div class="icon"><i class="fal fa-wind-turbine"></i></div>
                    <div class="text">
                        <div class="title">Turbo Editor <i class="far fa-arrow-right"></i></div>
                      .........完整代码请登录后点击上方下载按钮下载查看

网友评论0