目次
- HTML段落タグ付加スクリプト
- 段落スタイルのCSS設定例
- textarea内の改行コード検証
HTML段落タグ付加スクリプト
ホームページを更新するときに地味に面倒なのが、HTMLタグの挿入。
HTMLの基本は開始タグと終了タグでテキストを挟むもので、これが文章の構造や意味を示します。
あまり意識してる人はいないかもしれませんが、日本語の文章をただひたすら書く場合でも、HTMLタグは付ける必要があります。
言い換えると、タグで挟まれていない範囲に文章を書くべきでは無い。HTMLを使う意味が無くなってしまいますからね。
リンクはaタブ、画像ならimgタグなんてのは嫌でも使いますが、普通の段落はpタグで挟んで明示するのが標準。
例えばこんな感じ。
<p>
段落その1の文章内容をつらつらと述べつつ無駄な長さの文となってしまった今日この頃。
</p>
<p>
段落その二、にんにく、くじら、らっぱ、ぱんだ、だいこん
</p>
これをHTMLファイルに書くことでこんな表示になります。
段落その1の文章内容をつらつらと述べつつ無駄な長さの文となってしまった今日この頃。
段落その二、にんにく、くじら、らっぱ、ぱんだ、だいこん
きちんとした文章を書く上では、段落をタグで定義するというのは分かりやすいです。ネットの文章の書き方は改行を入れまくるのが普通ですが、これは本来の文章の書き方では無いですからね。
とはいえ、毎度毎度段落用のタグを入れるのは非常に面倒。ちゃんとした日本語の文章を多く書いているなら尚更です。
そんなときに! このツール!
段落つき文書のHTML化 日本語文章にHTMLタグを勝手につけてくれる代物です。
打ち込んだ日本語文章の段落を判定して、pタグをつけてくれます。ついでに、段落途中での改行にはbrタグ(改行タグ)を入れます。
使い方は簡単、上のテキストボックスに日本語の文章を入れるだけ。字下げや空行を段落区切りと判定して、pタグで囲みます。字下げ文字には半角スペース、全角スペース、タブ文字を含めました。
変換後、字下げや空行は全て消去する仕様です。行間や字下げはスタイルシートで定義すれば済む話ですからね。念のため、そのスタイルの設定方法を示します。
段落スタイルのCSS設定例
一例(実行結果確認および設定調整は各自で行ってください):
p {
text-indent: 1em;
line-height: 150%;
padding-left: 50px;
margin-top: 10px;
margin-bottom: 20px;
}
字下げについては、
text-indentプロパティが用意されています。1emを指定することで、1文字分のインデントを入れられます。
参考:
em単位 - 値の単位と記述方法 - スタイルシート入門 全ての行について、行間を調整したいのであれば
line-heightプロパティを使ってください。
一方で、段落と段落の間の間隔は、
marginや
paddingの調整です。上下と同時に、左側のスペースを設定することでテキスト全体のインデントも指定できます。
書くまでも無いとは思いますが、各設定については好みの物を皆さん自信で調整し、決定してください。
また、段落ごとに設定を変えたいのであれば、pタグの中にstyle属性を指定し、その中でstyleを変更してください。
例: <p style="padding-left:15px;">段落の中身ー!</p>
ただし、例えばインデントが行ごとに異なってくる、空行が意味を持っている、などの場合にはpタグでは無く
pre タグを用いるべきです。
つまり、がむしゃらにpタグを用いるのではなく、必要に応じて適切な要素を用いることが大切です。それが、本来のHTMLの使い方なのです。
textarea内の改行コード検証
最後に、段落判定のために調べたテキストエリア内の改行コードの仕様について述べます。
手元の書籍によれば、
HTML5仕様では、ブラウザーは、テキストエリア内に改行が入っていたら、その改行コードをCRLFに統一することとしています。したがって、HTMLファイルの改行コードがCRだろうがLFだろうが、フォームがサブミットされるとき、テキストエリアの値中の開業は、すべてCRLFに統一されて、サーバーに送信されることになります。近年のブラウザーは、いずれも、これに対応しています。
出典:羽田野太巳,
徹底解説 HTML5 マークアップガイドブック, 株式会社 秀和システム, 第1版, p.476, 2010.
つまり、単純に考えればCRLFを判定すれば良い。しかし、そう簡単ではないのは、「
フォームがサブミットされるとき
」という文。
ああ。テキストエリア内の文章をそのまま拾ってきた場合は、ブラウザ依存じゃないか、と。
しかし、先に結論を述べると、テキストエリア内の改行をjavascriptで調べたいのであれば、どうあっても'\n'との一致を見れば良い。改行コードはCRに統一されているので、文字数とかブラウザ仕様の意識は不要。
調べた限り、昔は全く統一されていなかった、というものが出てきます。
文字コード/改行コード について[Apache/CGI/Perl]Windowsでの改行コード - Windows系OS | 【OKWAVE】 特に後者の掲示板では、textareaから拾ってきた文章の改行コードが、ブラウザによって異なることが示されています。逆にデータを放り込む場合は'\n'にしておけばうまくブラウザが解釈してくれるらしい。
改行を拾ってくる場合の仕様の違いの名残は、こんなページでも見られます。
改行の研究 文字数自体が違い、ASCIIコードに差異がでる。テキストデータにしろバイナリデータにしろ、改行は別物になります。これだと困るわけで、例えばこんな関数が必要になってくるわけです。
JavaScript 改行コード取得関数 そこで今回、Windows8.1での「Opera 12.18」、「Opera 35.0」、「Internet Explorer 11」、「Google Chrome 48」、「Firefox 44」で
改行の研究の文字数とASCIIコードを確かめました。
結果は、全て文字数21、改行コードは%0Aというもの。
ページの内容を見る限り、昔は22文字でCRLFだったようなので、ブラウザの仕様が統一されてCRになった、と考えるのが妥当と結論付けました。
そんなわけで、テキストそのまま使う場合も、コード変換して考える場合も、とにかくCRだけ考えれば良いです。
他方で検証してませんが、サブミットされれば送られるデータはCRLFになるようなので、そこの混同を無きよう……。
こんなもん、クリックしないでいいですよ。
人気ブログランキングへFC2 Blog Ranking