[パーツ]メニュー スマホのみクリックすると左からメニューが出てくる

CSS HTML
 2018.04.02
 2018.07.05

スマホのみクリックすると左からメニューが出てくる

スマホのみハンバーガーメニューをクリックするクリックすると左からメニューが出てくるものです。
PCの場合は通常の横並びメニューです。

browser:  65 11 20 10 
ニャン易度 
<div class="cp_cont">
	<input type="checkbox" id="cp_toggle03">
	<div class="cp_mobilebar">
	<label for="cp_toggle03" class="cp_menuicon">
	<span></span>
	</label>
	</div>
	<header class="cp_offcm03">
		<nav>
		<ul>
		<li><a href="#">menu1</a></li>
		<li><a href="#">menu2</a></li>
		<li><a href="#">menu3</a></li>
		<li><a href="#">menu4</a></li>
		<li><a href="#">menu5</a></li>
		</ul>
		</nav>
	</header>
	<div class="cp_container">
	<div class="cp_content">
		<h1>contents</h1>
	</div>
	</div>
</div>
*, *:before, *:after {
	padding: 0;
	margin: 0;
	box-sizing: border-box;
}
ol, ul {
	list-style: none;
}
a {
	text-decoration: none;
	color: inherit;
}
.cp_cont {
	height: 65vh;
}
/* menu */
.cp_offcm03 {
	position: relative;
	z-index: 5;
	top: 0;
	left: 0;
	overflow: auto;
	width: 100%;
	height: auto;
	padding-top: 0;
	-webkit-transition: transform 0.3s ease-in;
	        transition: transform 0.3s ease-in;
	text-align: center;
	color: #ffffff;
	background-color: #039be5;
}
.cp_offcm03 nav,
.cp_offcm03 ul {
	height: 100%;
}
.cp_offcm03 li {
	display: inline-block;
	margin-right: -6px;
	border: none;
}
.cp_offcm03 a {
	display: block;
	padding: 12px 45px;
	-webkit-transition: background-color .3s ease-in;
	        transition: background-color .3s ease-in;
}
.cp_offcm03 a:hover {
	background-color: #1565C0;
}
/* menu toggle */
#cp_toggle03 {
	display: none;
}
#cp_toggle03:checked ~ .cp_offcm03 {
	-webkit-transform: translateX(0);
					transform: translateX(0);
}
#cp_toggle03:checked ~ .cp_container {
	-webkit-transform: translateX(0);
					transform: translateX(0);
}
.cp_mobilebar {
	display: none;
}
/* content */
.cp_container {
	position: relative;
	top: 0;
	padding: 35px auto;
	-webkit-transition: transform .3s ease-in;
	        transition: transform .3s ease-in;
}
.cp_content {
	margin: 0 auto;
	padding: 20px;
	height: 65vh;
	text-align: center;
}
@media (max-width: 767px) {
	/* menu */
	.cp_offcm03 {
		position: fixed;
		left: -250px;
		overflow-y: hidden;
		width: 250px;
		height: 100%;
		padding-top: 60px;
		color: #ffffff;
		background-color: #039be5;
	}
	.cp_offcm03 nav {
		background: #29B6F6;
	}
	.cp_offcm03 li {
		display: block;
		margin-right: 0;
		border-bottom: 1px solid #ffffff;
	}
	.cp_offcm03 a {
		padding: 20px;
	}
	/* menu toggle */
	.cp_mobilebar {
		display: block;
		z-index: 10;
		position: fixed;
		top: 0;
		left: 0;
		padding: 0 25px;
		width: 100%;
		height: 60px;
		background-color: #039BE5;
	}
	.cp_menuicon {
		display: block;
		position: relative;
		width: 25px;
		height: 100%;
		cursor: pointer;
		-webkit-transition: transform .3s ease-in;
		        transition: transform .3s ease-in;
	}
	.cp_menuicon > span {
		display: block;
		position: absolute;
		top: 55%;
		margin-top: -0.3em;
		width: 100%;
		height: 0.2em;
		border-radius: 1px;
		background-color: #eeeeee;
		-webkit-transition: transform .3s ease;
		        transition: transform .3s ease;
	}
	.cp_menuicon > span:before,
	.cp_menuicon > span:after {
		content: '';
		position: absolute;
		width: 100%;
		height: 100%;
		border-radius: 1px;
		background-color: #eeeeee;
		-webkit-transition: transform .3s ease-in;
		        transition: transform .3s ease-in;
	}
	.cp_menuicon > span:before {
		-webkit-transform: translateY(-0.6em);
		        transform: translateY(-0.6em);
	}
	.cp_menuicon > span:after {
		-webkit-transform: translateY(0.6em);
		        transform: translateY(0.6em);
	}
	#cp_toggle03:checked + .cp_mobilebar .cp_menuicon {
		-webkit-transform: rotate(45deg);
		        transform: rotate(45deg);
	}
	#cp_toggle03:checked + .cp_mobilebar span:before,
	#cp_toggle03:checked + .cp_mobilebar span:after {
		-webkit-transform: rotate(90deg);
		        transform: rotate(90deg);
	}
	#cp_toggle03:checked ~ .cp_offcm03 {
		-webkit-transform: translateX(100%);
		        transform: translateX(100%);
	}
	#cp_toggle03:checked ~ .cp_container {
		-webkit-transform: translateX(250px);
		        transform: translateX(250px);
	}
	/* content */
	.cp_container {
		top: 60px;
		height: 92vh;
	}
}

copypet.jp

CSS3などで新たに追加された要素・装飾方法など、日々コードを書いていないと忘れてしまったり、ささっとプロトタイプを作る時などちょっとしたことに時間をかけている暇はない。そんな時に「あ〜、あれストックしときゃよかったなぁ」って困った自分用のストックブログです。カスタマイズなどがしやすいよう、昨今のweb制作に取り入れられる一般的なコードを中心に掲載しています。

More Info

こんな記事はいかがですか?