【HTML】name属性でタグの名前を指定して使う

HTML
書いてる人
あいりゅー

プログラミングを学びながら更新しています。
iPhone/iPad/Mac/Apple WatchなどのApple製品はこちらで主に更新しています。
麻雀の反省をひたすら掲載してるブログもやってます。

あいりゅーをフォローする

このページについて

このページではHTMLで使えるname属性の機能と使い方を解説しています。

name属性

nameはHTML要素に付与して使います。付与した名前を参照して、JavaScriptなどで使ったりします。nameを使う事ができるタグはbuttonタグ/fieldsetタグ/formタグ/iframeタグ/inputタグ/mapタグ/metaタグ/outputタグ/selectタグ/textareaタグで使う事ができます。

基本的には目印としての役割になりますが、一部のタグでは働き方が異なります。その辺りは個別で後で解説します。

name属性の書き方

nameは付与できるタグに対して書き、その要素だと分かるような名前を付けておきます。

<button name="button1">ボタン</button>

この使い方をするときはJavaScriptで後から色々と操作するときの目印としての役割が多いです。

formタグでのname属性

formタグで使う場合にはデータが送信されたときの参照用に使われます。JavaScriptで使える、formsプロパティを使ってname指定する時にこのformタグのname属性が役立ちます。

formのnameで情報を取得

一体何だと思われそうですが、左がHTMLを編集している画面で、右側がコンソールになります。まずtestというname属性を持つformがあります。(8~11行目)

次に、12行目以降でスクリプトを書きます。内容は変数(x)にforms.testの中身を代入するというものと、そのxをコンソールに出力するというものです。この段階では大雑把にtestを選択しているだけなのでform全部が代入されていて、コンソールにもその様子が出ています。

document.forms.test.test2

と書くと、画像の9行目の部分のみが取得できます。

iframeタグでのname属性

iframeタグで使うname属性は基本的にはJavaScriptでの参照用ではありますが、もう1つ機能があります。それはaタグでも書きましたが、target属性でリンク先を開く先として指定する事ができる機能です。

A.htmlとB.htmlの2つがあるとします。Aの中身は以下。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<a href="./testB.html" target="test">testB</a>
<iframe name="test" width="400" height="400"></iframe>
</body>
</html>

そしてBの中身は以下。

//testB.htmlの中身
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<p>testBの内容がiframe内に表示されます。</p>
</body>
</html>

この2つを作成した状態でA.htmlを開くとこのようになります。

A.htmlの実行前は何も表示されていない

そしてtestBをクリックすると、B.htmlが開きます。ただ上のコードで書いてある通り、B.htmlのtarget属性はtestという場所になっています。そしてtestはどこにあるのかというと、iframeタグのnameで設定されています。つまり「B.htmlをtestという名前を持つiframeタグで開く」という指定になります。

実行後がこちら。

B.htmlをiframeで実行すると中にBの内容が表示される

めでたくiframeタグで別のhtmlドキュメントを開く事ができました。

mapタグで使うname属性

mapタグで使う場合は画像とクリック用のマップを関連付けるために必要な属性となります。

画像を表示するのはimgタグですが、そのimgタグにusemap属性を付与します。そしてmapタグ側でnameを使い、usemap属性で与えた名前と同じ名前を付与します。サンプルはこうなります。

<img src="画像URL" usemap="#map1">
<map name="map1">
</map>

注意点として、imgタグのusemap属性では#が必要です。

metaタグで使うname属性

metaタグで使う場合はそのメタデータの名前という扱いになります。これらはすでに使える値や型が決まっているので全て掲載します。

application-nameページが表示している、webアプリケーションの名前
author文書の作者の名前を書きます。
<meta name="author" content="作者の名前">
description通称メタディスクリプションと言って、検索結果でタイトルの下に表示されている要約みたいな奴のこと
<meta name="description" content="表示テキスト">
generatorドキュメントの生成に使われているソフトウェアを書きますが、手書きページの場合は使いません。
<meta name="generator" content="生成ソフト">
keywordsページに関するキーワードをリスト化し、検索エンジンに伝える機能。
<meta name="keywords" content="キーワード1,キーワード2">
viewportビューポートといい、ユーザーのデバイスの表示可能領域に関する機能です。よく言われているレスポンシブ化するにはこのビューポートで適切にコンテンツが表示されるように工夫する必要があります。
<meta name="viewport" content="width=device-width,initial-scale=1.0">

viewportは今となっては必ず使われていると言ってもいいんですが、keywordsなんかは適切な利用がなされなかった過去の経緯から今となっては無視に近い扱いを受けているとか受けていないとか。なのでこれを乱用したからと言ってSEO対策が完璧になるなんてことはありません。

まとめ

nameは付与するタグによってその効果が変わってきます。基本的にはJavaScriptで操作するための目印というポジションですが、中にはタグ同士を関連付けるために必須だったりします。それぞれ適した使い方をしましょう。

HTMLの基礎
HTMLってどんな言語?書き方やHTMLファイルの作成方法などを解説。
HTMLタグで押さえておきたいポイント3選
HTMLタグを使う上で必ず押さえておいてほしいポイント3つの解説です。
HTMLタグと属性一覧
HTMLタグと属性の一覧です。
tableタグ生成ページ
tableタグの基本形を生成できるページです。
ulタグ・olタグ生成ページ
ulタグolタグの基本形を生成できるページです。
タイトルとURLをコピーしました