1. 程式人生 > >css製作導航欄

css製作導航欄

主要利用css中的transtion屬性,在滑鼠移動到時,改變偽元素的大小,字型的顏色

通過設定偽元素的陰影尺寸實現顏色收縮擴散的效果

<!DOCTYPE HTML>
<head>
    <meta charset="utf-8">
    <style>
//設定.nav , .tab , li的樣式,瀏覽器一般會有預設的padding,所以.tab中的padding設定為0
            .nav {margin: 100px;}
            .tab {margin: 0 auto; width:400px; height:40px; border: 1px solid #ddd; border-radius: 10px;
                text-align:center; line-height:40px; padding: 0px; overflow: hidden;}
            .tab li {float: left;width:100px;position: relative;overflow: hidden;}
//設定li的偽元素,:before為豎線,:after為一個寬高為0的中心點,通過絕對位置absolute定位在li中
            .tab li::after, .tab li::before {content: ''}
            .tab li:not(:first-child)::before {position: absolute; left: 0; top:10px; width:1px; height:20px; background: #ddd;}
            .tab li::after {position: absolute; width:0px; height:0px; top:50%; left:50%; z-index: 1;}
//a設定為行內元素
            .tab li a {position: relative; display: inline; z-index: 2; font-size: 14px; color: black; text-decoration: none;}
            .tab li::after, .tab li::before , .tab li a {transition: all 0.5s ease-in-out}
//滑鼠移至偽元素與a時的變化
            .tab li:hover::after {box-shadow: 0 0 0 100px #1202f7;}
            .tab li:hover::before, .tab li:hover+li::before {height: 0px; top:20px}
            .tab li:hover a {color: #ddd}
    </style>
</head>
<body>
    <div class='nav'>
        <ul class='tab'>
            <li><a href="">導航1</a></li>    
            <li><a href="">導航2</a></li>  
            <li><a href="">導航3</a></li>  
            <li><a href="">導航4</a></li>         
        </ul>
    </div>
</body>