本案列中,制作一个带有斜角的水平菜单。依然和上例一样,他也是自适应快读。

本例的关键在于,如何制作出左上角这个斜角。如果有了上例,制作 “带箭头的菜单“的经验,掌握使用“钩子”的方法,这个例子就很容易实现了

  核心思想就是利用边框的接角位置构造出一个斜角,然后使用“钩子”的方法挂到每一个菜单项的左上角去。如果掌握了以后,可以放到任何一个角上去。

  对于每个菜单的a元素,放置一个span元素,设为corner类别,并作为CSS“钩子”,用于实现斜角效果,代码如下所示:

<div id="menu">

<a href="#">

    <span class="men"></span>

            Home</a>

<a href="#">

    <span class="men"></span>

        Contact Us</a>

<a href="#">

    <span class="men"></span>

        Web Dev</a>

<a href="#">

    <span class="men"></span>

        Web Design</a>

<a href="#">

    <span class="men"></span>

        Map</a>

</div>

首先设置#menu容器。代码如下:

#menu {

       font-family:Arial, Helvetica, sans-serif;

       font-size:14px;

}

接着,设置每个菜单项的基本属性,代码如下:

#menu a,#menu a:visited{

       display:block;

       float:left;

       position:relative;

       text-decoration:none;

       color:#FFF;

       background:#F00;

       padding:8px 4px;

       margin:0 0 1px;

}

此时在浏览器中效果如图

接下来就是设置斜角的方法了,这边的写法稍有不同,本质趋势完全相同。

#menu a .men{

       position:absolute;

       height:0;

       width:0;

       overflow:hidden;

       border-bottom:solid 6px #F00;

       border-left:solid 6px #FFF;

       top:0;

       left:0;

}

接下来就是设置鼠标经过的效果了,代码如下

#menu a:hover{

       color:#000;

       background:#F90;

}

这是效果如图,这就有点像“折角”的效果,看起来也不错,如果喜欢这个效果可以到这里就结束了。

如果希望鼠标经过,斜角部分也变成背景色,可以增加一下代码:

#menu a:hover span.men{

       border-bottom:solid 6px #f90;    /*若不加这行代码则是另一种效果*/

}

这样鼠标经过的效果就是我们最终想要的效果了,如图所示:

至此我们得这个案例已经完成了,如你所见,你可以改变它的颜色,也可以把四个角都做成折角。