怎么消除css中的绝对定位重叠问题

html-css013

怎么消除css中的绝对定位重叠问题,第1张

首页打开dreamweaver或其它编辑器,创建一个名为nav的导航菜单

<div class="nav">

<ul>

<li><a href="#">栏目一</a></li>

<li><a href="#">栏目二</a></li>

<li><a href="#">栏目三</a></li>

<li><a href="#">栏目四</a></li>

<li><a href="#">栏目五</a></li>

</ul>

</div>

现在为nav添加样式,首先去掉默认的margin和padding,再去掉<ul><li>标签的list-style样式和<a>标签的默认下划线。接下来再添加适当的样式(根据实际需要添加)进行美化,如一下样式:

<style type="text/css">

* { margin:0padding:0}

ul, li { list-style:none}

a { text-decoration:none}

.nav { border:2px solid #cccborder-right:noneoverflow:hiddenfloat:leftmargin:100px 0 0 300px}

.nav ul li { float:left}

.nav

ul li a

{ width:120pxheight:40pxtext-align:centerline-height:40pxdisplay:blockborder-right:2px

solid #cccbackground:#eeecolor:#666}

.nav ul li a:hover{ color:#f00}

</style>

像这样,一个菜单横向菜单就建好了,下面给栏目一,栏目二,栏目三,添加二级下拉菜单

<div class="nav">

<ul>

<li><a href="#">栏目一</a>

<ul>

<li><a href="#">二级栏目</a></li>

<li><a href="#">二级栏目</a></li>

<li><a href="#">二级栏目</a></li>

<li><a href="#">二级栏目</a></li>

</ul>

</li>

<li><a href="#">栏目二</a>

<ul>

<li><a href="#">二级栏目</a></li>

<li><a href="#">二级栏目</a></li>

<li><a href="#">二级栏目</a></li>

<li><a href="#">二级栏目</a></li>

</ul>

</li>

<li><a href="#">栏目三</a>

<ul>

<li><a href="#">二级栏目</a></li>

<li><a href="#">二级栏目</a></li>

<li><a href="#">二级栏目</a></li>

<li><a href="#">二级栏目</a></li>

<li><a href="#">二级栏目</a></li>

</ul>

</li>

<li><a href="#">栏目四</a></li>

<li><a href="#">栏目五</a></li>

</ul>

</div>

添加完二级栏目后,现在开始添加css样式,首先给<li>标签下的<ul>标签添加相对定位,再去除之下<li>标签的做浮动样式,再适当修改<a>标签,如一下样式:

.nav ul li ul { position:absolute}

.nav ul li ul li { float:none}

.nav ul li ul li a { border-right:noneborder-top:1px dotted #cccbackground:#f5f5f5}

接下来隐藏掉二级下来菜单,并给它添加鼠标滑动效果,使得当鼠标滑动到主栏目时,二级下来菜单显示,样式如下:

.nav ul li ul { position:absolutedisplay:none}

.nav ul li ul li { float:none}

.nav ul li ul li a { border-right:noneborder-top:1px dotted #cccbackground:#f5f5f5}

.nav ul li:hover ul{ display:block}

至此,横向二级下拉菜单就制作完成了,这里附加上全部代码

可以通过设置一下边框宽度来解决不能重合的问题。

像这样的带边框div的一定要计算很精准:

总宽度=div宽度+左边框宽度+右边框宽度(只要有边框的div都要计算边框的宽度)

上图中CSS并没有指定边框是多宽的,建议也指定定义好的宽度数值,再计算一下整体宽度是多少,这样应该就可以将边框重合了。

如果还不能重合,建议将完整代码截图发来。