【发布时间】:2015-08-06 07:42:28
【问题描述】:
我在我网站的导航中使用 CSS 中的 transition 属性。导航由 3 个图像组成。当您使用鼠标hover 图像时,将应用transition 以显示带有一些文本的叠加层。这一切都可以在 Chrome 和 Firefox 中完美运行。然而,Safari 是一团糟。不仅转换行为根本不起作用,而且无论我做什么,菜单都停留在第二行,而不是与徽标一起停留在第一行(您将从 jsfiddle 示例中看到我的意思,如果您打开Chrome 和 Safari 中的小提琴)。
CSS:
header nav a img {
width: 100%;
transition: all 0.2s ease-in-out;
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
}
.menuitem-content {
top: 15px;
padding: 5px;
margin: 0 auto;
width: 100%;
height: 100%;
position: absolute;
text-align: center;
vertical-align: middle;
color: #FFFFFF;
background-color: rgba(86, 81, 65, .8);
display: none;
transition: all 1.2s;
-webkit-transition: all 1.2s;
-moz-transition: all 1.2s;
font-size: 14pt;
z-index: 999;
left: 0px;
}
header nav a:hover > .menuitem-content {
display: inline-flex;
}
https://jsfiddle.net/35qnu4d1/
您可能需要稍微扩展输出窗口才能在同一行上看到菜单和徽标(这对我们来说很好,因为最小分辨率应该是 1024x768 — 这不是为移动设备构建的)。任何想法为什么它在 Safari 中的行为如此奇怪?
【问题讨论】:
-
您还需要为 Safari 添加
display: -webkit-inline-flex;。但据我所知,您可以简单地使用display: block;
标签: html css safari css-transitions