0

我有一个菜单按钮,单击该按钮时,会调用slideToggle()其中<div>带有 a 的 a <ul>。在桌面版 Chrome 和 Firefox 中,它显示如下:

在此处输入图像描述

即元素向下滑动并将其下方的内容向下推。这是预期的行为。

然而,在 iOS7(以及 Adob​​e Edge Inspect)的 Chrome 和 Safari 以及 4.1.2 上的 Android 浏览器中,菜单会覆盖 DOM 中它下方的元素:

在此处输入图像描述

我试过的

  • 我们的好朋友z-index(在 上更高<ul>,甚至在它下面的元素上尝试否定)
  • 我已经在两个元素(例如,, )上尝试了所有displayCSS 属性的排列。blockdisplay-block
  • position我已经尝试了所有的属性排列(一个带有absolute,另一个带有relative;一个带有static,另一个带有relative,等等)
  • 我已经尝试了浮动和非浮动两个元素的所有排列。
  • 我尝试将硬编码的高度属性添加到菜单
  • 使用边距和填充

注意:不幸的是,这是在开发环境中,因此您无法在任何地方对其进行测试。但是,我将使用 js fiddle 进行更新。

编辑

这是一个小提琴,但我无法让它与媒体查询一起使用。

编辑 2

它实际上可以在我的手机上使用,所以它必须是我拥有的其他一些 CSS。

编辑 3

我尝试注释掉我正在使用的框架Foundation,但仍然会发生这种情况。它必须在其他地方。

4

1 回答 1

0

好吧,在将整个应用程序中的整个 20,000 多行 CSS 平分之后,就可以归结为这一点了。

导航的包含元素,在 CSS 中<div class="header-container">有一个 height 属性。height: 50px显然,我尝试的桌面浏览器将 a 解释slideDown为允许包含元素的高度增长,而移动浏览器则没有。

更改该属性以min-height: 50px解决此问题。

于 2013-10-18T21:08:41.400 回答