先日、_s(underscores)のナビゲーションをカスタマイズしてみました。
この時には、まず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以上のデバイス幅のブラウザで適応されます。