本案例仍然使用和上一个案例相同的HTML结构,基本HTML代码如下:

<body>
<div id="menu">
<a href="#">Home</a>
<a href="#">Contact Us</a>
<a href="#">Web Dev</a>
<a href="#">Web Design</a>
<a href="#">Map</a>
</div>
</body>

对于#menu容器设置如下:

#menu {
    font-family:Arial, Helvetica, sans-serif;    /*字体*/
    font-size:14px;                            /*字号*/
}

菜单项的普通状态设置,代码如下:

#menu a,#menu a:visited {
    text-decoration:none;            /*设置下滑线*/
    text-align:center;                /*文字水平居中*/
    color:#fff;                        /*白色文字*/
    display:block;                    /*设置块级元素*/
    width:10em;                        /*宽度*/
    padding:0.25em;                    /*内边距*/
    margin:0.5em auto;                /*菜单项之间间隔0.5em,并水平居中*/
    background-color:#8ab;            /*背景色*/
    border:2px solid #fff;            /*边框*/
    border-color:#def #678 #345 #cde;   /*边框颜色显示突起效果*/
    position:relative;                /*使用相对定位*/
}

  position:relative;                /*使用相对定位*/

注意  所谓相对定位,是指类似定位元素自身所在的位置为基准,平移制定的距离。


#menu a:hover{
    top:2px;                        /*向下移动两像素*/
    left:2px;                        /*向右移动两像素*/
    border-color:#345 #cde #def #678;        /*边框颜色显示凹陷效果*/
}

到这在浏览器中显示效果如图:

“top:2px” 的含义是,距离上界2个像素。由于原来鼠标指针未经过时,距离上界时0像素,因此产生的效果就是向下移动了2个像素。一次类推,“left:2px” 的效果是向右移动2个像素。由于前面已经设定定位方式为相对定位,因此这里的移动式以自身原来的位置为基准进行的。

为了实现凹陷的视觉效果,需要将上下边框的颜色交换,左右边框的颜色交换。这样,这个立体菜单的效果就完成了。