0

純粋な CSS でハンバーガー メニューを作成しましたが、問題は、何らかの理由で中央ではなく左側に配置されていることです。理由がよくわかりません。

マークアップ:

<section id="header">
    <a href="#menu" class="box-shadow-menu" id="navTrigger">
        <div class="navicon">
        </div>
    </a>
</section>

CSS:

#header {
    width: 100%;
    height: 45px;
    background-color: #4dc1df;
    position: fixed;
    z-index: 100;
}

.navicon {
    position: fixed;
    height: 45px;
    left: 50%;
    margin-left: -17.5px;
}

.box-shadow-menu {
    position: relative;
    display: block;
    height: 45px;
}

.box-shadow-menu:before {
    content: "";
    position: absolute;
    top: 10px;
    width: 35px;
    height: 4px;
    background: white;
    box-shadow: 0 10px 0 0 white, 0 20px 0 0 white;
}

デモ: http://jsfiddle.net/jLhnr12p/1/ .

これを適切に中央に配置するための助けをいただければ幸いです!

4

1 に答える 1

2

あなたのコード:

.navicon {
  position: fixed;
  left: 50%;
  right: 50%;
}

このように中央揃えにすることはできません。 left プロパティを 50% に設定し、負の margin-left (17.5px である navicon の半分) を設定することで実現できます。

.navicon {
  left: 50%;
  margin-left: -17.5px; // or transform: translateX(-50%);
}
于 2015-10-18T22:39:14.067 に答える