【发布时间】:2019-11-12 22:42:55
【问题描述】:
我在使用 Safari 时遇到了一些布局问题,似乎无法弄清楚发生了什么。
案例:
布局:fixed 顶部标题和 fixed 侧边栏从上到下延伸。
侧边栏导航有一个使用 Javascript 触发的悬停元素。
问题:
当悬停在导航栏上时,悬停有效,但悬停的项目不可见(查看屏幕截图)。
Image of triggerd navigation item
这仅发生在 Safari 中,即使在 IE11 中也有效。
尝试的选项:
-
z-index在悬停的项目上; - 改变显示模式;
- 将
ul更改为div; - 对项目重新应用
background; - 在多个项目上将
overflow更改为visible; - 将
opacity添加到“已打开”导航块中。
html(不是由 Javascript 触发):
<ul>
<li>
<a class="navigation--dropdown-trigger" href="#">
<svg class="icon navigation--icon">
<use href="#icon--user" xlink:href="#icon--user"/>
</svg>
<div class="navigation--text">Admin</div>
<svg class="icon navigation--dropdown-icon">
<use href="#icon--arrow" xlink:href="#icon--arrow"/>
</svg>
</a>
<ul>
<li><a href="{{ route('users.index') }}">Gebruikersbeheer</a></li>
</ul>
</li>
</ul>
html(由Javascript触发):
<ul>
<li>
<a class="navigation--dropdown-trigger open--dropdown" href="#">
<svg class="icon navigation--icon">
<use href="#icon--user" xlink:href="#icon--user"/>
</svg>
<div class="navigation--text">Admin</div>
<svg class="icon navigation--dropdown-icon">
<use href="#icon--arrow" xlink:href="#icon--arrow"/>
</svg>
</a>
<ul>
<li><a href="{{ route('users.index') }}">Gebruikersbeheer</a></li>
</ul>
</li>
</ul>
这将运行以下 css(使用 scss btw):
&.navigation--dropdown-open ~ ul
{ display: block; }
注意事项:
- 当触发 Javascript 时,它也会向 ul 添加一个
top:值。 - 如果我删除下拉 ul 的
position: fixed,它确实会出现在侧边栏内 - 当从下拉列表中删除
left:值时,上述屏幕截图也适用。
我的同事在Apple site (2014) 上发现了这个带有 Fiddle 示例,如果你在 Safari 中打开它,你可以看到不同之处:http://jsfiddle.net/m287S/1/
有人知道为什么它不可见吗?
【问题讨论】:
-
嗨,
<svg>至少可以渲染吗? -
是的,
<svg>是图标(用户)。另一个<svg>隐藏在此特定视图中。 -
这很奇怪...从您分享的 Fiddle 看来,这似乎是一个 Safari 错误...
-
是的,它看起来像...但是我分享的 Fiddle 来自 2014 年的 Apple 错误报告 ='D...
标签: javascript html css safari cross-browser