Bonjour,
Voici un petit problème de débutant. J'espère avoir posté au bon endroit. J'ai cherché mais je formule peut être mal ma recherche.

Dans une page php j'ai une boite dans laquelle j'affiche soit une news soit des liens.
Sous cette boîte, j'ai une liste constituée de 1, 2 ou 3 liens qui me permettent respectivement quand ils sont aux nombres de 3 de:
revenir à la news précédente
revenir en haut de ma boite
allez à la news suivante

Les liens suivant et précédent peuvent être absent.

d'où ma première question:
doit-on et peut-on utiliser une balise non remplie? Est-ce correct ci-dessous?
ex:
<ul>
<li></li>
<li><a href="#top" title="haut">haut</a></li>
<li></li>
</ul>


j'ai une 2ème question si la réponse est affirmative à la première:
En CSS, sous firefox et ie, la largeur(width) des balises <li></li>(non renseignée) n'est pas respecté sous firefox même avec l'attribut min-width.
Comment faire alors?

Je vous remercie par avance de vos réponse. Merci. Smiley biggrin
Modifié par 6Sonic (30 Sep 2005 - 21:57)
Modérateur
Pour répondre à la première question, pourquoi ne pas générer uniquement les li nécessaires via PHP ? Une simple condition IF ? C'est une variable PHP que tu insère dans le li ? Si la variable est vide, ne génère tout simplement pas le li.
Bonjour.

Je crois que :
<li></li>
n'est pas valide.

Par contre :
<li>&nbsp;</li>
l'est.

mais perso, je pense comme l'avis précédent : ne génère pas le li si tu n'en as pas besoin, a dot it's all.
Administrateur
Disons qu'au sens "validation W3C", une liste vide ne pose pas de soucis.
Mais c'est vrai qu'il vaudrait mieux éviter d'avoir des éléments vides (avec ou sans espace insécable).
Merkel a tout à fait raison. L'idéal, et ce qui semble le plus intuitif, est de générer uniquement les <li> nécessaires. Imaginons par exemple que chacune de tes news soit identifiée par une variable $news_id.

Je suppose que les liens "News précédente" et "News suivante" seront respectivement absents lorsqu'il s'agira de la première ou de la dernière brève. Dans ce cas, tu peux faire une requête pour connaître $min_id et $max_id.

Ton code s'écrira alors de la façon suivante :

<ul>
<?php if ($news_id != $min_id) echo "<li><a href=\"...\" title=\"News précédente\">News précédente</a></li>"; ?>
<li><a href="#top" title="haut">haut</a></li>
<?php if ($news_id != $max_id) echo "<li><a href=\"...\" title=\"News suivante\">News suivante</a></li>"; ?>
</ul>


Je ne sais pas si cela correspond exactement à ce que tu veux obtenir, mais je pense cette idée générale peut t'aider.
Le coup des éléments de liste vides est bête aussi dans le sens que les lecteurs d'écran comme jaws indiquent, au début de la liste, "liste non ordonnée de x éléments".
Ainsi, c'est toujours embêtant de voir seulement 2 éléments lorsqu'on attend 3. Soit jaws lira une "puce" de plus, ou soit alors il ne dira rien du tout à part "fin de liste"
et on peut alors se demander où est le troisième... voilà c'est tout.
Merci de vos réponses. C'est très clair.
Je ne générais pas les <li> au début. Ca m'a traversé l'esprit par fainéantise, je dois l'admettre et j'ai oublier tout bonnement la definition d'une liste, surtout lorsqu'il ne s'agit que d'un seul lien pour remonter au contenu.
le code ci dessous n'a aucun sens. Enfin si j'ai bien compris..

<ul>
<li><a href="#top">haut</a></li>
</ul>

Merci encore de vos réponse, j'ai failli m'éloigner du chemin Smiley murf