SNSボタンをグループ化してサイトに設置する方法としては、忍者おまとめボタンが手っ取り早い。
だけど、読み込み速度やデザイン等の理由で、どうしても外部サイトを介さないで設置したい場合もある。
ということで、極力横幅の短いソーシャルボタン(以下SNSボタン)と、バルーンカウンター付きのSNSボタンをコピペで貼り付けるためのソースを書いてみた。
極力横幅を小さくしたSNSボタン
以下のようなソーシャルボタン(SNSボタン)を作りたい場合・・・
HTMLソースは以下。
<div id="sns-b"> <!-- ツイッター --> <div class="sbox"> <a href="https://twitter.com/share" class="twitter-share-button" data-lang="ja" data-count="none">ツイート</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script> </div> <!-- はてブ --> <div class="sbox"> <a href="http://b.hatena.ne.jp/entry/" class="hatena-bookmark-button" data-hatena-bookmark-layout="simple" title="このエントリーをはてなブックマークに追加"><img src="https://b.st-hatena.com/images/entry-button/button-only@2x.png" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border: none;" /></a><script type="text/javascript" src="https://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script> </div> <!-- Facebook --> <div class="sbox"> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v2.0"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> <div class="fb-like" data-href="https://developers.facebook.com/docs/plugins/" data-layout="button" data-action="like" data-show-faces="false" data-share="false"></div> </div> </div><div style="clear: both;"></div>
スタイルシートは以下
#sns-b{ margin: 10px 0; float: right; } .sbox { display: inline-block; padding: 0 5px 5px 0; float: left; }
バルーン付きSNSボタン
以下のようにバルーンでカウンターを付けたいなら
htmlソースを以下のようにする。(CSSは前述と同じ)
<div id="sns-b"> <!-- ツイッター --> <div class="sbox" style="width: 100px;"> <a href="https://twitter.com/share" class="twitter-share-button" data-lang="ja">ツイート</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script> </div> <!-- はてブ --> <div class="sbox"> <a href="http://b.hatena.ne.jp/entry/" class="hatena-bookmark-button" data-hatena-bookmark-layout="standard-balloon" data-hatena-bookmark-lang="ja" title="このエントリーをはてなブックマークに追加"><img src="https://b.st-hatena.com/images/entry-button/button-only@2x.png" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border: none;" /></a><script type="text/javascript" src="https://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script> </div> <!-- Facebook --> <div class="sbox"> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v2.0"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> <div class="fb-like" data-layout="button_count" data-action="like" data-show-faces="false" data-share="false"></div> </div> </div> </div><div style="clear: both;"></div>
備考
htmlソース内「<div style="clear: both;"></div>」を入れるとテンプレが崩れるかもなので、
それを消して、CSSの#sns-bに「overflor:hidden;」を追加した方が良いかも。
SNSボタンはデフォルトで右寄せになっているので、左寄せしたい人はfloatを適当にいじればできると思われ。
各ソーシャルボタンの取得場所
ちなみに、各ソーシャルボタンのソースは以下から取得した。
すべてのボタンはURLを未入力で設定している。
コメント