我正在使用 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/