レスポンシブで iframe

iframe を使う機会は随分少なくなり、Google マップや YouTube 程度。ただ、スマートフォンおよびタブレットの普及により、レスポンシブの要望は必須のような状況です。
そのような状況ですので、レスポンシブで iframe を使うケースがあります。コーポレートサイトの制作をメインとしている当オフィスでは、Google マップでの利用がほとんどですが、希に Google カレンダーや YouTube のご要望があります。Google マップの場合、高さ固定でも問題とならないのですが、Google カレンダーの場合は、スマホでみるとカレンダーが画面からはみ出している状態となったり、YouTube の場合、横長になってしまったりと支障が生じます。

なので、次のようなことを行います。

<div class="sample">
<iframe src="(パス)"></iframe>
</div>

CSS については・・・。

.sample{
	position:relative;
	padding-bottom:56.25%; /* 16:9 の場合 56.25%,4:3 の場合 75% */
	width:100%;
	height:0;
	overflow:hidden;
}
.sample iframe{
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	border:none;
}

なお、Google カレンダーの場合、カレンダーが取得した HTML コードでは、私の iPhone5 でどうしてもはみ出るため、

https://calendar.google.com/calendar/embed?src=

ではなく

https://calendar.google.com/calendar/htmlembed?src=

が表示されるよう @media screen で切り替えて対処。

環境依存文字・機種依存文字

ホームページ制作の業務では、環境依存文字への対応が当たり前のようにあります。
そんな環境依存文字や記号を載せる度に過去のコードや検索するのも大変ですので、よく使う文字実体参照・数字文字参照を載せておこうかと・・・。

表示 文字実体参照 数値文字参照(10進数)
& &amp; &#38;
< &lt; &#60;
> &gt; &#62;
« &laquo; &#171;
» &raquo; &#187;
&#8810;
&#8811;
&quot; &#34;
&trade; &#153;
© &copy; &#169;
® &reg; &#174;
&#8471;
Φ &Phi &#934;
φ &phi &#966;
° &deg; &#176;
&#8451;
&#13217;
± &plusmn; &#177;
² &sup2; &#178;
³ &sup3; &#179;
¥ &yen; &#65509;
&#12306;
&#9312;
&#9313;
&#9314;
&#9315;
&#9316;
&#9317;
&#9318;
&#9319;
&#9320;
&#9321;
&#9322;
&#9323;
&#9324;
&#9325;
&#9326;
&#9327;
&#9328;
&#9329;
&#9330;
&#9331;

ブラウザのシェアで Chrome がトップ

先月の記事ですが、WebブラウザシェアランキングTOP10 が発表されています。

https://webrage.jp/mobile/data/pc_browser_share.html

バージョンでも分かれていますが、その他を除いて IE と Chrome それぞれのバージョンを足して比較しても Chrome がトップになっています。

さて、Internet Explorer の天下だった Webブラウザ界が上記のような状況に変化しているなか、ホームページを運営している者としてなにを注意しなければならないでしょう?

デザインのくずれ

W3Cに準拠して、Chrome や Safari での表示チェックをしているようなホームページの場合、それを維持すれば問題ないと思われます。逆にそれを行っていない場合は、実施することを推奨します。

お問い合わせなどのフォーム

フォームの入力欄で 全角 および 半角 の入力を自動的に切り替わる機能を ime-mode で実装している場合、少し問題がでてきます。Chrome は ime-mode に対応していません。つまり、ime-mode で実装している場合、シェア No1 のブラウザでは 全角 および 半角 の入力が自動的に切り替わらないのです。
電話番号やメールアドレスの入力欄で実装されているケースが多いため、ご自分のホームページのお問い合わせフォームをチェックしていただければと思います。

ime-mode で実装されている場合、どうすればよいか?
入力の時点での強制ではなく「全角で入力されたら半角に変換する」で対応するのがベストと考えます。その機能は PHP で実現可能です。当オフィスのお問い合わせフォームでメールアドレスや電話番号の入力欄に全角で入力しても「入力内容の確認」をクリックしたあと半角に変換されることが確認できます。メールアドレスや電話番号などは辞書登録されている人もおられますので、ime-mode などで入力モードを強制的に制御させるより、「全角で入力されたら半角に変換する」の考えの方がベターと当オフィスでは考えています。

[mokurenCB]