質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

4回答

5577閲覧

[html] span と p の使い分けがわからん

N---------

総合スコア46

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2019/05/11 17:32

w3cに以下のようなサンプルコードがありました(わかりやすくするため、一部省略しました)。

html

1<article> 2 3 <header> 4 <!-- 記事タイトルとか --> 5 </header> 6 7 <div> 8 <!-- 記事本文 --> 9 </div> 10 11 <footer> 12 <p>Posted <time itemprop="datePublished" datetime="2009-10-10">Thursday</time>.</p> 13 </footer> 14 15</article>

上のコードの

html

1<p>Posted <time itemprop="datePublished" datetime="2009-10-10">Thursday</time>.</p>

というところは、

html

1<span>Posted <time itemprop="datePublished" datetime="2009-10-10">Thursday</time>.</span>

でもよくないですか(つまり、pタグではなくspanタグで囲んでもよくね)?

htmlにあまり詳しくないので、なぜ段落を表すpタグを、段落でないところでつかってるのかわからないのですが、何か理由があったり?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

think49

2019/05/11 22:07

どういう意図で<span>で良いと考えたのでしょう。「一文しかないので<p>は不要ではないですか」というのなら、まだわかりますが、<span>に置き換える意図が分かりません。
guest

回答4

0

ベストアンサー

段落を表すpタグを、段落でないところでつかってるのかわからない

HTMLにおけるpタグの意味は「段落」とされていますが、日本語で言うところの厳密な意味での段落(本文テキストの段落等)だけでなく、
実際のところ**「テキストのかたまり」という程度のふんわりした意味付け**で各所で使われます。
「Posted Tursday」というテキストは、その前後のテキストコンテンツの一部ではなく、
それ自体がひとつの意味をもつテキストの固まりですので、「(前後の文章の一部ではなく)ひとつのテキストの固まりですよ」という意味でp要素でマークアップしています。
「投稿日」という意味合いのHTML要素があればよいのですがそういうHTML要素はありませんので、
汎用的なテキストブロックを意味するp要素が選択されていると思ってください。

それ以外のマークアップ案としてdiv要素・span要素といったものが候補にあがるかと思いますが、
div要素・span要素というもは文書構造的な意味を持たない汎用的なグルーピング要素ですので、
divやspanでマークアップしてもそのことにより文書構造に何らかの意味をもたせることは出来ません。
これらは文書の意味ではなく、レイアウト・デザインといった見た目をCSSで再現する際に必要に応じて
使用するものなので、文書に構造的な意味付けを行うセマンティック対応という観点では
この場合望ましい選択ではありません。

なお、div要素とspan要素はいずれも意味を持たない範囲指定するためだけの要素ですが、
div要素はブロック単位での範囲指定、span要素はテキストの範囲指定をするためのものになります。

投稿2019/05/12 03:02

aKusano

総合スコア3763

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

N---------

2019/05/13 17:25

なるほど!回答ありです!
guest

0

HTMLタグの意味についてはMDNのHTML要素リファレンスに
詳細が記載されていますので、こちらの熟読をオススメします。
https://developer.mozilla.org/ja/docs/Web/HTML/Element

段落を辞書で調べると「長い文章の中の、一つの主題をもってまとまった部分。」と
書かれているため、1行でも段落になります。

span

記述コンテンツの汎用的な行内コンテナーであり、何かを表すものではありません。

p

テキストの段落を表します。

投稿2019/05/12 04:11

yasutomi

総合スコア2937

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

CSSによる装飾がない場合、<span>だと、<footer>内に何か別の要素を追加した際に、横並びで一つの文字列として表示されます。

html

1Posted <time itemprop="datePublished" datetime="2009-10-10">Thursday</time>.

という部分の左右には何も含めたくない、上下にわけて別ブロックとさせたいという理由かと思います。

ブロックレベル要素とインライン要素の違いになるので、このあたりを調べてみてください。

投稿2019/05/11 17:50

Eggpan

総合スコア2727

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

HTMLタグには、「ここに表示するテキスト(等)は、このような意味合いですよ」と、宣言するためなので、<p>の代わりに<span>でも<div>でも、何も無くても、用途によって使い分ければ良いです。

このあたりをキチンと使い分ける事が、最近のセマンティック対応であるHTML5の特徴のひとつです。

投稿2019/05/12 00:15

yoshinavi

総合スコア3523

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問