Div et span

Résolu/Fermé
MrGuardian_59 - 7 nov. 2013 à 12:10
 MrGuardian_59 - 9 nov. 2013 à 10:29
Bonjour,
Mon problème est au niveau de l'utilisation de div et span.

HTML:
<form>
<table>
<tr>
<td class="rose"><label><div class="text_centre">Quantité</div></label></td>
</tr>
</table>
</form>

CSS:
.text_centre {
text-align: center;
}

Pour utiliser la class="text_centre" en CSS, si j'utilise <span> cela ne fonctionne pas alors que en utilisant <div> oui, pourtant d'après moi la bonne "écriture" est avec <span>.
Puisque <div> est de type bloc et <span> de type inline, <span> conviendrait au formulaire.

Ce n'est pas vraiment une solution que je veux (avec <div> ça fonctionne) mais une explication.

Merci à vous de m'éclairer.

A voir également:

4 réponses

inspiring Messages postés 1813 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 31 décembre 2018 265
7 nov. 2013 à 12:14
les span sont de type inline donc un alignement center ne fonctionne pas car il n'y à pas de largeur (width) supérieure au contenu. par defaut, un contenu de span est toujours au centre de celle-ci.
pour généré le meme comportement que pour une div, il faut lui attribué la propriété display:inline-block
ou block, là ca devient identique à une <div>
0
MrGuardian_59
7 nov. 2013 à 19:04
Je te remercie de ta réponse, c'est plus clair maintenant.
Est-il exact de mettre un div là où je l'ai mis ou faut t'il que je mets un span et que je lui attribut la propriété css inline-block ?
0
Salut,

pour l'exactitude les règles à respecter sont que l'élément HTML corresponde à son contenu et soit correctement renseigné par ses attributs. Cela en vue du référencement naturel. Div ou span n'étant pas des éléments sémantiques on peut les utiliser où on veut.
L'autre règle absolue est que ça fasse bien ce que l'on veut, que l'affichage soit correct suivant les navigateurs.


Par contre je ne dirais pas la même chose de l'utilisation de votre balise table et label.
Pour table elle ne doit en aucun cas servir à la mise en page sauf pour des données tabulaires.
Une table d'une case ? à quoi cela peut il servir, utilisez un élément container de type div ou même pas du tout d'élément container(sauf bien sûr si vous comptez rajouter des cellules dans votre tableau et que ce sont bien des données tabulaires UNIQUEMENT, ne tenez pas compte de cette remarque).
label (étiquette en français) est utilisé pour décrire un champ de saisie ou d'entrée(input) d'un formulaire.

Je ne saurais trop vous recommander de lire au moins une fois la description et la signification sémantique et de mise en page des balises que vous employez =>@Google.

Sur le site du consortium web qui fait les règles d'internet par exemple(mais vous pouvez trouver ailleurs les mêmes descriptions en français)
http://www.w3schools.com/tags/tag_label.asp

Pour votre autre question div et span

http://www.w3schools.com/tags/tag_label.asp
span semble donc être utilisé pour déterminer un élément textuel.
http://www.w3schools.com/tags/tag_div.asp
div (de divide) est une partie ou section de la page, ce qui revient à peu près à tout.

Techniquement leur seule différence est néanmoins que l'un soit inline et l'autre block mais CSS permet de changer cela.
0
inspiring Messages postés 1813 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 31 décembre 2018 265
8 nov. 2013 à 09:29
Pas de contrainte au niveau de l'utilisation d'une div dans un tableau, je ne crois pas que ce soit hors-standart.
La span est plutot intéressante pour ses propriété inline, comme pour mettre un mot d'une couleur différente dans une phrase d'une couleur différente ou utiliser des propriété de block lorsqu'une div ne peux pas etre utilisé (comme une div dans un H1 par exemple)
une div est reconnu comme block nativement, mais un span avec la propriété css display:block est toujours reconnu comme inline (natif des span) mais possédant les propriété d'un block.

<h1><div>...</div></h1> c'est pas bon

mais

<h1><span style="display:block;">...</span></h1> c'est bon
0
MrGuardian_59
9 nov. 2013 à 10:29
Merci à tous, je n'ai pas juste une ligne dans mon tableau c'était juste un exemple pour la question.
Sujet résolu.
A bientôt ;)
0