ひらがなをカタカナへ自動変換するテキストエリアを作る方法
ひらがなで入力した文字を、カタカナへ自動変換するテキストエリアを作る方法を紹介します。このサンプルでは、テキストエリアへひらがなを入力すると、入力した文字がリアルタイムでカタカナへ変換されます。利用者が自分でカタカナへ変換する操作を行わなくても、入力内容をカタカナにそろえられるテキストエリアを作成できます。
自動変換にはJavaScriptを使用し、テキストエリアの入力内容からひらがなの文字を判定して、対応するカタカナへ置き換えます。たとえば「おといあわせ」と入力すると「オトイアワセ」のように変換されます。ひらがな以外の文字はそのまま残るため、入力された文字列の中に数字や記号などが含まれていても、ひらがなの部分だけをカタカナへ変換できます。
カタカナでの入力を求めるお問い合わせフォームや会員登録画面、氏名・商品名などのフリガナ入力欄といった場面に活用できます。HTMLではテキストエリアのラベルや案内文、プレースホルダーを変更でき、CSSでは入力欄のサイズや余白、枠線、背景色などを調整できます。JavaScriptの処理を組み合わせることで、入力する人が毎回カタカナ変換を行う手間を減らせます。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
デモ
入力したひらがなをリアルタイムでカタカナへ自動変換します。
入力したひらがながカタカナへリアルタイムで変換されます。テキストエリアへひらがなを入力すると、入力した文字がリアルタイムでカタカナへ自動変換されます。
コードをコピーして使おう!
<!DOCTYPE html>
<html lang="ja">
<head>
<!-- 文字コード -->
<meta charset="UTF-8">
<!-- スマートフォンなどの画面幅に合わせて表示 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- ページタイトル -->
<title>ひらがなをカタカナへ自動変換するテキストエリア</title>
<!-- CSSファイル -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- 自動変換テキストエリア全体 -->
<div class="hiragana-to-katakana-textarea_wrap">
<!-- 見出し -->
<div class="hiragana-to-katakana-textarea_title">
ひらがな → カタカナ自動変換
</div>
<!-- 説明文 -->
<p class="hiragana-to-katakana-textarea_text">
入力したひらがなをリアルタイムでカタカナへ自動変換します。
</p>
<!-- テキストエリアのラベル -->
<label class="hiragana-to-katakana-textarea_label" for="hiragana-to-katakana-textarea-input">
カタカナへ自動変換
</label>
<!-- ひらがなを入力するテキストエリア -->
<textarea id="hiragana-to-katakana-textarea-input" class="hiragana-to-katakana-textarea_input" placeholder="ひらがなを入力してください 例:おといあわせないよう"></textarea>
<!-- 入力方法の案内 -->
<span class="hiragana-to-katakana-textarea_note">
入力したひらがながカタカナへリアルタイムで変換されます。
</span>
</div>
<!-- JavaScriptファイル -->
<script src="script.js"></script>
</body>
</html>
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。
ファイル構成と設置方法
このサンプルはHTML、CSS、JavaScriptの3ファイルで構成されています。HTMLでは「ひらがな → カタカナ自動変換」の見出しや説明文、ラベル、テキストエリアを配置し、CSSでフォーム全体と入力欄のデザインを整えます。JavaScriptではテキストエリアへの入力を検知し、入力内容に含まれるひらがなをカタカナへリアルタイムで変換します。外部サービスや外部ライブラリは使用しません。
sample/
├── index.html
├── style.css
└── script.js
各ファイルの役割
index.htmlは、自動変換テキストエリアの表示内容を構成するファイルです。「ひらがな → カタカナ自動変換」の見出し、説明文、「カタカナへ自動変換」のラベル、テキストエリア、入力欄下の案内文を配置しています。プレースホルダーには、入力方法が分かるように「ひらがなを入力してください」と入力例を表示しています。
style.cssは、フォーム全体とテキストエリアのデザインを設定するファイルです。全体の横幅や余白、背景色、枠線、角丸のほか、テキストエリアの高さ、文字サイズ、行間、フォーカス時の枠線や影などを設定しています。画面幅640px以下で余白やテキストエリアの高さを調整するレスポンシブ設定も含まれています。
script.jsは、テキストエリアへ入力されたひらがなをカタカナへ変換するファイルです。入力内容が変化するたびに処理を実行し、ひらがなの文字コードへ0x60を加えることで対応するカタカナへ置き換えます。ひらがな以外の文字は、この変換処理の対象になりません。
設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置し、3つのファイルを同じ階層へ保存します。index.htmlからstyle.cssとscript.jsを読み込む構成になっているため、ファイル名を変更せずにsample/index.htmlをブラウザで開けば動作を確認できます。
表示されたテキストエリアへ、ひらがなで文字を入力してください。たとえば「おといあわせ」と入力すると、入力されたひらがなが「オトイアワセ」のようにリアルタイムでカタカナへ変換されます。APIキーや外部サービスの設定などは必要ありません。
カスタマイズできる内容
index.htmlでは、「ひらがな → カタカナ自動変換」の見出し、説明文、「カタカナへ自動変換」のラベル、プレースホルダー、入力欄下の案内文を変更できます。フリガナ入力や商品名の読みなど、使用するフォームに合わせた文章へ変更できます。
style.cssでは、フォーム全体の最大横幅、余白、背景色、枠線、角丸、見出しや説明文の文字サイズ・文字色、テキストエリアの高さ、内側余白、枠線、背景色、文字色、フォーカス時の枠線色や影などを変更できます。
数値調整
style.css
max-width:700px;
フォーム全体の最大横幅です。値を大きくすると横に広がり、小さくするとコンパクトになります。
margin:40px auto;
フォーム全体の上下余白です。40pxを大きくすると上下の間隔が広がり、小さくすると狭くなります。
padding:32px;
フォーム全体の内側余白です。値を大きくすると内容と外枠の間隔が広がり、小さくすると狭くなります。
border:1px solid #dbe4f0;
フォーム全体の枠線です。1pxを大きくすると枠線が太くなり、小さくすると細くなります。
border-radius:18px;
フォーム全体の角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。
font-size:22px;
見出しの文字サイズです。値を大きくすると見出しが大きくなり、小さくすると控えめになります。
margin:0 0 24px;
説明文の下側余白です。24pxを大きくするとラベルとの間隔が広がり、小さくすると狭くなります。
margin-bottom:8px;
ラベルとテキストエリアの間隔です。値を大きくすると間隔が広がり、小さくすると近くなります。
min-height:140px;
テキストエリアの最小高さです。値を大きくすると入力欄が高くなり、小さくすると低くなります。
padding:14px 16px;
テキストエリアの内側余白です。14pxが上下、16pxが左右の余白を表し、それぞれの値を大きくすると文字と枠線の間隔が広がります。
border:2px solid #cbd5e1;
テキストエリアの枠線です。2pxを大きくすると枠線が太くなり、小さくすると細くなります。
border-radius:10px;
テキストエリアの角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。
font-size:16px;
テキストエリアへ入力する文字のサイズです。値を大きくすると文字が大きくなり、小さくすると小さくなります。
line-height:1.7;
テキストエリア内の文字の行間です。値を大きくすると行間が広がり、小さくすると詰まった表示になります。
transition:0.3s;
フォーカス時に枠線と影が切り替わる時間です。0.3秒で変化し、値を大きくするとゆっくり、小さくすると速く切り替わります。
box-shadow:0 0 0 4px ...
テキストエリアへフォーカスしたときに表示する外側の強調範囲です。4pxを大きくすると影の範囲が広がり、小さくすると控えめになります。
レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%とmax-width:700pxによって、フォーム全体が利用できる画面幅に合わせて縮小されます。また、画面幅640px以下ではフォーム全体をmargin:24px auto;、padding:24px 18px;へ変更し、テキストエリアをmin-height:130px;、padding:13px 14px;へ調整しています。スマートフォン・タブレット・PCで画面幅に合わせて表示できます。
コメント