5568 sujets

Sémantique web et HTML

Bonjour, me question concerne la fusion de cellules. Je vous rassure il s'agit bien de données tabulaires.
Voila mon problème.

Quand le nombre total de cellules dans une ligne est paire, il est facile de fusionner les cellules par exemple :
<tr><td>1</td><td>2</td><td>3</td><td>4</td></tr>
<tr><td colspan="2">1</td><td colspan="2">2</td></tr>

Comment faire quand certaines lignes sont soit paires ou impaires ?
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>1</td><td>2</td></tr>

Sachant qu'une valeur à virgule n'est pas possible ?

Merci d'avance pour votre aide.
Modifié par olivier56 (21 Jun 2010 - 16:00)
Si tu veux que les deux cellules d'en-dessous aient la même taille et que la séparation de la deuxième ligne tombe au milieu de la cellule n°2 de la première ligne, ce n'est pas possible en HTML. Il faut obligatoirement une cellule avec colspan=2 et l'autre avec colspan=1 donc deux cellules de tailleségale est impossible.

Les données que tu cherches à afficher ainsi sont-elles vraiment des données tabulaires ? Je suspecte fortement que non. De quoi s'agit-il réellement ? Un arbre ? Une pyramide ?
Comme dit Quentin, il faudrait voir dans le contexte.

Sinon si c'est juste une colonne où il n'y a pas de valeur :

<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>1</td><td>2</td></tr>


...On utilise une cellule vide mais pour des raisons d'accessibilité, on la remplira avec un tiret.

<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>1</td><td>2</td><td>–</td></tr>


P.S. il faut utiliser les balises [ code] pour formater ton texte sur ce forum. Smiley cligne
Modifié par Patidou (23 Feb 2010 - 12:59)
Merci pour vos réponses. Smiley biggrin

Il s'agit bien de données tabulaires...
Je présente la disponibilité de chaines TV sélectionnées par rapport aux bouquets payants correspondants.

Axe horizontal : une liste de bouquets tv (de 0 à X)
Axe vertical : une liste de chaines (de 1 à 25)

ex :

<tr>
<th>cine fx</th>
<td>ab cine chic (11,99)</td>
<td>tout ab (9,99)</td>
<td>ab cine choc (4,99)</td>
</tr>
<tr>
<th>berbere tv</th>
<td colspan="4">indisponible</td>
</tr>

Etant donné que mes tableaux sont dynamiques, je ne peux pas m'amuser à créer des cellules vides pour tous les cas possibles. D'autant que le résultat n'est pas très propre.

L'autre solution reviendrait à faire un seul TD avec des "sous cellules" faites avec des SPAN mais mon tableau n'est plus consultable sans CSS...
Bonjour,

Je n'arrive pas à lire et comprendre ce tableau. J'imagine que ça doit être un tableau «complexe» qui mélange un tableau «normal» avec une certaine représentation graphique d'informations. En tout cas je ne le comprends pas.

La solution est sans doute de faire un tableau moins complexe et plus compréhensible, de séparer en deux tableaux (ou un tableau et un affichage d'information non tabulaire). Bref, de revoir la rédaction ou l'ergonomie du machin.

Enfin, s'il s'agit juste de coder ce que l'image représente (et tant pis si c'est pas un tableau compréhensible), je ne vois pas de nécessité d'utiliser le moindre colspan. Pas de cellules à fusionner dans cette image.
a écrit :
Je présente la disponibilité de chaines TV sélectionnées par rapport aux bouquets payants correspondants.

Axe horizontal : une liste de bouquets tv (de 0 à X)
Axe vertical : une liste de chaines (de 1 à 25)

Dans ce cas, inutile de faire des tableaux complexes, ni même besoin de fusionner des cellules. On a un simple tableau régulier.

Je m'explique : étant donné une chaîne X et un abonnement Y, l'information est forcément présente et unique : disponible ou pas. Donc chaque cellule est distingable et possède son état propre, je ne vois aucun recoupement nulle part.
L'aperçu ici constitue mon tableau en html en l'état, il ne s'agit pas d'une maquette...

Il y a 2 cellules maximum dans la colonne des bouquets dans cet exemple.
La cellule de la chaine "action" ou "cnn" est un colspan="2"
Le tableau n'est pas simple dans la mesure ou une chaine, si elle est présente dans un bouquet, elle l'est dans X bouquet(s).

Un exemple pour un autre opérateur :
- la chaine "Cine fx" est dans 4 bouquets.
- la chaine "action" est présente dans 3 bouquets
- la chaine "cnn" n'est présente dans aucun bouquet
Modifié par olivier56 (23 Feb 2010 - 15:06)
Administrateur
Bonjour,

pourquoi une cellule par bouquet dans ce cas ? Ce sont le(s) bouquet(s) dans une colonne et basta Smiley smile
Parce que pour le moment, par bouquet j'ai un nom et un prix...

Imagines donc 5 bouquets : 10 lignes (plus des marges) multiplier par 25 chaînes...

ça fait beaucoup de scroll, sachant que j'ai un menu gauche à 2 niveaux : opérateurs internet adsl, fibre... J'ai déjà simplifié la page qui était à la base avec trois tableaux mais c'est impossible de vraiment comparer pour l'utilisateur.
Voici un exemple plein format. Il n'y a pas le maximum de chaine et les bouquets concernés ne dépassent pas le nombre de 2...

C'est déjà dur à consulter.

upload/27280-exemple-sf.png
Bon. Mettons les choses aux propres.

Il y a deux erreurs ici:
1. Tu as mélangé deux tableaux différents (dont l'un n'est pas nécessairement un tableau d'ailleurs) en un. Du coup quand tu prends les informations ligne par ligne, pour la première ligne certains en-têtes de colonne ne correspondent pas aux contenus de la cellule, et pour les lignes suivantes même topo (mais pour les en-têtes restants). C'est un problème de rédaction, causé par la tentation de tout mettre en un seul «graphique» ou «tableau» compact, de sorte qu'au final personne n'y comprends rien sauf le rédacteur.

2. Tu as une colonne intitulée «Bouquets». Pour certaines lignes, tu as l'informations «Pas de
bouquet», représentée par une icone (j'espère que c'est une <img alt="Pas de bouquet"> ou quelque chose de correspondant, parce que sinon il faudrait d'urgence apprendre le HTML Smiley cligne ). Pour d'autres lignes, tu veux afficher deux bouquets. L'erreur, c'est que pour afficher deux bouquets tu fais deux TD, alors que les deux éléments sont dans la même colonne! Tu aurais d'ailleurs pu choisir de les afficher l'un sous l'autre plutôt que l'un à côté de l'autre. Bref, tes deux TD, ou ton <td colspan="2"> dans le cas inverse, n'a aucun sens.

Le deuxième point est un détail. Le premier point ci-dessus est par contre essentiel. Il faudrait séparer tes informations. Tu pourrais avoir un contenu en trois partie (chaque partie pouvant être un tableau si c'est pertinent... ou pas un tableau):
1. Les bouquets disponibles = liste des bouquets avec pour chaque bouquet son prix et la liste des chaines incluses. Tu peux aussi avoir un descriptif commercial ou autres informations. Ça peut se présenter comme un tableau, avec un bouquet par ligne et une information (nom, prix, liste des chaines...) par colonne.
2. Les chaines individuelles = liste de toutes les chaines. Même chose, ça peut se présenter comme un tableau.
3. Votre sélection = un récapitulatif de la sélection faite par l'utilisateur dans les deux sections précédentes (à priori ça ne sera pas un tableau).

Je ne connais pas le projet donc ce découpage du contenu n'est peut-être pas correct ou pas optimal. Mais à ce que je vois on est sur une page dont l'utilisabilité est critique, et à l'heure actuelle c'est vraiment pas ça. Verdict: on prend un papier et un crayon, et on essaye de mieux concevoir ça (avant de le coder). Smiley smile
Florent V. a écrit :
(...) j'espère que c'est une <img alt="Pas de bouquet"> ou quelque chose de correspondant, parce que sinon il faudrait d'urgence apprendre le HTML


J'aurais peut être du me présenter un peu d'abord...
Je suis webdesigner depuis 10 ans et formé au xhtml, css et accessibilité depuis 2003.
Actuellement je travaille pour un site internet grand public. Smiley cligne


Je viens de trouver la solution... Je vais utiliser le même principe que pour les chaînes incluses : l'icône qui indique la disponibilité de la chaîne affiche un bloc qui apparait en premier plan.

En tous cas, merci à tout le monde. C'est en discutant avec vous que j'ai trouvé !

Je vous enverrais le lien quand j'aurais fini.