javascript - IE9 CSS 汉堡菜单问题

标签 javascript css internet-explorer-9 navigation-drawer hamburger-menu

我正在使用 Pure Drawer 脚本为即将推出的网站 ( http://advanced1772.inmotionhosting.com/~authenticstoryte/ ) 生成 slider 抽屉导航方案。效果很好,但客户希望它能在 IE9 中工作(是的,真的......),而在 IE9 上,汉堡菜单看起来就像刚刚经历了一场拆除 Derby 。我认为这可能是因为它使用 :before 和 :after 伪元素来生成菜单。那么有没有一种替代方法可以使其在 IE9 上工作。抽屉本身效果很好。问题出在汉堡图标上:

HTML

<div class="pure-container" data-effect="pure-effect-slide">
<input type="checkbox" id="pure-toggle-right" class="pure-toggle" data-toggle="right">
<label class="pure-toggle-label" for="pure-toggle-right" data-toggle-label="right">
<span class="pure-toggle-icon"></span> </label>
<div class="pure-drawer" data-position="right">
<nav id="site-navigation" class="main-navigation" role="navigation">
<div class="menu-nav-container">
<ul id="primary-menu" class="menu">
<li id="menu-item-16" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-16"><a href="http://advanced1772.inmotionhosting.com/~authenticstoryte/sample-page/">Sample Page</a></li>
<li id="menu-item-17" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-17"><a href="http://advanced1772.inmotionhosting.com/~authenticstoryte/2016/04/25/hello-world/">Hello world!</a></li>
</ul>
</div>
</nav>
</div>
<div class="pure-pusher-container">
<div class="pure-pusher">

CSS

.pure-toggle-label { border: none!important; top: 4px!important; }
.pure-toggle-label .pure-toggle-icon {
    transform: translate3d(-50%, -4px, 0);
    -webkit-transform: translate3d(-50%, -4px, 0);
}
.pure-toggle-label .pure-toggle-icon, .pure-toggle-label .pure-toggle-icon::before, .pure-toggle-label .pure-toggle-icon::after {
    position: absolute;
    top: 50%;
    left: 50%;
    height: 4px;
    width: 35px;
    cursor: pointer;
    background: #5d809d;
    display: block;
    content: '';
    transition: all 500ms ease-in-out;
}
*, *::before, *::after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
*, *::before, *::after {
    box-sizing: inherit;
}

最佳答案

在 IE9 模拟中测试您的页面,我添加了这些:

.pure-toggle-label .pure-toggle-icon::after {
    -ms-transform: translate(-50%, 10px);
}
.pure-toggle-label .pure-toggle-icon::before {
    -ms-transform: translate(-50%, -14px);
}

这将让 translate3d 保持独立,尽管看起来您实际上只需要 2d。

有关过渡效果,请参阅:Does IE9 support transition CSS3 effects?

关于javascript - IE9 CSS 汉堡菜单问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37011711/

相关文章:

css - SVG 图标 : Styling using CSS based on context

html - IE9 对 mp4 文件的 HTML5 视频进行解码错误

css - 渐变色在 IE 9 中不显示

css - 以相同高度放置横向和纵向图像

jquery - 列出元素符号,如 1) 2) 3)

javascript - ie9中的黄色警告图标在哪里

javascript - 有什么工具可以检查 js 文件是否可以安全压缩?

javascript - 自动检查复选框列表

javascript - 如何使用 md-virtual-repeat 在 angularjs 中使用过滤器或搜索?

javascript - jQuery DataTable - 更新值并呈现为 HTML 表格