Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > CSS
CSS Forum d'entraide sur l'utilisation des feuilles de style CSS. Avant de poster : Cours CSS, FAQ CSS, Galerie CSS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/11/2011, 00h57   #1
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Par défaut Comment forcer la largeur d'un <ul>

Bonjour à tous,
Je me bat pour trouver comment faire pour que la largeur d'un <ul> d'adapte en fonction des <li> qu'il contient.

En fait je pense que la meilleur facon de m'aider c'est d'avoir firefox avec firebug.

Mon menu est fait grace à fishmenu http://users.tpg.com.au/j_birch/plug...rfish/#sample4

Voci l'url de mon site
http://www.tricosachic.ch/category.php?id_category=15
et un extrait du code
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<ul class="sf-menu dhtml level1 sf-js-enabled">
<li class="">
<li class="">
<li class="">
<li class="sfHover sf-breadcrumb">
<a class="selected sf-with-ul" title="dxfg" href="http://www.tricosachic.ch/category.php?id_category=4">
<ul class="level2">
<li class="">
<li class="last selected ">
</ul>
</li>
<li class="">
<li class="last">
</ul>
Donc le css des <ul> et les <li> sont quasi défini avec fishmenu.

Cependant je souhaite l'adapter pour que les sous-menu du deuxième soit aussi horizontaux.

Cependant le <ul class="level2"> sadapte en fonction de son <li> parent et j'aimerais qui s'élargissent en fonction de ses <li> enfant

J'ai remarqué qui si dans mon <ul class="level2"> je luis mets une largeur de 250px, tous mes <li> enafants sont bien horizontaux.
Cependant je ne souhaite pas que <ul class="level2"> ait une largeur fixe, car je pourrai avoir 7-8-9-12 sous-menu. Donc forcément certain seront en buttée avec le 250px de largeur.

Comment puis-je définir <ul class="level2"> pour qu'il sadapte en fonction de ses <li> enfants?

Vous voyez?
Merci
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 21h39   #2
Membre Expert
 
Avatar de rotrevrep
 
Homme yannick inizan
Secrétaire d'état à la procrastination
Inscription : février 2011
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme yannick inizan
Âge : 25
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Secrétaire d'état à la procrastination
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 304
Points : 1 118
Points : 1 118
Envoyer un message via MSN à rotrevrep Envoyer un message via Skype™ à rotrevrep
ceci fonctionne mais demande de connaitre un peu le javascript :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<script>
var uls = document.getElementsByTagName('ul');
for(var i=0;i<uls.length;i++)
{
if(uls[i].getAttribute('class')=='level2')
 {
var lis = uls[i].getElementsByTagName('li');
var max = lis[0].innerHTML.length;
for(var j=1;j<lis.length;j++){if(lis[i].innerHTML.length>lis[i-1].innerHTML.length)max=lis[i].innerHTML.length;}
max = 9*max;
uls[i].style.width=max+'px';
 }
break;
}
 
</script>
on recherche la balise ul désirée et sa largeur sera celle de la balise li la plus grande !

si quelqu'un a une meilleur idée...
rotrevrep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 18h25   #3
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Hello,
je te remercie pour ta réponse,
C'est super cool, mais ca marche que partiellement.
Pour les deux premiers, c'est ok, mais les deux suivant, les sous-menu sont l'undessus l'autre.

Tu peux regardé ici ce que ca donne:
http://www.tricosachic.ch/

Merci pour tes lumières
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 18h33   #4
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
En fait, je crois que le ul.level2, ne prend pas la largeur des li. Je vais encore chercher.
Peut etre que c'est aussi un problème de css
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 19h29   #5
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Code :
1
2
3
ul, li{
    display: inline-block;
}
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2011, 19h42   #6
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Bonjour à tous,
je suis toujours bloqué avec mon problème,

le faite de mettre inline-block au ul et li ne résou pas mon problème.

En fait il faudrait que le ul du sous-menu qui contient les li, soit forcé à prendre la largeur de ses derniers qui sont en float:left
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h49.


 
 
 
 
Partenaires

Hébergement Web