Comme la question l'indique, si j'ai du texte que je souhaite ajouter dans le HTML, quand dois-je utiliser <p>
et quand dois-je l'utiliser <span>
?
Vous devez garder à l'esprit que le HTML est destiné à DÉCRIRE le contenu qu'il contient.
Donc, si vous souhaitez transmettre un paragraphe, faites-le.
Votre comparaison n'est pas tout à fait juste, cependant. La comparaison la plus directe serait
Quand utiliser un
<div>
au lieu d'un<p>
?
car les deux sont des éléments de niveau bloc.
A <span>
est en ligne, un peu comme une ancre ( <a>
) <strong>
,, accentuation ( <em>
), etc., alors gardez à l'esprit que par sa nature par défaut à la fois en html et en écriture naturelle, un paragraphe provoquera une coupure avant et après lui-même, comme un <div>
.
Parfois, lorsque vous stylisez des choses - des choses en ligne - a <span>
est génial pour vous donner quelque chose à «accrocher» le css, mais c'est autrement une balise vide sans signification sémantique ou stylistique.
p
peut ne pas nécessairement être stylé avec des sauts de ligne environnants, par exemple, il pourrait être suivi d'un symbole de pilcrow en ligne . Les termes «en ligne» et «bloquer» ne signifient rien non plus pour les utilisateurs aveugles. Faites plutôt la distinction entre le contenu de flux et le contenu de phrasé (voir ce lien ).p
surspan
. Sur les paragraphes, le remplissage affecte chaque ligne (bloc de texte), tandis que sur span, il n'affecte que la première ligne.Sémantiquement, vous utilisez des
<p>
balises pour indiquer les paragraphes.<span>
est utilisé pour appliquer un style et / ou des classes CSS à une section arbitraire de texte et d'éléments en ligne.la source
La
<p>
balise est unp
aragraph, et en tant que tel, c'est un élément de bloc ( tel quel , par exemple,h1
etdiv
), alors quespan
c'est un élément en ligne (comme, par exemple,b
eta
)Les éléments de bloc par défaut créent des espaces au-dessus et en dessous d'eux-mêmes, et rien ne peut être aligné à côté d'eux, sauf si vous leur
float
attribuez un attribut.Les éléments en ligne traitent des étendues de texte à l'intérieur d'un paragraphe. Ils n'ont généralement pas de marges et, en tant que tels, vous ne pouvez pas, par exemple,
width
leur attribuer un.la source
Span est complètement non sémantique. Il n'a aucun sens et ne sert que d'élément aux effets cosmétiques.
Les paragraphes ont une signification sémantique - ils indiquent à une machine (comme un navigateur ou un lecteur d'écran) que le contenu qu'ils encapsulent est un bloc de texte et a la même signification qu'un paragraphe de texte dans un livre.
la source
Sémantiquement parlant, ap est une balise de paragraphe et doit être utilisée pour formater un paragraphe de texte. Un span est un changement de formatage en ligne qui n'est pas géré sémantiquement.
la source
Une étendue est un élément de mise en forme en ligne qui n'a PAS de saut de ligne au-dessus ou en dessous.
Un p est un élément de bloc qui A un saut de ligne implicite au-dessus et au-dessous.
http://w3schools.com/tags/default.asp
la source
Une explication pratique: par défaut,
<p> </p>
ajoutera des sauts de ligne avant et après le texte inclus (cela crée donc un paragraphe).<span>
ne fait pas cela, c'est pourquoi il est appelé inline .la source
La balise p désigne un élément de paragraphe. Il a des marges / rembourrage qui lui sont appliqués. Un span est une balise en ligne sans style. Une différence importante est que p est un élément de bloc lorsque la travée est en ligne, ce qui signifie qu'il
<p>Hi</p><p>There</p>
apparaît sur différentes lignes lorsqu'il<span>Hi</span><span>There</span>
s'enroule côte à côte.la source
Lorsque nous utilisons du texte normal à ce moment-là, nous voulons une
<p>
balise. Lorsque nous utilisons du texte normal avec des effets à ce moment-là, nous voulons une<span>
balisela source
<span> est une balise en ligne, une <p> est une balise de bloc, utilisée pour les paragraphes. Les navigateurs afficheront une ligne vide sous un paragraphe, tandis que les <span> seront rendus sur la même ligne.
la source
La balise est un élément de niveau bloc, mais la balise est un élément en ligne. Normalement, nous utilisons la balise span pour styliser à l'intérieur des éléments de bloc, mais vous n'avez pas besoin d'utiliser la balise span pour le style en ligne. convertir un élément de bloc en élément en ligne à l'aide de "display: inline"
la source
p { float: left; margin: 0; }
Aucun espacement ne sera autour, il ressemble à la portée.
la source