初心者向けナビメニューの簡単な作り方【HTML・CSS】

PROGRAMMING

デモ

ご覧いただきまして、ありがとうございます!

早速、以下のデモをご覧ください!

一般的に使われるようなナビメニューをつくってみました。

シンプルなので、使い勝手はそこそこだと思いますが、是非一度、試してみてください。

ナビメニューHTML部分の解説

早速コードの方をご紹介したいと思います。

以下がHTMLの完成版になります。

<nav class="cf">
	<div class="bg">
		<div class="logo"><a href="#">logo</a></div>
		<ul>
			<li><a href="#">menu</a></li>
			<li><a href="#">menu</a></li>
			<li><a href="#">menu</a></li>
			<li><a href="#">menu</a></li>
		</ul>
	</div>
</nav>

HTML部分を小分けにして解説

まずはnavの部分を見てみましょう!

<nav class="cf">
	
</nav>

ナビゲーションにはnavタグを使用しています。

navタグはナビゲーションだという事を示すためのHTMLタグですね!

classに振っているcfはclearfixです。(cssの部分でふれますね!)
もしくはこちらをご参照ください!

簡単に説明しますと、floatを使った時にclear: both;をかけて解除してくれるcssです。
clearfixについて詳しく知りたい方は調べてみてください。
詳しい使い方が載った参考サイトがたくさん出てきます!

<nav class="cf">
	<div class="bg">
		
	</div>
</nav>

続いてがdivタグですね。

今回はclassにbg(backgroundの略として)をふっています。

オレンジ色の帯びの部分がこれにあたります。

ulの部分にはwidthを設定したいので、ここでwidth100%を一回つくっちゃおうというわけです!

<nav class="cf">
	<div class="bg">
		<div class="logo"><a href="#">logo</a></div>
		
	</div>
</nav>

次はdiv class=”logo”の部分ですね。

こちらはwebサイトにとっては重要ですよね。
自身のサイトのlogoは必ず表示したいところです。

hrefには自身のサイトのindexデータを書き込みます。
自身のサイトのトップページがindex.htmlならそのままルートパスで書き込んであげるのがいいかと思います。

<a href="/index.html" alt="画像の説明">ほげほげ<a>

イメージ的には上記のような感じです。

ルートパスについては調べてみてください。
(ディレクトリのルート。(最上位階層から見た位置))

さて、話しが戻りますが、logoの部分を画像に置き換えたい時もあります。(多分ほとんどそうですねw)

そんな時はimgタグを使いましょう。

<a href="/index.html" alt="画像の説明"><img src="イメージのパス"><a>

imgタグの注意点は閉じタグがない事です。

<nav class="cf">
	<div class="bg">
		<div class="logo"><a href="#">logo</a></div>
		<ul>
			<li><a href="#">menu</a></li>
			<li><a href="#">menu</a></li>
			<li><a href="#">menu</a></li>
			<li><a href="#">menu</a></li>
		</ul>
	</div>
</nav>

続いてがメイン部分ですね。ulli一気にいきたいと思います。

li(リスト)を使うルールとしてulが親である必要があります。

ulの部分には後述するcssでwidthを設定しています。

liはリストなので、ナビゲーションのリストを書き込むかたちになります。

もちろんアンカーが必要なので、aタグで囲っておきましょう!

HTMLの部分的なご説明は以上です!

ナビメニューCSS部分を解説

まずはcssの完成形になります。

※sassを使用して書いていましたので、cssにビルドすると長くなってしまいますが、適切に修正してみてください。また、reset.cssをあてている事を前提としています。

.cf::after {
  content: "";
  display: block;
  clear: both;
}
nav {
  background-color: orange;
  width: 100%;
}
nav .bg {
  width: 1000px;
  margin: 0 auto;
}
nav .bg .logo {
  float: left;
  padding: 20px  0;
}
nav .bg .logo a {
  text-decoration: none;
  color: #000;
}
nav .bg ul {
  float: right;
}
nav .bg ul li {
  display: inline-block;
  padding: 20px 0;
}
nav .bg ul li a {
  padding: 20px;
  text-decoration: none;
  color: #000;
}
nav .bg ul li a:hover {
  color: #fff;
  border-bottom: 3px solid #fff;
  padding-bottom: 14px;
}

CSS部分を小分けにして解説

まずは、cfの部分ですね。

.cf::after {
  content: "";
  display: block;
  clear: both;
}

こちらはfloatの解除を行ってくれるものです。

floatを行った親要素に対してクラス名cfを書き込んであげてください。

今回の場合だと、ulとdiv class=”logo”にfloatを使っています。
なので、その親要素にcfをふっています。

nav {
  background-color: orange;
  width: 100%;
}

navにはbackground-colorとwidthを設定しています。

ナビゲーションには100%の幅を持たせたかったので、width100%です。

background-colorにつきましては、お好きな色を設定してみてください!
または、ちょっとした画像なんかも面白いかもしれません。
その場合はリピート可能な画像を推奨します!

nav .bg {
  width: 1000px;
  margin: 0 auto;
}

クラスbgではlogoとulの幅を設定しています。

widthをお好みの数値に設定して、margin: 0 auto;を設定してみてください。

すると、中央寄せになるかと思います。

margin: 0 auto;は「上下のmarginを0」、「左右のmarginを均一」です。

marginとかpaddingは時計回りと覚えておくといいかもしれません!
4つ設定項目があるうち、順番に「top」、「right」、「bottom」、「left」です。

nav .bg .logo {
  float: left;
  padding: 20px  0;
}

お次はlogoについてです。

先ほど中央寄せにしたものの中で、logoだけを左寄せ(float: left;)にしています。

そして、paddingの設定ですね。
これで上下の高さが確保されたかと思います。

nav .bg .logo a {
  text-decoration: none;
  color: #000;
}

こちらはlogoに対してのaタグです。

text-decoration: none;としてアンカーにつく下線を非表示にしています。
(reset.cssで下線表示なしとかもありますね。)

そしてテキストのカラーを変更しています。

nav .bg ul {
  float: right;
}

ulに関しては、右寄せにしています。

これでlogoと左右に分かれたかと思います。

nav .bg ul li {
  display: inline-block;
  padding: 20px 0;
}

今のままでは、メニューの部分が縦に並んでいるかと思います。

それを横並びにするのが、display: inline-block;です。

displayプロパティには色んなものがありますので、調べておくといいかもしれません。

そして、paddingですね。
左右のpaddingを20、上下を0としています。

nav .bg ul li a {
  padding: 20px;
  text-decoration: none;
  color: #000;
}

こちらはメニューに対するアンカーです。

リンクがあたる範囲を持たせたいので、paddingを全方向20pxとしています。

そして、先ほどのaタグと同様にtext-decoration,colorの設定をしています。

nav .bg ul li a:hover {
  color: #fff;
  border-bottom: 3px solid #fff;
  padding-bottom: 14px;
}

最後にメニュー部分のhover時の設定です。

hoverした時にcolorをホワイトに変更する。

border-bottomに罫線をいれる。

そして、フォントから罫線までの高さを確保するといった感じです。

paddingの調整などで、罫線までのpadding範囲は変更しますので、適宜そのあたりの数値の変更を行ってみてください。

以上でcssの解説は終了です。

最後までご覧いただきまして、ありがとうございました!!

まとめ

今回はシンプルですが、ナビゲーションメニューについて書いてみました。

ナビゲーションといえばドロップダウンだったり、選択の保持などがありますが、そちらについてもいずれ書いていきたいと考えています。

HTMLとCSSは歴としては長いのですが、全然身になっていませんw

今でも「あれ、こういう時、、、」などと調べる事が山盛りです。

ネット上には色んな参考文献がありますので、分からなかったら調べてみる!っていう風にやっています。(考えても時間だけが過ぎるのでw)

それでも分からない時は、もう聞く!か、手当たり次第!しかないですよねw

書き方がへたくそで解説になっていなかったら申し訳ないですが、初心者の方でも出来るようにと書いてみたつもりです。

これから、色んな情報を書いていきたいと考えていますので、よろしくお願い致します。

ご覧いただきまして、ありがとうございました!

タイトルとURLをコピーしました