HTML:スマホでフォームの入力モードを切り替える

HTMLで入力フォームを作成する場合、inputタグに「type=”text”」や「type=”password”」など
入力項目にあったtype属性を指定して作成します。

スマホ(スマートフォン)やタブレットでフォームの入力を行う際に
入力キーボードの切り替えなど、意外と大変な場合があります。

HTML5で追加されたinputタグのtype属性を使用すると
type属性によって入力モード自動的切り替えることができます。

数字のみ入力を行う場合などは数字入力用のキーボードが表示された方が、
ユーザーにとって使いやすいものになります。

下記にinputタグのtype属性を変更して、スマホタブレットでのフォームの入力モードを切り替えた時のメモを記載します。


スマホ入力モード切り替え

※画像はiPhoneで撮影しています。

type=”text”

<input type="text" />

input_type_text

通常のテキスト入力用のキーボードが表示されます。


type=”password”

<input type="password" />

input_type_password

パスワード入力用のキーボードが表示され、文字は伏字になります。


type=”email”

<input type="email" />

input_type_email

キーボードにアットマーク「@」、ドット「.」が表示されます。


type=”tel”

<input type="tel" />

input_type_tel

電話番号入力用のテンキー表示されます。


type=”url”

<input type="url" />

input_type_url

キーボードに「.com」、ドット「.」、スラッシュ「/」が表示されます。


type=”number”

<input type="number" />

input_type_number

数字・記号入力用のキーボードが表示されます。


type=”date”

<input type="date" />

input_type_date

日付入力用の選択キーボードが表示されます。


type=”datetime”

<input type="datetime" />

input_type_datetime

日付・時間入力用の選択キーボードが表示されます。


※上記以外のtype属性もあります。

ユーザーが入力しやすいように自動的に入力モードが切り替われば
入力がとても楽になり、快適に操作してもらえるようになると思います。

今回はiPhoneでしか確認していないので、Androidなども今度確認してみたいと思います。


HTML:スマホページの電話番号をリンクさせない方法

スマホスマートフォン)サイトを構築時、ページ内に電話番号を記載することがあります。

iPhoneでページを確認すると、勝手に電話番号がリンクされてしまいます。

iPhoneSafari)ではページ内の電話番号自動でリンクするという機能があるので、
リンクさせたくない場合は対策が必要です。

下記にスマホページ内に記載している電話番号自動リンクさせない方法をメモします。


電話番号の自動リンク機能を無効にする

headタグ内に下記のコードを記述します。

<meta name="format-detection" content="telephone=no">

これを記述するとページ内に記載している電話番号の自動リンクを防ぐことができます。

また、電話番号に似た番号なども自動リンクしてしまう可能性があるので、
スマホページを作成する場合は設定しておいた方がいいと思います。

電話番号にリンクを貼りたい場合は下記のように個別で設定します。

<a href="tel:000-0000-0000">000-0000-0000</a>

「tel:電話番号」でリンクを設定します。


上記のようにすれば、電話番号を勝手にリンクすることがなくなるので、
間違いが起きないと思います。

HTML:スマホのホーム画面にサイトのアイコンを表示

スマホスマートフォン)やタブレットで、頻繁に利用するWEBサイトを
すぐ確認できるようにホーム画面に追加することがあります。

iPhoneの場合「ホーム画面に追加」を選択すればホームにサイトのアイコンを表示し
ブックマークすることができます。

しかし、アイコンの設定をしていないと、サイトのキャプチャ画像で登録されてしまいます。

sp_icon_1

アイコンを指定する場合、HTMLに下記のコードを追加すればアイコンを表示することが可能です。

下記に、スマホホーム画面に指定したアイコンを表示した時の方法をメモします。


ホーム画面にサイトのアイコンを表示

ホーム画面に使用するアイコンの画像を用意します。

apple-touch-icon

※今回は120px×120pxで作成しました。

作成したアイコンをアップロードし、headタグ内に下記のコードを記述します。
光沢のあり・なしを設定することが可能です。

※URLはアイコンまでのパスを指定します。

光沢ありの場合

光沢ありの場合は「apple-touch-icon」を指定します。

<link rel="apple-touch-icon" href="http://raining.bear-life.com/apple-touch-icon.png" />

sp_icon_2

光沢なしの場合

光沢なしの場合は「apple-touch-icon-precomposed」を指定します。

<link rel="apple-touch-icon-precomposed" href="http://raining.bear-life.com/apple-touch-icon.png" />

sp_icon_3

コードを記述し、サイトにアップロードします。
アップ後、「ホーム画面に追加」をすれば、上記のアイコンのように表示することができます。


上記はiPhoneでのみ確認しています。
また、ベーシック認証をかけているとアイコンを設定することができないので注意です。

Androidの場合は標準のブラウザではなく、Chromeで追加するとホーム画面にアイコンが表示されます。
ただ、バージョンによるかもしれませんので試してみてください。

HTML:改行文字列をtextarea内で表示

phpで作成した改行を入れた文字列textarea内に挿入して表示させる時に、改行がうまくいかなかったのでメモします。

下記のように改行箇所に「\n」や「<br>」をテキストエリアに入れてもそのまま表示されてしまいました。

<?php
$text = 'テスト\nテスト';
?>

<textarea><?php echo $text; ?></textarea>

HTML_textarea1


テキストエリア内で文字列改行させて表示させる場合は改行コードの「&#13;」を改行箇所に入れると正しく改行されて表示されました。

<?php
$text = 'テスト&#13;テスト';
?>

<textarea><?php echo $text; ?></textarea>

HTML_textarea2


また、データベースから取得したデータは改行されたまま表示されます。

上記が正しい方法かわかりませんが、テキストエリア内で改行することは確認できました。

.htaccess:htmlファイルでphpを使用する

拡張子が「.html」のファイルでphpを使用したい場合があります。

htmlファイルで作成していたページで拡張子を「.php」に変更すればphpを使用することができますが、URLを変更したくないなどの場合があります。

.htaccessで下記の設定すれば、拡張子が「.html」のファイルでphpを使用することができます。


htmlファイルでphpを使用

下記のコードを「.htaccess」に記述すればhtmlファイルでもphpを動かせることができます。

AddType application/x-httpd-php .php .html

使用しているサーバによっては、記述の仕方が異なることがあるので
注意しなければいけません。