前端每日實戰:26# 視頻演示如何用不到 50 行 CSS 代碼,創做按鈕被從紙上掀起的立體效果

圖片描述

效果預覽

按下右側的「點擊預覽」按鈕能夠在當前頁面預覽,點擊連接能夠全屏預覽。css

https://codepen.io/comehope/pen/KRbXGehtml

可交互視頻教程

此視頻是能夠交互的,你能夠隨時暫停視頻,編輯視頻中的代碼。前端

請用 chrome, safari, edge 打開觀看。git

https://scrimba.com/c/c3e8dCBgithub

源代碼下載

每日前端實戰系列的所有源代碼請從 github 下載:chrome

https://github.com/comehope/front-end-daily-challengesdom

代碼解讀

定義 dom,標準的導航版式:佈局

<nav>
    <ul>
        <li>Home</li>
    </ul>
</nav>

居中顯示:flex

html, body {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(cadetblue, darkcyan);
}

設置容器的樣式,把背景色聲明爲變量:spa

nav {
    width: 300px;
    height: 300px;
    --bgcolor: lemonchiffon;
    background-color: var(--bgcolor);
    box-shadow: 0 5px 30px rgba(0, 0, 0, 0.2);
    border-radius: 10px;
    padding: 30px 0;
    box-sizing: border-box;
}

去掉列表符,讓菜單項居中顯示:

nav ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

設置菜單項的文字樣式:

nav ul li {
    color: brown;
    font-size: 20px;
    font-family: sans-serif;
}

爲菜單項增長鼠標劃過效果:

nav ul li {
    padding: 0.5em 1em;
    border-radius: 0.5em;
    transition: 0.5s ease-out;
}

nav ul li:hover {
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.1),
                0 6px 6px rgba(0, 0, 0, 0.1),
                0 8px 8px rgba(0, 0, 0, 0.1),
                0 12px 12px rgba(0, 0, 0, 0.1);
    transform: scale(1.05) translateY(-0.25em) perspective(300px) rotateX(20deg) ;
}

dom 中再增長几個菜單項:

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

最後,調整一下菜單項佈局:

nav ul {
    justify-content: space-between;
    flex-direction: column;
}

大功告成!

相關文章
相關標籤/搜索