0

codrops Web サイトから取得した CSS3 コードのみを使用して、Web サイトのヘッダーに「ハンバーガー」メニュー アイコンを挿入しました。アイコンは疑似クラス :before と :after を使用し、Chrome の最新バージョンと IE11 で完全に動作します。ただし、IE9 (私たちの組織が職場で使用している) を使用すると、最初のトリガー アイコンが正しく表示されず、ページの読み込み時に 3 行のうちの 1 行 (中央の行だと思います) のみが表示されます。これらの疑似クラスを使用する IE9 で以前に問題が発生したことはありません。HTML に IE9 を quirks モードに戻すものが何もないことを確認しました。この問題が IE9 標準モードで発生していることを確認できます。Codrops Web サイトhttp://tympanus.net/Tutorials/AnimatedBorderMenus/index2.htmlで元のデモも確認しました。そして同じ問題が発生します。職場の外でもIE9を使用しましたが、同じことが起こり、「ハンバーガー」の1行しか表示されません。

アイコンに使用される CSS は次のとおりです (CSS3 アニメーションはどれも IE9 で機能しないことは承知していますが、これによって最初のトリガー アイコンが適切に表示されなくなることはありません)。

.bt-menu-trigger {
    position: fixed;
    top: 22px;
    left: 20px;
    display: block;
    width: 50px;
    height: 50px;
    cursor: pointer;
    z-index: 1100;
}

.bt-menu-trigger span {
    position: absolute;
    top: 50%;
    left: 0;
    display: block;
    width: 100%;
    height: 4px;
    margin-top: -2px;
    background-color: #fff;
    font-size: 0px;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-transition: background-color 0.3s;
    transition: background-color 0.3s;
}

.bt-menu-open .bt-menu-trigger span {
    background-color: transparent;
}

.bt-menu-trigger span:before,
.bt-menu-trigger span:after {
    position: absolute;
    left: 0;
    width: 100%;
    height: 100%;
    background: #fff;
    content: '';
    -webkit-transition: -webkit-transform 0.3s;
    transition: transform 0.3s;
}

.bt-menu-trigger span:before {
    -webkit-transform: translateY(-250%);
    transform: translateY(-250%);
}

.bt-menu-trigger span:after {
    -webkit-transform: translateY(250%);
    transform: translateY(250%);
}

.bt-menu-open .bt-menu-trigger span:before {
    -webkit-transform: translateY(0) rotate(45deg);
    transform: translateY(0) rotate(45deg);
}

.bt-menu-open .bt-menu-trigger span:after {
    -webkit-transform: translateY(0) rotate(-45deg);
    transform: translateY(0) rotate(-45deg);
}

Web ページで使用される HTML マークアップは次のとおりです。

<nav id="bt-menu" class="bt-menu">
    <a href="#" class="bt-menu-trigger"><span>Menu</span></a>
    <ul>
        <li><a href="http://www.acutemedicinebhh.com/home.html">home</a></li>
        <li><a href="http://www.acutemedicinebhh.com/documents.html">documents</a></li>
        <li><a href="http://www.acutemedicinebhh.com/medical-on-call.html">medical on-call</a></li>
        <li><a href="http://www.acutemedicinebhh.com/learning.html">learning</a></li>
        <li><a href="http://www.acutemedicinebhh.com/acp.html">acp</a></li>
        <li><a href="http://www.acutemedicinebhh.com/nursing.html">nursing</a></li>
        <li><a href="http://www.acutemedicinebhh.com/about-us.html">about us</a></li>
    </ul>
</nav>

IE9 でハンバーガーを適切に表示する方法を教えていただければ幸いです。

4

1 に答える 1

0

CanIUseによると、CSS 変換は-ms-プレフィックス付きの IE9 でサポートされています。

于 2015-03-09T02:18:04.777 に答える