コピペでできる!cssとhtmlのみで作るハンバーガーメニューのアクション12選

CSS HTML
 2018.05.21

ハンバーガーメニューはちょいちょい使いますが、ホバー時のアクションがいつも同じものの使い回しになってませんか?
基本的な「×(バツ)」に切り替わるものからちょっと可愛いアクションや「!(エクスクラメーション)」に変わるものまで集めました。
イメージに合わせてアクションも切り替えてみてはいかがでしょう?

browser:  65 11 20 10 

ハンバーガーメニューのアクション[12選]

ホバーでゆっくり×(バツ)になるハンバーガーメニュー

ニャン易度
<div class="cp_hmenuac01">
<span class="cp_bar"></span>
</div>
.cp_hmenuac01 .cp_bar,
.cp_hmenuac01 .cp_bar:before,
.cp_hmenuac01 .cp_bar:after {
	display: block;
	width: 40px;
	height: 5px;
	content: '';
	-webkit-transition: all 0.5s ease-in-out;
	        transition: all 0.5s ease-in-out;
	border-radius: 5px;
	background: #00acc1;
}
.cp_hmenuac01 .cp_bar {
	position: relative;
	margin: 5px 0;
}
.cp_hmenuac01 .cp_bar:before,
.cp_hmenuac01 .cp_bar:after {
	position: absolute;
}
.cp_hmenuac01 .cp_bar:before {
	top: 11px;
}
.cp_hmenuac01 .cp_bar:after {
	bottom: 11px;
}
.cp_hmenuac01 {
	position: absolute;
	width: 40px;
	padding: 1.5em;
	cursor: pointer;
}
.cp_hmenuac01:hover .cp_bar {
	background: transparent;
}
.cp_hmenuac01:hover .cp_bar:before {
	top: 0;
	transform: rotate(45deg);
}
.cp_hmenuac01:hover .cp_bar:after {
	top: 0;
	transform: rotate(-45deg);
}

ホバーでゆっくり×(バツ)になるハンバーガーメニュー2

ニャン易度
<div class="cp_hmenuac02">
<span class="cp_bar"></span>
</div>
.cp_hmenuac02 {
	position: absolute;
	padding: 1.5em;
	width: 40px;
	cursor: pointer;
}
.cp_hmenuac02 .cp_bar,
.cp_hmenuac02 .cp_bar:before,
.cp_hmenuac02 .cp_bar:after {
	display: block;
	width: 40px;
	height: 5px;
	content: '';
	-webkit-transition: all 0.5s ease-in-out;
	        transition: all 0.5s ease-in-out;
	border-radius: 5px;
	background: #FF5722;
}
.cp_hmenuac02 .cp_bar {
	position: relative;
	margin: 5px 0;
}
.cp_hmenuac02 .cp_bar:before,
.cp_hmenuac02 .cp_bar:after {
	position: absolute;
}
.cp_hmenuac02 .cp_bar:before {
	top: 11px;
}
.cp_hmenuac02 .cp_bar:after {
	bottom: 11px;
}
.cp_hmenuac02:hover .cp_bar:after {
  -webkit-transform: rotate(-35deg) translateX(-20px);
          transform: rotate(-35deg) translateX(-20px);
}
.cp_hmenuac02:hover .cp_bar {
  -webkit-transform: translateX(20px);
          transform: translateX(20px);
					background: transparent;
}
.cp_hmenuac02:hover .cp_bar:before {
  -webkit-transform: rotate(35deg) translateX(-20px);
          transform: rotate(35deg) translateX(-20px);
}

ホバーでパタンと×(バツ)になるハンバーガーメニュー

ニャン易度
<div class="cp_hmenuac03">
<span class="cp_bar"></span>
</div>
.cp_hmenuac03 .cp_bar,
.cp_hmenuac03:before,
.cp_hmenuac03:after {
	display: block;
	width: 40px;
	height: 5px;
	content: '';
	-webkit-transition: all 0.2s ease-in-out;
	transition: all 0.2s ease-in-out;
	border-radius: 5px;
	background-color: #2196F3;
}
.cp_hmenuac03 .cp_bar {
	position: relative;
	margin: 5px 0;
}
.cp_hmenuac03 {
	position: absolute;
	padding: 1.5em;
	width: 40px;
	cursor: pointer;
}
.cp_hmenuac03:hover .cp_bar {
	-webkit-transform: scale(0);
	        transform: scale(0);
}
.cp_hmenuac03:hover:before {
	-webkit-transform: translateY(10px) rotate(135deg);
	        transform: translateY(10px) rotate(135deg);
}
.cp_hmenuac03:hover:after {
	-webkit-transform: translateY(-10px) rotate(-135deg);
	        transform: translateY(-10px) rotate(-135deg);
}

ホバーで真ん中から×(バツ)が出てくるハンバーガーメニュー

ニャン易度
<div class="cp_hmenuac04">
<span></span>
<span></span>
<span></span>
<span></span>
</div>
.cp_hmenuac04 {
	position: absolute;
	padding: 1.5em;
	width: 40px;
	height: 20px;
	cursor: pointer;
}
.cp_hmenuac04 > span {
	position: absolute;
	top: 50%;
	left: 50%;
	display: block;
	width: 40px;
	height: 5px;
	border-radius: 5px;
	-webkit-transition: all 0.5s ease-in-out;
	        transition: all 0.5s ease-in-out;
	-webkit-transform: translate(-50%,-50%);
	        transform: translate(-50%,-50%);
	background: #EC407A;
}
.cp_hmenuac04 > span:nth-child(1) {
	-webkit-transition: all 0.2s ease-in-out;
	        transition: all 0.2s ease-in-out;
	-webkit-transform: translate(-50%,-50%) translateY(-10px);
	        transform: translate(-50%,-50%) translateY(-10px);
}
.cp_hmenuac04 > span:nth-child(4) {
	-webkit-transition: all 0.2s ease-in-out;
	        transition: all 0.2s ease-in-out;
	-webkit-transform: translate(-50%,-50%) translateY(10px);
	        transform: translate(-50%,-50%) translateY(10px);
}
.cp_hmenuac04:hover > span:nth-child(1) {
	-webkit-transition: all 0.3s ease-in-out;
	        transition: all 0.3s ease-in-out;
	-webkit-transform: translate(-50%,-50%) translateY(-35px);
	        transform: translate(-50%,-50%) translateY(-35px);
	opacity: 0;
}
.cp_hmenuac04:hover > span:nth-child(4) {
	-webkit-transition: all 0.3s ease-in-out;
	        transition: all 0.3s ease-in-out;
	-webkit-transform: translate(-50%,-50%) translateY(35px);
	        transform: translate(-50%,-50%) translateY(35px);
	opacity: 0;
}
.cp_hmenuac04:hover > span:nth-child(2) {
	-webkit-transition: all 0.5s ease-in-out;
	        transition: all 0.5s ease-in-out;
	-webkit-transform: translate(-50%,-50%) rotate(40deg);
	        transform: translate(-50%,-50%) rotate(40deg);
}
.cp_hmenuac04:hover > span:nth-child(3) {
	-webkit-transition: all 0.5s ease-in-out;
	        transition: all 0.5s ease-in-out;
	-webkit-transform: translate(-50%,-50%) rotate(-40deg);
	        transform: translate(-50%,-50%) rotate(-40deg);
}

ホバーでニュインと伸びるハンバーガーメニュー

ニャン易度
<div class="cp_hmenuac05">
<span class="cp_bar"></span>
</div>
.cp_hmenuac05 {
	position: absolute;
	padding: 1.5em;
	width: 40px;
	cursor: pointer;
}
.cp_hmenuac05 .cp_bar,
.cp_hmenuac05 .cp_bar:before,
.cp_hmenuac05 .cp_bar:after {
	display: block;
	width: 40px;
	height: 5px;
	content: '';
	-webkit-transition: all 0.5s ease-in-out;
	        transition: all 0.5s ease-in-out;
	border-radius: 5px;
	background: #009688;
}
.cp_hmenuac05 .cp_bar {
	position: relative;
	margin: 5px 0;
}
.cp_hmenuac05 .cp_bar:before,
.cp_hmenuac05 .cp_bar:after {
	position: absolute;
}
.cp_hmenuac05 .cp_bar:before {
	top: 11px;
}
.cp_hmenuac05 .cp_bar:after {
	bottom: 11px;
}
.cp_hmenuac05:hover .cp_bar,
.cp_hmenuac05:hover .cp_bar:before,
.cp_hmenuac05:hover .cp_bar:after {
	-webkit-animation: hmenuac 0.3s cubic-bezier(0, 0, 0.2, 1) 1;
	        animation: hmenuac 0.3s cubic-bezier(0, 0, 0.2, 1) 1;
}
.cp_hmenuac05:hover .cp_bar:before {
	-webkit-animation-delay: 0.1s;
	        animation-delay: 0.1s;
}
.cp_hmenuac05:hover .cp_bar:after {
	-webkit-animation-delay: 0.2s;
	        animation-delay: 0.2s;
}
@-webkit-keyframes hmenuac {
	60% {
		-webkit-transform: scaleX(1.4);
		        transform: scaleX(1.4);
	}
	100% {
		-webkit-transform: scaleX(1);
		        transform: scaleX(1);
	}
}
@keyframes hmenuac {
	60% {
		-webkit-transform: scaleX(1.4);
		        transform: scaleX(1.4);
	}
	100% {
		-webkit-transform: scaleX(1);
		        transform: scaleX(1);
	}
}

ホバーでバーの色が変わるハンバーガーメニュー

ニャン易度
<div class="cp_hmenuac06">
	<span></span>
	<span></span>
	<span></span>
</div>
.cp_hmenuac06 {
	position: absolute;
	padding: 1.5em;
	width: 40px;
	cursor: pointer;
}
.cp_hmenuac06 > span {
	position: relative;
	display: block;
	width: 40px;
	height: 5px;
	border-radius: 5px;
	margin-top: 5px;
	background: #1470e9;
}
.cp_hmenuac06 > span:after {
	position: absolute;
	width: 0%;
	height: 100%;
	content: '';
	border-radius: 5px;
	-webkit-transition: all 0.3s ease-in-out;
	        transition: all 0.3s ease-in-out;
	background: rgba(233,30,99 ,0.9);
}
.cp_hmenuac06 > span:nth-child(2):after {
	-webkit-transition-delay: 0.1s;
	        transition-delay: 0.1s;
}
.cp_hmenuac06 > span:nth-child(3):after {
	-webkit-transition-delay: 0.2s;
	        transition-delay: 0.2s;
}
.cp_hmenuac06:hover > span:after {
	width: 100%;
}

ホバーで3本のバーが1本になるハンバーガーメニュー

ニャン易度
<div class="cp_hmenuac07">
	<span></span>
	<span></span>
	<span></span>
</div>
.cp_hmenuac07 {
	position: absolute;
	padding: 1.5em;
	width: 40px;
	cursor: pointer;
}
.cp_hmenuac07 > span {
	position: relative;
	display: block;
	width: 100%;
	height: 5px;
	margin: 5px auto;
	-webkit-transition: all 0.5s ease-in-out;
	        transition: all 0.5s ease-in-out;
	border-radius: 5px;
	background: #f44336;
}
.cp_hmenuac07:hover > span:first-of-type {
	-webkit-transform: translateY(200%);
	        transform: translateY(200%);
}
.cp_hmenuac07:hover > span:last-of-type {
	-webkit-transform: translateY(-200%);
	        transform: translateY(-200%);
}

ホバーでバーの間隔が広がるハンバーガーメニュー

ニャン易度
<div class="cp_hmenuac08">
	<span></span>
	<span></span>
	<span></span>
</div>
.cp_hmenuac08 {
	position: absolute;
	padding: 1.5em;
	width: 40px;
	cursor: pointer;
}
.cp_hmenuac08 > span {
	position: relative;
	display: block;
	width: 100%;
	height: 5px;
	margin: 5px auto;
	-webkit-transition: all 0.3s ease-in-out;
	        transition: all 0.3s ease-in-out;
	border-radius: 5px;
	background: #3F51B5;
}
.cp_hmenuac08:hover > span:first-of-type {
	-webkit-transform: translateY(-100%);
	        transform: translateY(-100%);
}
.cp_hmenuac08:hover > span:last-of-type {
	-webkit-transform: translateY(100%);
	        transform: translateY(100%);
}

ホバーでバーがちょっとずつずれて斜めになるハンバーガーメニュー

ニャン易度
<div class="cp_hmenuac09">
	<span></span>
	<span></span>
	<span></span>
</div>
.cp_hmenuac09 {
	position: absolute;
	padding: 1.5em;
	width: 40px;
	cursor: pointer;
}
.cp_hmenuac09 > span {
	position: relative;
	display: block;
	width: 100%;
	height: 5px;
	margin: 5px auto;
	-webkit-transition: all 0.5s ease-in-out;
	        transition: all 0.5s ease-in-out;
	border-radius: 5px;
	background: #FFC107;
}
.cp_hmenuac09 > span:first-of-type,
.cp_hmenuac09 > span:last-of-type {
	-webkit-transform: translateX(0);
	        transform: translateX(0);
}
.cp_hmenuac09:hover > span:first-of-type {
	-webkit-transform: translateX(0.4rem);
	        transform: translateX(0.4rem);
}
.cp_hmenuac09:hover > span:last-of-type {
	-webkit-transform: translateX(-0.4rem);
	        transform: translateX(-0.4rem);
}

ホバーでmenuの文字が現れるハンバーガーメニュー

ニャン易度
menu
<div class="cp_hmenuac10">
	<span class="cp_bar1st"></span>
	<span class="cp_bar2nd"></span>
	<span class="cp_bar3rd"></span>
	<span class="cp_text">menu</span>
</div>
.cp_hmenuac10 {
	position: absolute;
	width: 40px;
	height: 20px;
	padding: 1.5em;
	cursor: pointer;
}
.cp_hmenuac10 .cp_bar1st,
.cp_hmenuac10 .cp_bar2nd,
.cp_hmenuac10 .cp_bar3rd {
	position: absolute;
	width: 40px;
	height: 5px;
	-webkit-transition: all 0.5s ease-in-out;
	        transition: all 0.5s ease-in-out;
	border-radius: 5px;
	background: #00acc1;
}
.cp_hmenuac10 .cp_bar1st {
	top: 21px;
}
.cp_hmenuac10 .cp_bar2nd {
	top: 50%;
	-webkit-transition: opacity 0.3s ease-in-out;
	        transition: opacity 0.3s ease-in-out;
	transform: translateY(-50%);
}
.cp_hmenuac10 .cp_bar3rd {
	bottom: 21px;
}
.cp_hmenuac10 .cp_text {
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transition: opacity 0.3s ease-in-out;
	        transition: opacity 0.3s ease-in-out;
	-webkit-transform: translate(-50%,-50%);
	        transform: translate(-50%,-50%);
	opacity: 0;
	color: #00acc1;
}
.cp_hmenuac10:hover .cp_bar1st {
	top: 8px;
}
.cp_hmenuac10:hover .cp_bar3rd {
	bottom: 8px;
}
.cp_hmenuac10:hover .cp_bar2nd {
	opacity: 0;
}
.cp_hmenuac10:hover .cp_text {
	opacity: 1;
}

ホバーでくるっと回って+(プラス)になるハンバーガーメニュー

ニャン易度
<div class="cp_hmenuac11">
	<span></span>
	<span></span>
	<span></span>
</div>
.cp_hmenuac11 {
	position: absolute;
	width: 40px;
	padding: 1.5em;
	cursor: pointer;
}
.cp_hmenuac11 > span {
	display: block;
	width: 100%;
	height: 5px;
	margin: 5px auto;
	-webkit-transition: all 0.5s ease-in-out;
	        transition: all 0.5s ease-in-out;
	border-radius: 5px;
	background: #F06292;
}
.cp_hmenuac11:hover > span:first-child {
  -webkit-transform: translateY(10px) rotate(-90deg);
          transform: translateY(10px) rotate(-90deg);
  opacity: 0;
}
.cp_hmenuac11:hover > span:last-child {
  -webkit-transform: translateY(-10px) rotate(90deg);
          transform: translateY(-10px) rotate(90deg);
}
.cp_hmenuac11:hover > span:nth-child(2) {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}

ホバーでくるっと回って!(エクスクラメーション)になるハンバーガーメニュー

ニャン易度
<div class="cp_hmenuac12">
	<span></span>
	<span></span>
	<span></span>
</div>
.cp_hmenuac12 {
	position: absolute;
	width: 40px;
	padding: 1.5em;
	cursor: pointer;
}
.cp_hmenuac12 > span {
	display: block;
	width: 100%;
	height: 5px;
	margin: 5px auto;
	-webkit-transition: all 0.3s ease-in-out;
	        transition: all 0.3s ease-in-out;
	border-radius: 5px;
	background: #1976D2;
}
.cp_hmenuac12:hover > span:first-child {
	-webkit-transform: rotate(-80deg);
	        transform: rotate(-80deg);
	width: 60%;
}
.cp_hmenuac12:hover > span:last-child {
	-webkit-transform: rotate(100deg) translateY(3px);
	        transform: rotate(100deg) translateY(3px);
	width: 14%;
	height: 5px;
}
.cp_hmenuac12:hover > span:nth-child(2) {
	-webkit-transform: rotate(-90deg);
	        transform: rotate(-90deg);
	width: 0%;
	opacity: 0;
}

copypet.jp

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

More Info

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