「like」タグアーカイブ

Facebookの「いいね」ボタンと、タイムラインをスマホサイトでレスポンシブにする。CSSでdata-widthの設定

Facebookのタイムラインを埋め込むと横幅が660px固定になる

 
スマホやタブレット向けの可変Webサイト、いわゆるレスポンシブデザインというものがあるが、Facebookのタイムラインが微妙にレスポンシブデザインに対応していない。
 
 
これはCSSでうまく対応できるので、紹介しておこう。

 
 

<div class=”fb-page” data-href=”https://www.facebook.com/あなたのFacebookページ” data-width=”660″ data-height=”800″ data-small-header=”false” data-adapt-container-width=”true” data-hide-cover=”false” data-show-facepile=”false” data-show-posts=”true”><div class=”fb-xfbml-parse-ignore”><blockquote cite=”https://www.facebook.com/あなたのFacebookページ”><a href=”https://www.facebook.com/あなたのFacebookページ”>Universal Strength</a></blockquote></div></div>

 

これがFacebook公式からコピペした状態だ。

見ても分かる通り、data-widthが660で固定になっているように見える。何やってねんザッカーバーグ。アホか。
と思った人も少なくなかろう。
 
 

実はFacebookは自動でスマホ向けに最適化される

 
実は、「data-width」は660と書いてはいても。実は自動である程度サイズを合わせてくれる。

↓↓↓↓スマホ表示↓↓↓↓

 
 
 
 
これでも使えなくはない。ただし、スマホで見ると、画面横幅いっぱいいっぱいにFacebookのタイムラインが広がり、スマホ画面のフリックでスクロールしてもタイムラインのスクロールになってしまう。

結果としてWebサイト自体のスクロールがやりにくくなるわけだ。
ザッカーバーグ。アホか。
 
 

「data-width: auto;」は無効化されるので、その対策

 
古いバージョンのFacebookタイムライン表示だと「data-width」を任意の値や、 data-width: auto;にすることで対応できたが、現行(2015年7月時点)のバージョンではこれは自動で無効化されてしまう。
 
これは、下記をスタイルシートにコピペでうまく対応できる。
 

div.fb-like-box,
div.fb-like-box iframe[style],
div.fb-like-box span {
max-width: 97% !important;
}
div.fb_iframe_widget,
div.fb_iframe_widget iframe[style],
div.fb_iframe_widget span {
width: 97% !important;
height: 100px !important;
}

 
つまり、「画面の幅の97%までにしろ。」ということで、両端(または右端)に3%の隙間ができるので、ページをスクロールさせられる。
 
もちろん90%でも80%でもいい。
 
 
これをスマホサイトのみに適応させるには、下記のような、メディアアンカー内に記述するといい。

@media screen and (max-width:600px){

}

 
 
メディアアンカーを使わないなら、
 

div.fb-like-box,
div.fb-like-box iframe[style],
div.fb-like-box span {
max-width: 97% !important;
}
div.fb_iframe_widget,
div.fb_iframe_widget iframe[style],
div.fb_iframe_widget span {
max-width: 97% !important; /*←最大値を制限に変更*/
height: 100px !important;
}

こちらをCSSにコピペの方がいいかもしれない。

関連記事:
facebookのタイムラインの div に display:none; のCSSを適用する方法を利用して、スマホでは非表示にすることも可能。

Facebookの「いいね!」や「シェア」の言語を変えて「Like」とか「Share」とかにする方法

色々な言語でFacebookのシェアボタンを表示する

 

FBのシェアボタンやいいね!ボタンを設置して、何かの拍子で言語を変更したい時がある。
外国語サイトを運営してる時とか、何かの拍子でかっこつけたい時なんかにどうぞ。

ソースの触る場所

上記写真の矢印の部分、

if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = “//connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v2.0”;
fjs.parentNode.insertBefore(js, fjs);
}(document, ‘script’, ‘facebook-jssdk’));</script>

書き出すと、この写真の中で「en_GB」となってる部分。これが日本語なら「ja_JP」となっている。ここを変えるだけでOK。

 

具体的にどんな言語があるの?

2015年2月時点でFacebookで利用可能な言語の一覧を全部書いておく。

A-Zの順番。

af_ZA アフリカーンス語 南アフリカ共和国
ar_AR アラビア語
az_AZ アゼルバイジャン語
be_BY ベラルーシ語
bg_BG ブルガリア語
bn_IN ベンガル語 インド西部
bs_BA ボスニア語
ca_ES カタルーニャ語
cs_CZ チェコ語
cx_PH キューバ語
cy_GB ウェールズ語
da_DK デンマーク語
de_DE ドイツ語
el_GR ギリシャ語
en_GB イギリス英語
en_PI カリブ英語
en_UD 上下逆英語
en_US アメリカ英語
eo_EO エスペラント後
es_ES スペイン語
es_LA ラテンアメリカスペイン語
et_EE エストニア語
eu_ES バスク語(スペイン北部)
fa_IR ペルシャ語
fb_LT ネット上のラテン語表記
fi_FI フィンランド語
fo_FO フェロー語  デンマークの一部
fr_CA カナダフランス語
fr_FR フランス語
fy_NL フリジア語 オランダの一部
ga_IE アイルランド語
gl_ES ガリシア語 スペイン北西部
gn_PY グアラニー語 パラグアイ
gu_IN グジャラート語 インド西部
he_IL ヘブライ語
hi_IN ヒンディー語
hr_HR クロアチア語
hu_HU ハンガリー語
hy_AM アルメニア語
id_ID インドネシア語
is_IS アイスランド語
it_IT イタリア語
ja_JP 日本語
ja_KS 関西弁
jv_ID ジャワ語
ka_GE 英古語
kk_KZ カザフスタン語
km_KH クメール語
kn_IN カンナダ語 インド南部
ko_KR 韓国語
ku_TR クルド語 トルコ東部
la_VA ラテン語
lt_LT リトアニア語
lv_LV ラトビア語
mk_MK マケドニア語
ml_IN マラヤーラム語 インド南部
mn_MN モンゴル語
mr_IN マラーティー語 中央インド
ms_MY マレー語
nb_NO ノルウェー語
ne_NP ネパール語
nl_NL オランダ語
nn_NO 新ノルウェー語
pa_IN パンジャーブ語 インド・パキスタン
pl_PL ポーランド語
ps_AF パシュトー語 アフガニスタン東部
pt_BR ポルトガル語 ブラジル
pt_PT ポルトガル語
ro_RO ルーマニア語
ru_RU ロシア語
si_LK シンハラ語 スリランカ北部
sk_SK スロバキア語
sl_SI スロベニア語
sq_AL アルバニア語
sr_RS セルビア語
sv_SE スウェーデン語
sw_KE スワヒリ語
ta_IN タミル語 スリランカ南部
te_IN テルグ語 インド南部
tg_TJ タジキスタン語
th_TH タイ語
tl_PH フィリピン語
tr_TR トルコ語
uk_UA ウクライナ語
ur_PK ウルドゥー語 パキスタン
uz_UZ ウズベキスタン語
vi_VN ベトナム語
zh_CN 北京語
zh_HK 中国語 香港
zh_TW 中国語 台湾

全90言語。