色彩斑斓的CSS3动画导航菜单

色彩斑斓的CSS3动画导航菜单57
在这个简短的教程中,我们将创建一个彩色的下拉菜单只使用CSS3字体和字体的图标。顾名思义,一个图标字体字体映射角色图标,而不是信件。这意味着你得到漂亮的矢量图标在每个浏览器支持HTML5自定义字体(几乎所有)。添加图标元素,您只需要指定一个类名称和图标将被添加:在元素之前的字体的样式表。

 HTML
  
  这是我们将使用的标记:
index.html
<nav id="colorNav">
    <ul>
        <li class="green">
            <a href="#" class="icon-home"></a>
            <ul>
                <li><a href="#">Dropdown item 1</a></li>
                <li><a href="#">Dropdown item 2</a></li>
                <!-- More dropdown options -->
            </ul>
        </li>

        <!-- More menu items -->

    </ul>
</nav>
每一项的主要菜单是最高的无序列表的一个孩子。里面是一个与一个图标类(见图标类)的完整列表,和另一个无序列表,这将显示为下拉在盘旋。 CSs      正如你所看到的在上面的HTML片段中,我们有无序列表嵌套在主ul,所以我们必须小心地编写CSS。我们不想要的样式UL级联到后代。幸运的是,这正是孩子css选择器“>”是: assets/css/styles.css
#colorNav > ul{
    width: 450px;
    margin:0 auto;
}
这限制了宽度和保证金声明只有第一个无序列表,这是我们的直系后裔# colorNav项目。记住这一点,让我们看看他实际的菜单项是什么样子:
#colorNav > ul > li{ /* will style only the top level li */
    list-style: none;
    box-shadow: 0 0 10px rgba(100, 100, 100, 0.2) inset,1px 1px 1px #CCC;
    display: inline-block;
    line-height: 1;
    margin: 1px;
    border-radius: 3px;
    position:relative;
}
我们设定一个inline-block显示值,列表项一行所示,我们指定一个相对位置正确,这样我们就能抵消一些。定义的锚元素包含实际图标字体太棒了。
#colorNav > ul > li > a{
    color:inherit;
    text-decoration:none !important;
    font-size:24px;
    padding: 25px;
}
现在我们可以继续下降的痛苦。在这里,我们将定义一个CSS3动画过渡。我们将设置一个maximum-height 0 px,隐藏下拉。在徘徊,我们将动画的最大高度为更大的值,这将导致逐渐显示列表:
#colorNav li ul{
    position:absolute;
    list-style:none;
    text-align:center;
    width:180px;
    left:50%;
    margin-left:-90px;
    top:70px;
    font:bold 12px 'Open Sans Condensed', sans-serif;

    /* This is important for the show/hide CSS animation */
    max-height:0px;
    overflow:hidden;

    -webkit-transition:max-height 0.4s linear;
    -moz-transition:max-height 0.4s linear;
    transition:max-height 0.4s linear;
}
这是动画触发器
#colorNav li:hover ul{
    max-height:200px;
}
  200 px的值是任意的,你将不得不增加它如果您的下拉列表中包含大量的值不符合。不幸的是没有css-only的方法来检测高度,所以我们必须硬编码。      下一步是风格实际的下拉项:
#colorNav li ul li{
    background-color:#313131;
}

#colorNav li ul li a{
    padding:12px;
    color:#fff !important;
    text-decoration:none !important;
    display:block;
}

#colorNav li ul li:nth-child(odd){ /* zebra stripes */
    background-color:#363636;
}

#colorNav li ul li:hover{
    background-color:#444;
}

#colorNav li ul li:first-child{
    border-radius:3px 3px 0 0;
    margin-top:25px;
    position:relative;
}

#colorNav li ul li:first-child:before{ /* the pointer tip */
    content:'';
    position:absolute;
    width:1px;
    height:1px;
    border:5px solid transparent;
    border-bottom-color:#313131;
    left:50%;
    top:-10px;
    margin-left:-5px;
}

#colorNav li ul li:last-child{
    border-bottom-left-radius:3px;
    border-bottom-right-radius:3px;
}
当然,我们将无处没有一些花哨的颜色!这里有5个版本:
#colorNav li.green{
    /* This is the color of the menu item */
    background-color:#00c08b;

    /* This is the color of the icon */
    color:#127a5d;
}

#colorNav li.red{		background-color:#ea5080;color:#aa2a52;}
#colorNav li.blue{		background-color:#53bfe2;color:#2884a2;}
#colorNav li.yellow{	background-color:#f8c54d;color:#ab8426;}
#colorNav li.purple{	background-color:#df6dc2;color:#9f3c85;}
使用图标的字体,一个整洁的方面是,您可以更改图标的颜色通过声明一个颜色属性。这意味着所有定制您可能想要可以用CSS。 完成了!      图标的字体是一个伟大的除了你的web开发工具集。常规的字体,您可以使用字体大小、颜色和将属性来定制。本例中没有使用图片和JS,所以它应该很容易匹配与当前设计和使用它在几分钟内。

也许你还喜欢