|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : février 2009 Messages : 197 ![]() |
Bonsoir,
![]() L'illustration ci-dessus représente le comportement d'une barre placée en haut d'une page. Selon la taille de la fenêtre, c'est la div B qui s'étire, les autres sont fixes. J'ai essayé plusieurs solutions mais sans résultat, le soucis c'est que les 2 div de droite viennent cacher la première div si la taille de l'écran est inférieur à la taille total de la div A + C + D. Pas facile de fixer 3 div... Code :
Code :
<div class="Bar"><div class="A"></div><div class="B"></div><div class="C"></div><div class="D"></div></div> |
||
|
|
00
|
|
|
#2 | ||
|
Membre régulier
![]() Étudiant en alternance Inscription : février 2010 Messages : 80 ![]() |
Bonjour,
je ne suis pas sur de comprendre le problème: tu veux éviter l'empilement des divs lorsque la largeur de ta barre < la largeur A+C+D? Si c'est le cas essaye tout simplement en mettant une largeur minimum à ton div englobant, ainsi il y aura toujours la place pour tes divs A, C et D... Dans le cas présent: Donc: Code :
__________________
"Il n'y a que deux façons d'avoir le dernier mot avec une femme. Le problème, c'est qu'aucune ne marche." Samuel Clemens |
||
|
|
00
|
|
|
#3 | ||
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
Au passage, tu peux aussi te passer du positionnement absolu à l'aide d'éléments flottants (et aussi la largeur minimum comme le préconise Patrice.H).
Ca implique juste une petite modification au niveau HTML : Code html :
<div class="Bar"><div class="A">A</div><div class="D">D</div><div class="C">C</div><div class="B"></div></div> Et le CSS : Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Inscription : février 2009 Messages : 197 ![]() |
Merci, c'est exactement de que je cherche à faire, sauf que ce code ne fonctionne pas sous IE, les div s'empile les unes sur les autres...
|
|
|
00
|
|
|
#5 |
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
Heu, tu réponds à qui ?
![]() De quelle version de IE tu parles (il y en a maintenant 4 différentes sur le marché ..) ? Tu as bien un DOCTYPE valide ? Tu as un exemple en ligne de ton résultat ? |
|
|
00
|
|
|
#6 | |
|
Membre régulier
![]() Inscription : février 2009 Messages : 197 ![]() |
Citation:
|
|
|
|
00
|
|
|
#7 |
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 460 ![]() |
Salut,
min-width n'est supporté qu'à partir d'IE7... Sinon pour la première solution (avec les position absolute), il manquerait une position:relative dans le style de div.Bar (pour que les div A,B,C et D soit placé selon div.Bar et non pas selon la page) et éventuellement un overflow:hidden (ou [B]auto) selon ce qu'on veut faire du contenu de B lorsqu'il est trop petit... a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|
00
|
|
|
#8 |
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
Il faut savoir que min-width n'est disponible qu'à partir de IE7, d'une part.
D'autre part, la valeur inherit pour la propriété height n'est pas fonctionnelle pour les versions antérieures à la 8. Quoi qu'il en soit, je n'ai pas ton problème avec IE7 (sauf la hauteur des divs) ni avec IE8. Pourrais-tu mettre tes codes HTML et CSS complets ? |
|
|
00
|
|
|
#9 | ||||
|
Membre régulier
![]() Inscription : février 2009 Messages : 197 ![]() |
Voila le code mais c'est plus le même que au début, celui-ci fonctionne plutôt bien mais ça bug sous ie6/5. De plus il y a un second pb avec ce code c'est que si je place une image avec un width=350 dans la div D ça block bien la div D à 370, sauf que c'est pas une image qu'il faut ici mais du texte d'ou la présence de la classe "Present".
Code :
Code :
|
||||
|
|
00
|
|
|
#10 | ||||
|
Membre régulier
![]() Inscription : février 2009 Messages : 197 ![]() |
Bonjour, voila une solution qui semble fonctionner sous IE8/7, Firefox, Safari, Chrome, Opéra, Netscape mais curieusement pas sur IE6, si vous avez une idée ça serait super simpa !
Code :
Code :
|
||||
|
|
00
|
|
|
#11 | ||
|
Membre régulier
![]() Étudiant en alternance Inscription : février 2010 Messages : 80 ![]() |
Ça va peut être passer pour du troll mais la solution la plus appropriée pour moi c'est:
Code :
__________________
"Il n'y a que deux façons d'avoir le dernier mot avec une femme. Le problème, c'est qu'aucune ne marche." Samuel Clemens |
||
|
|
00
|
|
|
#12 |
|
Membre régulier
![]() Inscription : février 2009 Messages : 197 ![]() |
Bonjour, c'est marrant j'ai été il y a pas longtemps dans un organisme, il tournait encore sous IE6 parce le service informatique n'effectuait pas les mises à jour et les téléchargements étaient bloqués
sisi ça existe... bref c'est plutôt la solution que je cherche.En fait j'ai remarqué que la combinaison position:absolute;left:..;right; ne semble pas être reconnu par ie6, la div disparait, autre pb apparent la barre ne prend pas en charge width:100%. |
|
|
00
|
|
|
#13 |
|
Membre régulier
![]() Étudiant en alternance Inscription : février 2010 Messages : 80 ![]() |
Pour le width:100%; je ne sais pas mais pour l'alignement tu peux peut être essayer float:left; et float:right; ?
__________________
"Il n'y a que deux façons d'avoir le dernier mot avec une femme. Le problème, c'est qu'aucune ne marche." Samuel Clemens |
|
|
00
|
|
|
#14 |
|
Membre régulier
![]() Inscription : février 2009 Messages : 197 ![]() |
Merci mais si tu reprends la première explication, ça provoque un retour chariot des éléments.
|
|
|
00
|
|
|
#15 | ||||
![]() ![]() Inscription : juillet 2006 Messages : 1 529 ![]() |
Hello,
tu peux utiliser un display:table-cell pour obtenir l'effet souhaité: Code :
Code html :
Autrement pour éviter la problématique que tu évoques avec la solution de Bisûnûrs, tu peux fixer un min-width à .Bar, de 772+un minimum pour ton div.B. Par exemple, 850px. |
||||
|
|
00
|
|
|
#16 | |
|
Membre régulier
![]() Inscription : février 2009 Messages : 197 ![]() |
Salut,
Merci pour ta recherche, ton exemple m'aide à voir aussi comment d'autres développeurs traitent ce problème, mais tu utilises javascript Citation:
|
|
|
|
00
|
|
|
#17 | ||
![]() ![]() Inscription : juillet 2006 Messages : 1 529 ![]() |
Oui, j'utilise j'avacript mais que pour 2 vieux navigateurs obsolète destinés à disparaître (et le plus vite sera le mieux ;p).
De toute façon, ça va être dur de faire sans pour IE6 vu qu'il ne connaît pas le min-width. Je pensais à qqch du genre (sur IE6, le min-width n'est pas pris en compte): Code html :
|
||
|
|
00
|
|
|
#18 | ||||
|
Membre régulier
![]() Inscription : février 2009 Messages : 197 ![]() |
Merci encore à vous tous, après tout ça on comprend qu'il n'est pas possible descendre en dessous de IE7, j'ai donc opté pour une solution un peu bricolage, mais quand il n'y a pas d'autre solution, faut faire avec...
La solution ci-dessous fonctionne donc avec tous les navigateurs et IE, à partir de IE5.0 Code :
Code :
|
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com