レスポンシブデザインの時にハンバーガーメニューを入れる場面に直面することがあると思います。今回は普段実装に使うレスポンシブとワードプレスにも実装できる内容を紹介します。
まずはhtmlの実装です。
<header id="top-head">
<div class="inner">
<div id="mobile-head">
<h1 class="logo"></h1>
<div id="nav-toggle">
<div>
<span></span>
<span></span>
<span></span>
</div>
</div>
</div><!---mobile-head end -->
<nav id="global-nav" role="navigation">
<div id="gnav-container">
<ul id="gnav-ul" class="clearfix">
<li><a href="#">html</a></li>
<li><a href="#">css</a></li>
<li><a href="#">jquery</a></li>
<li><a href="#">unity</a></li>
<li><a href="#">javascript</a></li>
</ul>
</div>
</nav>
</div><!---inner end------>
</header>
.inner {
width: 980px;
margin: 0 auto;
position: relative;
}
.inner:after {
content:"";
clear: both;
display: block;
}
/*--------header-----------*/
#top-head {
top: -100px;
position: absolute;
width: 100%;
margin: 100px auto 0;
padding: 30px 0 0;
line-height: 1;
z-index: 999;
}
#top-head a,
#top-head {
color: #fff;
text-decoration: none;
}
#top-head .inner {
position: relative;
}
#top-head .logo {
float: left;
position: relative;
font-size: 36px;
height: 50px;
}
#top-head .logo a {
position: absolute;
width: 100%;
height: 50px;
}
#global-nav ul {
list-style: none;
position: absolute;
top: 20px;
right: 0;
font-size: 14px;
}
#global-nav ul li {
float: left;
padding:0 30px;
border-left: 1px solid #000;
}
#global-nav ul li a {
padding: 5px 5px;
position: relative;
display: inline-block;
}
#global-nav ul li a::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 2px;
-webkit-transform: scaleX(0);
-ms-transform: scaleX(0);
transform: scaleX(0);
background-color: #fff;
-webkit-transition: all .3s ease;
transition: all .3s ease;
}
#global-nav ul li a:hover::after {
-webkit-transform: scaleX(1);
-ms-transform: scaleX(1);
transform: scaleX(1);
}
nav span{
background:#666;
height:2px;
display:block;
position:relative;
width:50px;
left:0;
}
/*--------固定化されたときのCSS-----------*/
#top-head.fixed {
margin-top: 0;
top: 0;
position: fixed;
padding-top: 10px;
background: #fff;
background: rgba(255,255,255,.7);
transition: top 0.65s ease-in;
-webkit-transition: top 0.65s ease-in;
-moz-transition: top 0.65s ease-in;
}
#top-head.fixed .logo {
position: relative;
font-size: 24px;
color: #333;
}
#top-head.fixed .logo a {
position: absolute;
width: 100%;
height: 30px;
}
#top-head.fixed #global-nav ul li a {
color: #333;
padding: 0 20px;
padding-bottom: 10px;
}
/*-----------スマホのトグルボタンのCSS-------------*/
#nav-toggle {
display: none;
position: absolute;
right: 12px;
top: 14px;
width: 34px;
height: 36px;
cursor: pointer;
z-index: 101;
}
#nav-toggle div {
position: relative;
}
#nav-toggle span {
display: block;
position: absolute;
height: 4px;
width: 100%;
background: #000;
left: 0;
-webkit-transition: .35s ease-in-out;
-moz-transition: .35s ease-in-out;
transition: .35s ease-in-out;
}
#nav-toggle span:nth-child(1) {
top: 0;
}
#nav-toggle span:nth-child(2) {
top: 11px;
}
#nav-toggle span:nth-child(3) {
top: 22px;
}
/*---------gnav sp--------------*/
/*-----------スマホ-------------*/
@media screen and (max-width: 767px) {
.head-inner {
display: none;
}
.slick-next {
right: 0;
}
#top-head,
.inner {
width: 100%;
padding: 0;
}
#top-head {
top: 0;
position: fixed;
margin-top: 0;
}
/* Fixed reset */
#top-head.fixed {
padding-top: 0;
background: transparent;
}
#mobile-head {
background: #fff;
width: 100%;
height: 56px;
z-index: 999;
position: relative;
}
#top-head.fixed .logo,
#top-head .logo {
position: absolute;
left: 13px;
height: 50px;
top: 15px;
color: #333;
font-size: 26px;
}
#global-nav {
position: absolute;
/* 開いてないときは画面外に配置 */
top: -500px;
background: #000;
width: 100%;
text-align: center;
padding: 10px 0;
-webkit-transition: .5s ease-in-out;
-moz-transition: .5s ease-in-out;
transition: .5s ease-in-out;
}
#global-nav ul {
list-style: none;
position: static;
right: 0;
bottom: 0;
font-size: 14px;
}
#global-nav ul li {
float: none;
position: static;
padding: 18px 0;
color: #fff;
}
#top-head #global-nav ul li a,
#top-head.fixed #global-nav ul li a {
width: 100%;
display: block;
color: #fff;
padding: 18px 0;
}
#nav-toggle {
display: block;
}
/* #nav-toggle 切り替えアニメーション */
.open #nav-toggle span:nth-child(1) {
top: 11px;
-webkit-transform: rotate(315deg);
-moz-transform: rotate(315deg);
transform: rotate(315deg);
}
.open #nav-toggle span:nth-child(2) {
width: 0;
left: 50%;
}
.open #nav-toggle span:nth-child(3) {
top: 11px;
-webkit-transform: rotate(-315deg);
-moz-transform: rotate(-315deg);
transform: rotate(-315deg);
}
/* #global-nav スライドアニメーション */
.open #global-nav {
/* #global-nav top + #mobile-head height */
-moz-transform: translateY(556px);
-webkit-transform: translateY(556px);
transform: translateY(556px);
}
}
/*------------タブレット用------------------*/
@media screen and (max-width: 1024px) {
.head-inner {
display: none;
}
.slick-next {
right: 0;
}
#top-head,
.inner {
width: 100%;
padding: 0;
}
#top-head {
top: 0;
position: fixed;
margin-top: 0;
}
/* Fixed reset */
#top-head.fixed {
padding-top: 0;
background: transparent;
}
#mobile-head {
background: #fff;
width: 100%;
height: 70px;
z-index: 999;
position: relative;
}
#top-head.fixed .logo,
#top-head .logo {
position: absolute;
left: 13px;
height: 50px;
top: 15px;
color: #333;
font-size: 26px;
}
#global-nav {
position: absolute;
/* 開いてないときは画面外に配置 */
top: -500px;
background: #000;
width: 100%;
text-align: center;
padding: 10px 0;
-webkit-transition: .5s ease-in-out;
-moz-transition: .5s ease-in-out;
transition: .5s ease-in-out;
}
#global-nav ul {
list-style: none;
position: static;
right: 0;
bottom: 0;
font-size: 14px;
}
#global-nav ul li {
float: none;
position: static;
padding: 18px 0;
color: #fff;
}
#top-head #global-nav ul li a,
#top-head.fixed #global-nav ul li a {
width: 100%;
display: block;
color: #fff;
padding: 18px 0;
}
#nav-toggle {
display: block;
right: 25px;
top: 20px;
}
/* #nav-toggle 切り替えアニメーション */
.open #nav-toggle span:nth-child(1) {
top: 11px;
-webkit-transform: rotate(315deg);
-moz-transform: rotate(315deg);
transform: rotate(315deg);
}
.open #nav-toggle span:nth-child(2) {
width: 0;
left: 50%;
}
.open #nav-toggle span:nth-child(3) {
top: 11px;
-webkit-transform: rotate(-315deg);
-moz-transform: rotate(-315deg);
transform: rotate(-315deg);
}
/* #global-nav スライドアニメーション */
.open #global-nav {
/* #global-nav top + #mobile-head height */
-moz-transform: translateY(556px);
-webkit-transform: translateY(556px);
transform: translateY(556px);
}
}
参考サイト:http://llc-beready.com/2016/07/30/post-358/
Warning: Undefined variable $post_id in /home/baseline1/baseline-lib.com/public_html/memo/wp-content/themes/wpex-pronto/single.php on line 49
Warning: Undefined array key 0 in /home/baseline1/baseline-lib.com/public_html/memo/wp-content/themes/wpex-pronto/single.php on line 51