[DIV] Problème de div avec des vignettes

Problème de div avec des vignettes [DIV] - HTML/CSS - Programmation

Marsh Posté le 20-05-2003 à 12:12:36    

Voilà j'ai un petit problème avec un site de smiley concernant la mise en page.
Voici le site en question -> http://www.mangaclub.ch/urd/zonesmiley/default.asp
 
Le problème actuel:
Parfois, au lieu de se mettre sur une seule ligne modifiable en hauteur, des div vignette (c'est à dire cadre saumon) s'imbriquent les unes aux autres.
 
Solution testée:
Fixer la taille du div. Le problème est que 1. c'est moche (accessoire) 2. l'image a une taille variable, et Moz le gère mal.
 
J'ai donc besoin de vos avis éclairés et experts, je ne sais pas quoi faire pour remplacer le patée que j'ai pour l'instant. Merci d'avance pour vos suggestions  :jap:


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 20-05-2003 à 12:12:36   

Reply

Marsh Posté le 20-05-2003 à 13:44:14    

Ouais on touche là aux limites des CSS dans leurs spécifications actuelles.
 
Les flottants c'est bien quand on a 2-3 blocs à placer cote à cote mais quand il y en a beaucoup et qu'ils ont des hauteurs différentes ça devient vite le bazard.
 
Une solution pourrait être d'utiliser :
 

display: inline-block;


 
(et donc virer le float)
 
inline-block, ça revient à aligner des blocs sur une ligne de texte comme du texte normal.
 
Ca fait partie des CSS 2.1 mais vu qu'elles ne sont pas encore des recommendations "officielles", Mozilla ne supporte pas cette propriété autrement qu'avec :
 

display: -moz-inline-block;


 
Par contre IE 6 s'en sort très bien.
 
Donc la solution ultime et de déclarer les 2 :
 

display: inline-block;
display: -moz-inline-block;


 
 
 
Voilà sinon il y a la solution de faire un tableau, ou alors comme tu l'as dit, de fixer la hauteur (éventuellement, ajoute un display: table-cell; pour que le bloc s'agrandisse si le smiley a une taille supérieure à celle qui a été spécifiée)


Message édité par gm_superstar le 20-05-2003 à 13:44:51

---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 20-05-2003 à 14:15:04    

j'ai l'impression que le display: inline-block; incite chaque bloque à aller à la ligne (voir résultat actuel)
j'ai un peu tout essayé et trifouillé, mais rien n'amène de résultat convaincant  [:spamafote]


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 20-05-2003 à 15:34:49    

si jamais en attendant j'ai fixé la taille de la div, au pire j'en resterai à cette solution


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 20-05-2003 à 15:52:42    

Mouais effectivement ça foire avec inline-block; :/
 
Bon essaye de combiner les propriétés suivantes :
 

display: table-cell;
float: left;
height: ta_hauteur;


 
Le table-cell suffirait pour Mozilla, mais IE s'en fiche, d'où le float. Le height sert aussi à IE pour que les cellules aient toutes la même hauteur.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 20-05-2003 à 16:01:30    

si je mets comme ca:
 

Code :
  1. div.vignette {
  2.            display: table-cell;
  3.            float: left;
  4.            height: 120px;
  5.            text-align: center;
  6.            margin-right: 5px;
  7.            margin-bottom: 5px;
  8.            background-color: #FF9999;
  9.          }


sous ie pas de problème, la meme chose si j'enlève display:table-cell.
sous moz... il va pas à la ligne, donc tout sur une ligne et pas de marge.
je laisse le résultat avec cette classe css là pour que tu voies.


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 20-05-2003 à 17:01:22    

Ben table-cell ça fait en sorte que tes cellules s'alignent comme un tableau, donc pas de retour à la ligne :/ Il faut le faire soit même...
 
Donc le plus simple c'est effctivement de rester de rester avec les flottants et de définir une hauteur suffisante.
 
Il n'y a pas de solution parfaite à ce que tu veux faire malheureusement :/


Message édité par gm_superstar le 20-05-2003 à 17:01:46

---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 20-05-2003 à 17:04:29    

hum dommage.
je vais garder la solution du fixage de la hauteur.
Si l'on voulait faire en sorte qu'il spécifie la taille des images uniquement pour celles qui dépassent x, il faudrait utiliser des objets spécifiques je suppose?


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed