2016-07-25 63 views
-4
#nav ul ul li { 
    display: block; 
    font-color: blue; 
    font-size: 1.5em; 
    z-index: 1; 
    position: relative; 
} 

Current output 例如,我有一个移动的回应式网站,并在主菜单工作正常,但是当我调整浏览器窗口小,复制一个小屏幕,如移动电话....一个具有下拉列表的主菜单项显示在其他主菜单项的顶部。这意味着主菜单下拉项目显示在正下方的一些主菜单文本的顶部!如何让html元素在显示时与另一个元素重叠?

我已经完成了z索引,所以下拉菜单位于顶部,但问题是,即使它位于顶部,仍然显示下面的主菜单。

这是jsfiddle

+2

请出示一些代码 – mxlse

+0

同意,显示代码。但我想你的菜单上没有背景颜色。即使是白色的bg也会隐藏下面的东西,只显示菜单文本/内容。 –

+0

所以他们重叠,但你不想让他们成为?我不明白你的目标。这听起来像你有你不想要的CSS定位。 – 4castle

回答

0

当你不设置z-index,元素遵循其顶部被显示的默认排序:

当没有元素具有的z-index,元素按照此顺序堆叠(从下到上):

  1. 根元素的背景和边框
  2. 在正常流动后裔块,在外观上(在HTML)
  3. 后代定位元素,的顺序在外观(在HTML)

MDN

在HTML的顺序子菜单的ul出现在其他菜单项的HTML之前,因此其他菜单项出现在子菜单的背景上。

为了解决这个问题,设置一个z-index使得ul的背景将被提升:

#nav ul ul { 
    z-index: 1; 
} 

Fixed JSFiddle

+0

您是王者! –

+0

@AshleyYoung哈哈,谢谢。尽管如此,我们试着让这个过程更顺畅。那是一个戏剧性的过山车,如果我们从一开始就有完整的代码,我或其他人可能会更早地回答。感谢您与我们合作。 – 4castle