---
title: "_s(underscores)のナビゲーションをモバイルファーストのレスポンシブデザインにしてみる"
canonical_url: "https://olein-design.com/blog/mobile-first-responsive-design-navigation"
language: "ja"
date_published: "2014-12-19T09:22:25+09:00"
date_modified: "2014-12-19T09:22:25+09:00"
content_type: "post"
author: "久野晃司"
taxonomies:
  category:
    - "WordPress"
  post_tag:
    - "underscores"
---

# _s(underscores)のナビゲーションをモバイルファーストのレスポンシブデザインにしてみる

先日、[_s(underscores)のナビゲーションをカスタマイズ](https://olein-design.com/wordpress/css-custom-for-navigation)してみました。 この時には、まずPC表示を優先して作成したのですが、**「そういえば、_s(underscores)をモバイルファーストにするんだったな」**と本来のコンセプトを思い出しまして、せっせと作り直してみました。 ## モバイル用CSS

 ```

button.menu-toggle {
  display: block;
  height: 3.75em;
  padding: 0 1em;
  font-weight: normal;
  font-size: 14px;
  text-decoration: none;
  line-height: 3.75em;
  color: white;
  /* buttonn reset */
  border: none;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
.main-navigation {
  position: relative;
  float: left;
  width: 100%;
  display: block;
  clear: both;
  text-transform: uppercase;
  background: #313131;
}
.main-navigation.toggled .nav-menu {
	display: block;
	border-top: 1px solid;
	border-top-color: #fff;
}
.main-navigation ul {
	display: none;
  list-style: none;
  margin: 0;
  padding-left: 0;
}
.main-navigation a {
  display: block;
  padding: 1.3em 1em;
  font-size: 14px;
  font-size: 1.4rem;
  text-decoration: none;
  line-height: 1.3em;
  color: white;
}
.main-navigation li {
	float: none;
  position: relative;
}
.main-navigation li:hover > a {
	background: #313131;
}
.main-navigation li a {
	padding: 1.3em 2em;
}
.main-navigation li li a {
	padding-left: 4em;
}
.main-navigation li li li a {
	padding-left: 6em;
}
.main-navigation ul ul {
	position: relative;
	top: inherit;
  left: 0;
  z-index: 99999;
  display: block;
	float: none;
  padding: 0;
  background: #313131;
}
.main-navigation ul ul ul {
	position: relative;
	top: inherit;
	left: 0;
	display: block;
	float: none;
	background: #313131;
}
.main-navigation ul ul a {
	width: 100%;
}
.main-navigation ul ul li {
}
.main-navigation li:hover > a {
  color: #fff;
  background: #4d4d4d;
}
.main-navigation ul ul :hover > a {
}
.main-navigation ul a:hover,
.main-navigation ul ul a:hover {
	background: #4d4d4d;
}
.main-navigation ul li:hover > ul {
    display: block;
}
.main-navigation .current_page_item > a,
.main-navigation .current_page_item > a:hover,
.main-navigation .current_page_item li:hover,
.main-navigation .current_page_parent .current_page_item > a  {
	color: #fff;
	background: #4d4d4d;
}
.main-navigation .current_page_item > a,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a:hover,
.main-navigation .current-menu-item > a:hover {
    background: white;
    color: #313131;
}

.main-navigation .current_page_ancestor {
    background: #4d4d4d;
}

.main-navigation ul ul .current_page_parent,
.main-navigation .current_page_parent .current_page_item > a {
    color: #fff;
    background: #313131;
}
```

 長々と書いてありますが、まずはモバイル（スマホ）用のCSSを記述します。`button.menu-toggle`で`<button>`タグをリセットする内容を記述しています。`5.2 Menus`にこちらを記述していますが、これよりも以前に`<button>`タグの設定をしてありますので、こちらをリセットする内容になっています。 こちらに上書きする形でタブレットサイズ以降（PCも含む）のCSSを記述します。 ## タブレット、PC用CSS

 ```

@media screen and (min-width: 768px) {
	button.menu-toggle {
	  display: none;
	}
	.main-navigation.toggled .nav-menu {
		border-top: none;
	}
	.main-navigation ul {
		display: block;
	}
	.main-navigation li {
    float: left;
	}
	.main-navigation li a {
		padding: 1.3em 1em;
	}
	.main-navigation li li a,
	.main-navigation li li li a {
		padding-left: 1em;
	}
	.main-navigation ul ul {
    position: absolute;
    display: none;
    float: left;
    background: #4d4d4d;
	}
	.main-navigation ul ul ul {
		position: absolute;
		float: left;
    left: 100%;
    top: 0;
	}
	.main-navigation ul ul a {
    width: 200px;
	}
	.main-navigation ul ul a:hover {
    background: #313131;
	}
}
```

 こちらで先ほどのモバイル用CSSを上書きして768px以上のデバイス幅のブラウザで適応されます。
