Suckerfish下拉菜单

以前从未做过下拉菜单式的导航栏,就试着做了个下拉菜单。期间发现将li元素元素转换为行内块时发现:行内块之间默认有距离的(即使设置了margin为0)。于是就采用了浮动的办法,发现这类问题就解决了同时也发现将li转为行内块时,会形成如图的效果

而采用浮动的办法后,效果图为:





在浮动后,就会带来一定影响:父元素ul导航栏就会收缩。《精通css》这本书6.7节是将父元素也左浮动了。然而一般页面要求导航栏水平居中的,故而,我未采用这种方法,而采用的是将父元素overflow:hidden技术.

为了在激活之前隐藏实际的下拉菜单,需要将ul的position设置为absolute,然后把它隐藏在屏幕左边之外。

整个效果图为:




程序如下;

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="ex1.css"/>
</head>
<body>
<ul id="nav">
    <li><a href="#">Home</a></li>
    <li><a href="#">Products</a></li>
    <li id="mm"><a href="#">Services</a>
        <ul id="nav1">
            <li><a href="#">Design</a></li>
            <li><a href="#">Developement</a></li>
            <li><a href="#">Consultancy</a></li>
        </ul>
    </li>
    <li><a href="#">Contact Us</a></li>
</ul>

</body>
</html>
@charset"utf-8";
body{
    margin:0;
}
#nav,#nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
    overflow: hidden;
}
#nav{
    width:960px;
    margin:0 auto;
}
#nav li{
    background-color: #eeeeee;
    border:1px solid  #cccccc;
    width:238px;
    text-align: center;
}
#nav>li{
    float:left;
}
#nav a{
    color:black;
    text-decoration: none;
    display: block;
}
#nav1{
    position:absolute;
    left:-9999px;
}
#mm:hover  #nav1{
    left:auto;
}
#nav a:hover,#na a:focus{
    color:white;
    background-color: #666666;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值