コピペでできる!cssとhtmlのみで作る画面固定されたソーシャルリンクメニュー7種

CSS HTML
 2018.02.28
 2018.03.22

画面の左や右などに固定設置されたソーシャルリンクの帯タイプをご紹介。
よく見かけるあのホバーするとピロっとリンク名などが出てくるアレです。
固定する場所に「position: relative;」の設定が必要ですのでご注意ください。

アイコンはfontawesomeを使用しています。

browser:  65 11 20 10 

画面固定されたソーシャルリンクメニュー[8種]

左固定+ホバーでパタンとテキストを表示

ニャン易度
<div class="contents">text</div>
<ul class="cp_snslink01">
<li class="cp_link facebook"><a href="#"><i class="fa fa-facebook fa-2x fa-fw"></i>
<div class="nav-label"><span>facebook Button</span></div></a>
</li>
<li class="cp_link twitter"><a href="#"><i class="fa fa-twitter fa-2x fa-fw"></i>
<div class="nav-label"><span>twitter Button</span></div></a>
</li>
<li class="cp_link google"><a href="#"><i class="fa fa-google-plus fa-2x fa-fw"></i>
<div class="nav-label"><span>google+ Button</span></div></a>
</li>
<li class="cp_link instagram"><a href="#"><i class="fa fa-instagram fa-2x fa-fw"></i>
<div class="nav-label"><span>instagram Button</span></div></a>
</li>
</ul>
* {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
}
body {
	/*設置する親要素ページ全体ならbodyなど*/
	position: relative;
	height: 100vh;
	margin: 0;
	padding: 0;
}
.contents {
	/*サンプルはfixedの確認のためにheight指定しています。*/
	height: 2000px;
}
.cp_snslink01 {
	position: fixed;
	top: 50%;
	left: 0;
	margin: 0;
	padding: 0;
	list-style-type: none;
	-webkit-transform: translateY(-50%);
	        transform: translateY(-50%);
}
.cp_snslink01 .cp_link {
	position: relative;
}
.cp_snslink01 .cp_link {
	display: block;
	width: 60px;
	height: 60px;
	padding: 15px 10px;
	cursor: pointer;
}
.cp_snslink01 .cp_link .nav-label {
	line-height: 64px;
	position: absolute;
	z-index: 4;
	top: 0rem;
	display: block;
	height: 60px;
	margin-left: 50px;
	padding: 0 20px;
	white-space: nowrap;
}
.cp_snslink01 .cp_link,
.cp_snslink01 .cp_link a,
.cp_snslink01 .cp_link:hover,
.cp_snslink01 .cp_link .nav-label {
	color: #ffffff;
}
/*facebook*/
.cp_snslink01 .facebook,
.cp_snslink01 .facebook:hover,
.cp_snslink01 .facebook:hover .nav-label {
	background: #3b5998;
}
.cp_snslink01 .facebook .nav-label {
	background: #1e2e4f;
}
/*twitter*/
.cp_snslink01 .twitter,
.cp_snslink01 .twitter:hover,
.cp_snslink01 .twitter:hover .nav-label {
	background: #55acee;
}
.cp_snslink01 .twitter .nav-label {
	background: #0065d9;
}
/*google+*/
.cp_snslink01 .google,
.cp_snslink01 .google:hover,
.cp_snslink01 .google:hover .nav-label {
	background: #dd4b39;
}
.cp_snslink01 .google .nav-label {
	background: #af0606;
}
/*instagram*/
.cp_snslink01 .instagram,
.cp_snslink01 .instagram:hover,
.cp_snslink01 .instagram:hover .nav-label {
	background: radial-gradient(circle at 0% 90%, #fdf498 0%, #fd5948 5%, #d6249d 45%,#285aea 60%,#285aea 90%);
}
/* effect */
.cp_snslink01 .cp_link.nav-label, .cp_snslink01 .cp_link.cp_link:hover .nav-label {
	-webkit-transition: -webkit-transform 0.4s ease, background 0.4s ease;
	        transition:         transform 0.4s ease, background 0.4s ease 0.1s;
	-webkit-transition-delay: 0s, 0.1s;
}
.cp_snslink01 .cp_link.cp_link .nav-label {
	-webkit-transition: -webkit-transform 0.4s ease;
	        transition:         transform 0.4s ease;
	-webkit-transform: rotateY(-90deg);
	        transform: rotateY(-90deg);
	-webkit-transform-origin: left 50%;
	        transform-origin: left 50%;
}
.cp_snslink01 .cp_link.cp_link:hover .nav-label {
	-webkit-transform: rotateY(0);
	        transform: rotateY(0);
}

左固定+ホバーでニュッと横からテキストを表示

ニャン易度
<div class="contents">text</div>
<div class="cp_snslink02">
<ul class="cp_link_list">
<li class="cp_link facebook"><a href="#"><span>Facebook</span><i class="fa fa-facebook fa-2x fa-fw"></i></a></li>
<li class="cp_link twitter"><a href="#"><span>Twitter</span><i class="fa fa-twitter fa-2x fa-fw"></i></a></li>
<li class="cp_link google"><a href="#"><span>Google+</span><i class="fa fa-google-plus fa-2x fa-fw"></i></a></li>
<li class="cp_link instagram"><a href="#"><span>Instagram</span><i class="fa fa-instagram fa-2x fa-fw"></i></a></li>
</ul>
</div>
* {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
}
body {
	/*設置する親要素ページ全体ならbodyなど*/
	position: relative;
	height: 100vh;
	margin: 0;
	padding: 0;
}
.contents {
	/*サンプルはfixedの確認のためにheight指定しています。*/
	height: 2000px;
}
.cp_snslink02 {
	position: fixed;
	top: 50%;
	left: 0;
	display: block;
	overflow: hidden;
	margin: 0;
	-webkit-transform: translateY(-50%);
	        transform: translateY(-50%);
}
.cp_snslink02 .cp_link_list {
	margin-left: -95px;
	list-style-type: none;
}
.cp_snslink02 .cp_link {
	position: relative;
	left: -100px;
	padding: 10px;
	cursor: pointer;
	-webkit-transition: left 0.6s ease-in-out;
	transition: left 0.6s ease-in-out;
	text-align: right;
	color: #ffffff;
}
.cp_snslink02 .cp_link a {
	color: #ffffff;
}
.cp_snslink02 .facebook {
	background: #3b5997;
}
.cp_snslink02 .twitter {
	background: #55acee;
}
.cp_snslink02 .google {
	background: #dd4b39;
}
.cp_snslink02 .instagram {
	background: linear-gradient(45deg, #fdf498,#fd5948,#d6249d,#285aea );
}
.cp_snslink02 .cp_link:hover {
	left: 0;
}
.cp_snslink02 .cp_link span {
	display: inline-block;
	margin-left: 55px;
	padding: 0 10px;
}

右固定+ホバーでニュッと横からテキストを表示

ニャン易度
<div class="contents">text</div>
<div class="cp_snslink03">
<ul class="cp_link_list">
<li class="cp_link"><a href="#"><i class="fa fa-facebook fa-fw"></i>facebook</a></li>
<li class="cp_link"><a href="#"><i class="fa fa-twitter fa-fw"></i>twitter</a></li>
<li class="cp_link"><a href="#"><i class="fa fa-google-plus fa-fw"></i>google+</a></li>
<li class="cp_link"><a href="#"><i class="fa fa-instagram fa-fw"></i>instagram</a></li>
</ul>
</div>
* {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
}
body {
	/*設置する親要素ページ全体ならbodyなど*/
	position: relative;
	height: 100vh;
	margin: 0;
	padding: 0;
}
.contents {
	/*サンプルはfixedの確認のためにheight指定しています。*/
	height: 2000px;
}
.cp_snslink03 {
	position: fixed;
	top: 50%;
	right: 0;
	display: block;
	overflow: hidden;
	margin: 0;
	padding: 0 0 0 5px;
	-webkit-transform: translateY(-50%);
	        transform: translateY(-50%);
}
.cp_snslink03 .cp_link_list {
	width: 150px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.cp_snslink03 .cp_link_list .cp_link {
	position: relative;
	right: -120px;
	margin: 10px 0;
	padding: 5px;
	cursor: pointer;
	-webkit-transition: right 0.6s ease-in-out;
	        transition: right 0.6s ease-in-out;
	text-align: left;
	background: #80deea;
	border: 1px dashed #0097A7;
	border-right: none;
	-webkit-box-shadow: 0px 0px 0px 3px #80deea;
	box-shadow: 0px 0px 0px 3px #80deea;
}
.cp_snslink03 .cp_link_list .cp_link i {
	margin-right: 10px;
}
.cp_snslink03 .cp_link_list .cp_link:hover {
	right: 0;
	background: #00bcd4;
	-webkit-box-shadow: 0px 0px 0px 3px #00bcd4;
	box-shadow: 0px 0px 0px 3px #00bcd4;
}
.cp_snslink03 .cp_link_list .cp_link a {
	text-decoration: none;
	color: #1a237e;
}
.cp_snslink03 .cp_link_list .cp_link:hover a {
	color: #ffffff;
}

左固定+ホバーでヒュッと横からテキストを表示

ニャン易度
<div class="contents">text</div>
<ul class="cp_snslink04">
<li class="cp_link facebook"><a href="#"><span>Facebook</span></a></li>
<li class="cp_link twitter"><a href="#"><span>Twitter</span></a></li>
<li class="cp_link google"><a href="#"><span>Google+</span></a></li>
<li class="cp_link instagram"><a href="#"><span>instagram</span></a></li>
</ul>
.cp_snslink04 {
	position: fixed;
	top: 50%;
	left: 0;
	display: inline-block;
	margin: 0;
	padding: 0;
	list-style-type: none;
	-webkit-transform: translateY(-50%);
	        transform: translateY(-50%);
}
.cp_snslink04 .cp_link {
	position: relative;
	display: block;
	margin: 0;
	padding: 0;
	cursor: pointer;
	text-align: center;
	text-decoration: none;
	color: #ffffff;
	border-bottom: 1px solid #ffffff;
	background: #3f51b5;
}
.cp_snslink04 .cp_link::before {
	font-family: FontAwesome;
	display: inline-block;
	width: 40px;
	height: 28px;
	padding-top: 12px;
}
.cp_snslink04 .cp_link:last-of-type {
	border-bottom: none;
}
/* pop-up */
.cp_snslink04 .cp_link span {
	line-height: 0.75em;
	position: absolute;
	top: 0.5em;
	right: -25px;
	left: -25px;
	visibility: hidden;
	min-width: 7em;
	height: 1.5em;
	padding: 5px 7px;
	-webkit-transition: all 0.2s cubic-bezier(0.68, -0.55, 0.265, 1.55);
	        transition: all 0.2s cubic-bezier(0.68, -0.55, 0.265, 1.55);
	opacity: 0;
	color: #ffffff;
	border-radius: 2px;
}
.cp_snslink04 .cp_link:hover span {
	left: 50px;
	visibility: visible;
	opacity: 1;
}
/* facebook */
.cp_snslink04 .facebook:hover,
.cp_snslink04 .facebook:hover span {
	background: #3b5997;
}
.cp_snslink04 .cp_link.facebook::before {
	content:'\f09a';
}
/* twitter */
.cp_snslink04 .twitter:hover,
.cp_snslink04 .twitter:hover span {
	background: #55acee;
}
.cp_snslink04 .cp_link.twitter::before {
	content:'\f099';
}
/* google+ */
.cp_snslink04 .google:hover,
.cp_snslink04 .google:hover span {
	background: #dd4b39;
}
.cp_snslink04 .cp_link.google::before {
	content:'\f0d5';
}
/* instagram */
.cp_snslink04 .instagram:hover,
.cp_snslink04 .instagram:hover span {
	background: linear-gradient(45deg, #fdf497,#fd5949,#d6249f,#285aeb );
}
.cp_snslink04 .cp_link.instagram::before {
	content:'\f16d';
}

左固定+ホバー吹き出しのテキストを表示

ニャン易度
<div class="contents">text</div>
<ul class="cp_snslink05">
<li class="cp_link facebook"><a class="fa fa-facebook" href="#"><span>Facebook</span></a></li>
<li class="cp_link twitter"><a class="fa fa-twitter" href="#"><span>Twitter</span></a></li>
<li class="cp_link google"><a class="fa fa-google-plus" href="#"><span>Google+</span></a></li>
<li class="cp_link instagram"><a class="fa fa-instagram" href="#"><span>instagram</span></a></li>
</ul>
* {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
}
body {
	/*設置する親要素ページ全体ならbodyなど*/
	position: relative;
	height: 100vh;
	margin: 0;
	padding: 0;
}
.contents {
	/*サンプルはfixedの確認のためにheight指定しています。*/
	height: 2000px;
}
.cp_snslink05 {
	position: fixed;
	top: 50%;
	left: 0;
	display: inline-block;
	margin: 0;
	padding: 0;
	list-style-type: none;
	-webkit-transform: translateY(-50%);
	        transform: translateY(-50%);
}
.cp_snslink05 .cp_link a {
	position: relative;
	font-family: 'FontAwesome';
	display: block;
	width: 40px;
	height: 40px;
	padding: 10px;
	-webkit-transition: background 0.5s ease 0.3ms;
	transition: background 0.5s ease 0.3ms;
	text-align: center;
	text-decoration: none;
	color: #ffffff;
	background: #263238;
}
.cp_snslink05 .facebook a:hover {
	background: #3b5998;
}
.cp_snslink05 .twitter a:hover {
	background: #00acee;
}
.cp_snslink05 .google a:hover {
	background: #dd4b39;
}
.cp_snslink05 .instagram a:hover {
	background: linear-gradient(45deg, #fdf497,#fd5949,#d6249f,#285aeb );
}
.cp_snslink05 .cp_link:first-child a {
	border-radius: 0 5px 0 0;
}
.cp_snslink05 .cp_link:last-child a {
	border-radius: 0 0 5px 0;
}
.cp_snslink05 .cp_link a span {
	visibility: hidden;
	display: inline-block;
	position: absolute;
	min-width: 7em;
	top: 0.5em;
	left: 60px;
	line-height: 1em;
	padding: 8px;
	-webkit-transition: all 0.5s ease 0.3ms;
	transition: all 0.5s ease 0.3ms;
	transform: rotateY(45deg);
	transform-origin: 0;
	text-align: center;
	opacity: 0;
	color: #ffffff;
	border-radius: 5px;
	background: #263238;
}
.cp_snslink05 .cp_link span:after {
	position: absolute;
	top: 6px;
	left: -15px;
	display: block;
	width: 0;
	height: 0;
	content: '';
	border: 10px solid transparent;
	border-right: 10px solid #263238;
}
.cp_snslink05 .cp_link a:hover span {
	visibility: visible;
	transform: rotateY(0);
	opacity: 1;
}

左固定+ホバーでアイコンがくるっと回転してテキストを表示

ニャン易度
<div class="contents">text</div>
<div class="cp_snslink06">
<ul class="cp_link_list">
<li class="cp_link"><a href="#">facebook<i class="fa fa-facebook fa-fw"></i></a></li>
<li class="cp_link"><a href="#">twitter<i class="fa fa-twitter fa-fw"></i></a></li>
<li class="cp_link"><a href="#">google+<i class="fa fa-google-plus fa-fw"></i></a></li>
<li class="cp_link"><a href="#">instagram<i class="fa fa-instagram fa-fw"></i></a></li>
</ul>
</div>
* {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
}
body {
	/*設置する親要素ページ全体ならbodyなど*/
	position: relative;
	height: 100vh;
	margin: 0;
	padding: 0;
}
.contents {
	/*サンプルはfixedの確認のためにheight指定しています。*/
	height: 2000px;
}
.cp_snslink06 {
	position: fixed;
	top: 50%;
	left: 0;
	display: block;
	overflow: hidden;
	margin: 0;
	-webkit-transform: translateY(-50%);
	        transform: translateY(-50%);
}
.cp_snslink06 .cp_link_list {
	-webkit-transform: translateX(-290px);
					transform: translateX(-290px);
	list-style-type: none;
}
.cp_snslink06 .cp_link a {
	text-decoration: none;
	color: #009688;
}
.cp_snslink06 .cp_link:hover a {
	color: #ffffff;
}
.cp_snslink06 .cp_link {
	display: block;
	width: 300px;
	margin: 5px;
	padding: 10px;
	-webkit-transition: all 1s;
	        transition: all 1s;
	text-align: right;
	-webkit-border-radius: 0 30px 30px 0;
	        border-radius: 0 30px 30px 0;
	background: #80cbc4;
}
.cp_snslink06 .cp_link:hover {
	-webkit-transform: translate(110px, 0);
	        transform: translate(110px, 0);
	background: #009688;
}
.cp_snslink06 .cp_link i {
	font-size: 20px;
	width: 40px;
	height: 40px;
	margin-left: 10px;
	padding: 10px;
	-webkit-transform: rotate(0deg);
	        transform: rotate(0deg);
	color: #ffffff;
	-webkit-border-radius: 50%;
	        border-radius: 50%;
	background: #009688;
}
.cp_snslink06 .cp_link:hover i {
	-webkit-transition: all 1s;
	        transition: all 1s;
	-webkit-transform: rotate(360deg);
	        transform: rotate(360deg);
	color: #009688;
	background: #80cbc4;
}

上固定+ホバーで凹む

ニャン易度
<div class="contents">text</div>
<div class="cp_snslink07">
<ul class="cp_link_list">
<li class="cp_link facebook"><a href="#"><i class="fa fa-facebook fa-fw fa-2x"></i></a></li>
<li class="cp_link twitter"><a href="#"><i class="fa fa-twitter fa-fw fa-2x"></i></a></li>
<li class="cp_link google"><a href="#"><i class="fa fa-google-plus fa-fw fa-2x"></i></a></li>
<li class="cp_link instagram"><a href="#"><i class="fa fa-instagram fa-fw fa-2x"></i></a></li>
</ul>
</div>
* {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
}
body {
	/*設置する親要素ページ全体ならbodyなど*/
	position: relative;
	height: 100vh;
	margin: 0;
	padding: 0;
}
.contents {
	/*サンプルはfixedの確認のためにheight指定しています。*/
	height: 2000px;
}
.cp_snslink07 {
	position: fixed;
	top: 5px;
	display: block;
	width: 100%;
	height: 0;
	margin: 0;
	padding: 0;
	-webkit-transform: translateY(-50%);
	        transform: translateY(-50%);
	text-align: center;
	border-top: 10px solid #90CAF9;
}
.cp_snslink07 .cp_link_list {
	position: absolute;
	right: 1%;
	margin: 0;
	padding: 0;
	list-style: none;
}
.cp_snslink07 .cp_link {
	display: inline-block;
	width: 50px;
	height: 50px;
	margin: 0;
	padding: 10px 0 0 0;
	transition: all 0.3s;
	color: #ffffff;
	border-radius: 0 0 8px 8px;
	background: #90CAF9;
	-webkit-box-shadow: 0 3px 3px 0 rgba(0,0,0,0.2);
	        box-shadow: 0 3px 3px 0 rgba(0,0,0,0.2);
}
.cp_snslink07 .cp_link:hover {
	height: 53px;
	-webkit-box-shadow: 0 0 0 0 rgba(0,0,0,0.2);
	        box-shadow: 0 0 0 0 rgba(0,0,0,0.2);
}
.cp_snslink07 .cp_link a {
	transition: all 0.3s;
	text-align: center;
	color: #ffffff;
}
.cp_snslink07 .cp_link:hover a {
	filter: drop-shadow(0px 0px 5px rgba(255,255,255,0.8));
}
.cp_snslink07 .cp_link.facebook:hover a {
	color: #3b5999;
}
.cp_snslink07 .cp_link.twitter:hover a {
	color: #55acee;
}
.cp_snslink07 .cp_link.google:hover a {
	color: #dd4b39;
}
.cp_snslink07 .cp_link.instagram:hover a {
	color: #e4405f;
}

下固定+ホバーでひょっこりアイコンが顔を出す

ニャン易度
<div class="contents">text</div>
<div class="cp_snslink08">
<ul class="cp_link_list">
<li class="cp_link"><a href="#"><i class="fa fa-facebook fa-fw"></i></a></li>
<li class="cp_link"><a href="#"><i class="fa fa-twitter fa-fw"></i></a></li>
<li class="cp_link"><a href="#"><i class="fa fa-google-plus fa-fw"></i></a></li>
<li class="cp_link"><a href="#"><i class="fa fa-instagram fa-fw"></i></a></li>
</ul>
</div>
* {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
}
body {
	/*設置する親要素ページ全体ならbodyなど*/
	position: relative;
	height: 100vh;
	margin: 0;
	padding: 0;
}
.contents {
	/*サンプルはfixedの確認のためにheight指定しています。*/
	height: 2000px;
}
.cp_snslink08 {
	position: fixed;
	bottom: 0;
	left: 50%;
	display: block;
	overflow: hidden;
	width: 100%;
	margin: 0px auto;
	-webkit-transform: translateX(-50%);
	        transform: translateX(-50%);
	text-align: center;
}
.cp_snslink08 .cp_link_list {
	overflow: hidden;
	height: 50px;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
	border-bottom: 5px solid #f06292;
}
.cp_snslink08 .cp_link_list .cp_link {
	display: inline-block;
}
.cp_snslink08 .cp_link i {
	font-size: 2em;
	position: relative;
	top: 20px;
	width: 2em;
	height: 2em;
	margin: 0;
	padding: 10px;
	-webkit-transition: all 100ms cubic-bezier(0.42, 0, 0.58, 1);
	        transition: all 100ms cubic-bezier(0.42, 0, 0.58, 1);
	border-radius: 50%;
	background: #f06292;
}
.cp_snslink08 .cp_link i:hover {
	top: 5px;
	background: #F48FB1;
}
.cp_snslink08 .cp_link a {
	color: #ffffff;
}

fontawesome

ボタンタイプのソーシャルリンク

copypet.jp

コピペでできる!cssとhtmlのみのクリックでソーシャルリンクが出てくるボタン4種 | copypet.jp|パーツで探す、web制作に使えるコピペサイト。

画面の左や右などに固定設置されたソーシャルリンクのボタンタイプをご紹介。 よく見かけるあのボタンを押すとピロピロッと隠れたソーシャルリンクが出てくるアレです。…

copypet.jp

記事を見る

copypet.jp

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

More Info

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