HTMLのtitle属性やalt属性のテキストに改行を入れる方法!

HTMLのtitle属性やalt属性のテキストに改行を入れる方法!

HTMLのtitle属性やalt属性にテキストを入れることで、ユーザーライクでありSEOライクなHTMLに出来ますが、今回はそのtitle属性やalt属性のテキストを改行させる方法をご紹介します。ぜひtitle属性やalt属性の改行にまで拘りたい方はお試し下さい。


目次[非表示]

  1. HTMLのtitle属性やalt属性
  2. HTMLのtitle属性やalt属性のテキストに改行を入れる方法

HTMLのtitle属性やalt属性

みなさんはHTMLのtitle属性やalt属性を設定していますでしょうか?

title属性

HTMLのtitle属性の例
title属性はツールチップのように、マウスオーバーした際にポップアップで設定したテキストを表示してくれる属性でです。

alt属性

alt属性の例
alt属性は画像に設定すると、画像の読み込みに失敗した際に表示する代替のテキストです。

両方とも設定した方がよりユーザーライクであり、SEOライクであると言われているこれらの属性ですが、title属性・alt属性で設定したテキストに改行を入れたいという場合もあるかと思います。

改行タグのbrや改行コードの「\n」などを入れてみた方もいるかと思いますが、title属性やalt属性では改行タグや改行コードは効きず困ってしまします。

そこで今回の記事ではHTMLのtitle属性やalt属性のテキストを改行する方法をご紹介します。

HTMLのtitle属性やalt属性のテキストに改行を入れる方法

HTMLのtitle属性やalt属性のテキストに改行を入れる方法は複数あります。順番にご紹介します。
(いずれも今回MacのGoogle Chromeで確認しております)

普通に改行する

なんと1つ目の方法はHTMLの文章中で普通に改行するだけです。以下サンプルコードです。
※サンプルコードの結果の文章にマウスを持っていくと、ツールチップのようにtitle属性の文章が表示されます。

<p title="title
"></p>
<img alt="alt
">
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

いかがでしょうか?title属性はちゃんと改行されてツールチップが表示されますので、これでokのようですね。一方でimgタグのalt属性は普通に改行してもだめなようです。

実体参照の改行文字を入れてみる

次に実体参照の改行文字を入れてみましょう。以下のいずれかを使います。

 

&#13;&#10; &#13;
&#10; &#x0D;&#x0A;
&#x0D; &#x0A;

<p title="title&#13;&#10;"></p>
<img alt="alt&#13;&#10;">
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

実体参照の改行コードでもtitle属性は改行され、alt属性は改行されないようです。

JavaScriptで改行させてみる

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
</head>
<body>
<p id="title"></p>
<img id="img" src="test.jpeg">
<script>
document.getElementById("title").title = "title\n";
document.getElementById("img").setAttribute('alt', "alt\n");
</script>
</body>
</html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

JSで改行文字を入れた場合も同様に、title属性だけ改行され、alt属性は改行されない結果となります。

alt属性を改行させる

ではalt属性のテキストを改行させるにはどうしたらいいのでしょうか。

alt属性のテキストを改行させるにはCSSのwhite-spaceプロパティを使う必要があります。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<style>
img {
white-space: pre;
}
</style>
</head>
<body>
<p title="title&#13;&#10;"></p>
<img alt="alt&#13;&#10;">
</body>
</html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

いかがでしょうか。これまで改行されなかった、alt属性のテキストがようやく改行されました。

ちなみにwhite-spaceは要素内のスペースや改行の扱いを決めるプロパティで、「pre」を指定すると、行の折り返しは改行文字や改行タグが有効になる効果があります。