Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Menu en ligne de taille variable

35 réponses
Avatar
messian_nospam
Bonjour,

Un dessin vaut mieux qu'un long discours :

http://www.idjinn.com/img/menus-ex.gif

Je cherche à créer une zone de menus de largeur fixe mais pouvant
accueillir un nombre variable de menus (1, 2, 3, 4...) et que chacun se
répartissent dans la largeur disponible. Contrairement à mon exemple,
les titres seront évidemment de largeurs différentes...

Des pistes ?

--
Un moyen de garde pour vos enfants ?
http://www.easynounou.com

10 réponses

1 2 3 4
Avatar
Michael DENIS
Le Mon, 19 Nov 2007 08:59:38 +0100,
(JF Messian) écrivait:

Compter le nombre de caractères de chaque menu et faire la répartition
de la place en % du total des caractères?




Même réponse que pour l'autre poste :

Le site sera intégré avec un C.M.S... du coup le nombre de rubriques
peut varier... et je ne vois pas comment faire le lien entre les CSS et
le nombre de rubriques.



Avoir toutes les caractéristiques du style dans les CSS... sauf la
largeur qui serait directement dans la page avec style="width:..."?

--
Michaël DENIS
Avatar
messian_nospam
METIS wrote:

Olivier Miakinen wrote:
> Le 19/11/2007 09:48, je répondais à JF Messian :
>>
>> Dommage qu'il n'y ait pas un sélecteur « - » symétrique
>> du « + », ce qui permettrait de faire :
>
> Au risque de passer pour hérétique, il y a la solution
> d'une table avec des largeurs proportionnelles (1* dans
> le HTML).

==>J'ai pas osé le dire (ici!!(;o))))
Mais ça, ça le fait, tu peux ajouter des menus, la table ne
bouge pas, tant que la typo a la place...

<table width="750" border="0" cellspacing="0"
cellpadding="0">
<tr align="center">
<td>petit menu </td>
<td>tr&egrave;s grand menu </td>
<td>menu</td>
<td>tr&egrave;s tr&egrave;s grand menu </td>
<td>pouf...</td>
</tr>
</table>



Oui... tant que tu connais à l'avance le nombre de menu tout va bien....

--
Un moyen de garde pour vos enfants ?
http://www.easynounou.com
Avatar
Olivier Miakinen
Le 19/11/2007 18:11, JF Messian a écrit :
>
> Au risque de passer pour hérétique, il y a la solution
> d'une table avec des largeurs proportionnelles (1* dans
> le HTML).

==>J'ai pas osé le dire (ici!!(;o))))
Mais ça, ça le fait, tu peux ajouter des menus, la table ne
bouge pas, tant que la typo a la place...

<table width="750" border="0" cellspacing="0"
cellpadding="0">
<tr align="center">
<td>petit menu </td>
<td>tr&egrave;s grand menu </td>
<td>menu</td>
<td>tr&egrave;s tr&egrave;s grand menu </td>
<td>pouf...</td>
</tr>
</table>



Oui... tant que tu connais à l'avance le nombre de menu tout va bien....



Qu'est-ce que tu appelles « à l'avance » ? Dans cette hypothèse (avec ou
sans le « width="1*" ») lorsque tu génères le code correspondant à la
cellule numéro N, tu n'as pas besoin de savoir qu'il va y en avoir une
d'ordre N+1.
Avatar
messian_nospam
Olivier Miakinen <om+ wrote:

Qu'est-ce que tu appelles « à l'avance » ? Dans cette hypothèse (avec ou
sans le « width="1*" ») lorsque tu génères le code correspondant à la
cellule numéro N, tu n'as pas besoin de savoir qu'il va y en avoir une
d'ordre N+1.



OK. Je dois reprendre ça cette après midi.

Au final, pas d'autres moyens que par un tableau donc !
--
Un moyen de garde pour vos enfants ?
http://www.easynounou.com
Avatar
Stéphane Santon
Bonjour,

JF Messian a écrit :
Le site sera intégré avec un C.M.S... du coup le nombre de rubriques
peut varier... et je ne vois pas comment faire le lien entre les CSS et
le nombre de rubriques.



Si le site est géré par un CMS (son nom pourrait nous aider), le nombre
de rubriques, même s'il varie, est connu au moment de la génération de
la page.
Donc c'est possible de générer un style CSS dépendant du nombre de
menus.

--
Cordialement, Stéphane. *** Anti-Spam : ajouter [usenet] dans l'objet
BTS Electrotechnique, Pays Santon *** http://enselec.team-santonum.com
Loisirs, nature, technologie & le 17 *** http://www.team-santonum.com
Jeune Chambre Economique de Rochefort *** http://www.jce-rochefort.org
Avatar
Olivier Miakinen
Le 20/11/2007 09:41, JF Messian a écrit :

Au final, pas d'autres moyens que par un tableau donc !



Je n'en vois pas d'autre (ce qui ne veut pas dire qu'il n'en existe
pas), hormis bien sûr le JavaScript signalé par Stéphane (SAM).

En fait, la solution ne nécessite pas tant un tableau que la syntaxe
« width="1*" » inventée pour les tableaux. Si cette unité de longueur
était autorisée aussi pour les autres types d'éléments, ce serait
parfait. Peut-être en CSS3 ? (pas regardé)
Avatar
Téo Path
Michael DENIS wrote:

Le Sun, 18 Nov 2007 18:39:32 +0100,
(JF Messian) écrivait:

Des pistes ?



Compter le nombre de caractères de chaque menu et faire la répartition
de la place en % du total des caractères?




Même réponse que pour l'autre poste :

Le site sera intégré avec un C.M.S... du coup le nombre de rubriques
peut varier... et je ne vois pas comment faire le lien entre les CSS et
le nombre de rubriques.



Il suffit de générer le style :
#menu li { width: <?php echo (100/$nombre_de_menus);?>%; }

dans le "head" de la page

--
Teo Path
http://www.osteopathe-lille.com
http://www.do-annu.com
Avatar
Olivier Miakinen
Le 20/11/2007 11:09, Téo Path a écrit :

Le site sera intégré avec un C.M.S... du coup le nombre de rubriques
peut varier... et je ne vois pas comment faire le lien entre les CSS et
le nombre de rubriques.



Il suffit de générer le style :
#menu li { width: <?php echo (100/$nombre_de_menus);?>%; }

dans le "head" de la page



C'est bien joli, mais s'il ne connaît pas le nombre de menus au moment
où il écrit le premier d'entre eux, à fortiori il ne peut pas connaître
ce nombre ou moment d'écrire le <head>.
Avatar
SAM
JF Messian a écrit :
Olivier Miakinen <om+ wrote:

Qu'est-ce que tu appelles « à l'avance » ? Dans cette hypothèse (avec ou
sans le « width="1*" ») lorsque tu génères le code correspondant à la
cellule numéro N, tu n'as pas besoin de savoir qu'il va y en avoir une
d'ordre N+1.



OK. Je dois reprendre ça cette après midi.

Au final, pas d'autres moyens que par un tableau donc !



ben si,
au fur et à mesure de l'écriture du menu tu comptes combien il y en a
puis à la suite tu insères une css pour fixer le width les LI du menu

Bon, pas joli joli la css au milieu du html mébon

sinon, peut-être les menus sont déjà connus avant le head de la page ?
et alors la css de correction y est introduite.


Sinon, oui le tableau, mais il devrait suffire de donner
- au UL du menu le display table
- et à ses LI le display cellule

--
sm
Avatar
Olivier Miakinen
Le 20/11/2007 11:19, SAM a écrit :

au fur et à mesure de l'écriture du menu tu comptes combien il y en a
puis à la suite tu insères une css pour fixer le width les LI du menu

Bon, pas joli joli la css au milieu du html mébon



Il y a surtout que c'est non conforme, et donc que tu n'as pas plus
de garantie de le voir fonctionner qu'avec un « width="1*" » dans un
élément LI !

Pour mémoire, les éléments LINK et STYLE ne sont autorisés que dans
l'élément HEAD.

Sinon, oui le tableau, mais il devrait suffire de donner
- au UL du menu le display table
- et à ses LI le display cellule



Oui, ça cela pourrait fonctionner.
1 2 3 4