ぱたぱたアニメ館

横並びメニュー(Flexbox版)

デモ

リストタグ(ul / li)を使って、横並びメニューを作る方法です。 昔は float を使う方法が一般的でしたが、現在は Flexbox(フレックスボックス) を使うのが標準的なやり方です。 背景画像を使うことで、雰囲気のあるメニューを簡単に作ることができます。

CSS

CSS

.horizontal-menu {
  display: flex;                 /* 横並びにする */
  gap: 2px;                      /* メニュー間のすき間 */
  margin: 0;
  padding: 0;
  list-style: none;              /* リストマーカー非表示 */
}
.horizontal-menu li {
  width: 300px;                  /* 各メニューの横幅 */
}
.horizontal-menu li a {
  display: block;                /* クリック範囲を広げる */
  padding: 15px 0;               /* 上下の余白 */
  text-align: center;            /* 文字を中央揃え */
  font-weight: bold;             /* 文字を太くする */
  text-decoration: none;         /* 下線を消す */
  color: #ffffff;                /* 文字色 */

  background-color: #6699ff;     /* 背景色 */
  background-image: url("背景画像のURL");
  border: 1px solid #0000cc;     /* 枠線 */
  border-radius: 0.5em;          /* 角を丸くする */
}
.horizontal-menu li a:hover {
  color: #0000cc;                /* マウスを乗せた時の文字色 */
  background-color: #ffffff;     /* マウスを乗せた時の背景色 */
  background-image: url("背景画像のURL");
}

HTML

HTML

<ul class="horizontal-menu">
  <li><a href="リンク先URL">ここに文字</a></li>
  <li><a href="リンク先URL">ここに文字</a></li>
</ul>

縦メニューにしたい場合

横並びをやめて、縦に並べたい時は、Flexbox の向きを変えるだけです。

CSS

.horizontal-menu {
  flex-direction: column;
}

使い方のポイント

  • 横並びは display: flex; で指定
  • a 要素を display: block; にすることでボタン全体がクリックできるようになります
  • 背景画像を変えるだけで、デザインの印象が大きく変わります

この方法は 現在の主要ブラウザすべてに対応しています。レスポンシブ対応もしやすいです。

メニュー用の画像素材(576*70)

background image for horizontal menu
waterdrop70-1.jpg 576×70 18796b
background image for horizontal menu
waterdrop70-2.jpg 576×70 32731b
background image for horizontal menu
waterdrop70-3.jpg 576×70 11688b
background image for horizontal menu
waterdrop70-4.jpg 576×70 17187b
background image for horizontal menu
waterdrop70-5.jpg 576×70 16965b
background image for horizontal menu
butterfly1.jpg 576×70 32659b
background image for horizontal menu
butterfly2.jpg 576×70 40778b
background image for horizontal menu
butterfly3.jpg 576×70 32664b
background image for horizontal menu
green-flower1.jpg 576×70 30928b
background image for horizontal menu
green-flower2.jpg 576×70 29470b
background image for horizontal menu
green-flower3.jpg 576×70 29608b
background image for horizontal menu
green-flower4.jpg 576×70 31054b
background image for horizontal menu
zebra1.jpg 576×70 29304b
background image for horizontal menu
zebra2.jpg 576×70 31735b
background image for horizontal menu
zebra3.jpg 576×70 26587b
background image for horizontal menu
asterisk70.jpg 576×70 13873b

スタイルで横幅を指定する時に、576px 以上にすると画像の継ぎ目が出てしまいます。そんな大きなメニューは作られないと思いますが。

上に戻る