Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1578 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  vertical-align: bottom

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

vertical-align: bottom

n°596264
Big-Foot
Posté le 23-12-2003 à 20:13:32  profilanswer
 

hello
 
J'ai un div avec  
vertical-align: bottom;
et ca marche pas le texte ce trouve vers le haut du div. C'est quoi l'erreur ? merci

mood
Publicité
Posté le 23-12-2003 à 20:13:32  profilanswer
 

n°596273
gm_superst​ar
Appelez-moi Super
Posté le 23-12-2003 à 20:31:38  profilanswer
 
n°596291
Big-Foot
Posté le 23-12-2003 à 21:14:46  profilanswer
 

merci j'ignorais que vertical-align: bottom; n'influencait pas directement le texte.
Mais malheureusement je n'ai pas reussi à faire ce que je veux le texte est toujours en haut.
 

Code :
  1. <div class="directory0">
  2.  <div class="directory0_l"></div>
  3.  <div class="directory0_r"><span class"directory">Welcome</span></div>
  4.  <div class="spacer"></div>
  5. </div>


Code :
  1. div.directory0
  2. {
  3. width: 100%;
  4. margin: 0;
  5. padding: 0;
  6. }
  7. div.directory0_l
  8. {
  9. width: 30px;
  10. height: 20px;
  11. margin: 0;
  12. padding: 0;
  13. float: left;
  14. background-image: url(../../img/main/dir1.gif);
  15. background-repeat:  no-repeat;
  16. background-position: left;
  17. background-color: #1773D0;
  18. }
  19. div.directory0_r
  20. {
  21. height: 20px;
  22. margin: 0;
  23. padding: 0;
  24. vertical-align: bottom;
  25. text-align: left;
  26. font-size: 10pt;
  27. font-weight: bold;
  28. color: #FFFFFF;
  29. background-image: url(../../img/main/dir2.gif);
  30. background-repeat:  no-repeat;
  31. background-position: right;
  32. background-color: #1773D0;
  33. }
  34. span.directory
  35. {
  36. margin: 0;
  37. padding: 0;
  38. vertical-align: bottom;
  39. }


Message édité par Big-Foot le 23-12-2003 à 21:15:31
n°596301
gm_superst​ar
Appelez-moi Super
Posté le 23-12-2003 à 21:34:39  profilanswer
 

1. vertical-align ne s'applique pas à des blocs (ou alors à des cellules de tableau)
 
2. Ton texte est en haut parce que par défaut les DIV s'empilent les uns sur les autres.
 
 
Donc si tu veux mettre ton bloc en bas, le mieux est de le positionner en bas (avec le positionnement absolu) ce qui implique que le bloc conteneur (directory0) soit lui même positionné (un "position: relative;" suffira).
Lire l'article sur le positionnement dans la FAQ.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°596309
Big-Foot
Posté le 23-12-2003 à 21:58:55  profilanswer
 

j'ai mis position: relative; sur directory0, et ca marche pas.
Mais en s'en fout de la position du div directory0 non ? c'est le div.directory0_r qui contient le texte.
Tu dit que les div s'empilent et que c'est pour ca que le texte ne s'alligne pas comme il faut, mais seul les div.directory0_l et div.directory0_r on un fond et donc c'est seulement l'alignement vertical par rapport à ces 2 div qui m'interresse, le div.directory0 n'est que "virtuel".

n°596330
gm_superst​ar
Appelez-moi Super
Posté le 23-12-2003 à 23:19:24  profilanswer
 

Bon je viens de regarder un peu mieux ton code. Le mieux serait peut être de donner un padding-top à directory0_r, ce qui aura pour effet de faire descendre le texte (ton DIV n'est pas très haut).


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°596342
Big-Foot
Posté le 24-12-2003 à 00:10:15  profilanswer
 

Bon alors voila ce que je cherche a obtenir (le 1er qui est fait avec un tableau) :
 
http://membres.lycos.fr/bigfoot57/prob/dir.gif
 
mais j'obtient le 2ème, il y a un léger décalage du texte vers le heut et cpa bieng  :o  
 
Sur le 3ème j'ai rajouté le padding au directory0_r, mais ca joue pas, parce que les images d'arrière plan n'ont pas la même couleur que celui-ci. Et comme vous pouvez le voir la couleur bleu "dépasse"

n°596347
gm_superst​ar
Appelez-moi Super
Posté le 24-12-2003 à 00:50:13  profilanswer
 

Attention, IE inclu le padding dans la hauteur alors que Mozilla le compte en plus (ce qui est le bon comportement)
 
Il faut passer par un petit "hack" : http://tantek.com/CSS/Examples/boxmodelhack.html


Message édité par gm_superstar le 24-12-2003 à 00:50:29

---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°596499
Big-Foot
Posté le 24-12-2003 à 15:41:17  profilanswer
 

merci, mais désolé j'ai pas trop compris comment ca fonctionne et surtout comment appliquer ce truc a mon probleme  :(

n°596506
Big-Foot
Posté le 24-12-2003 à 15:59:19  profilanswer
 

J'ai encore un autre problème mais celui-ci est plus important : j'arrive pas à aligner le contenu d'un div  (1 div et un tableau)  au centre. Comment est ce qu'il faut faire, j'ai essayer text-align: center; ou directement dans le div : <div align="center" mais aucun  n'aligne tout mon contenu au centre.
J'arrive à aligner le tableau au centre : <table align="center"> mais pas le div.

mood
Publicité
Posté le 24-12-2003 à 15:59:19  profilanswer
 

n°596522
antp
Super Administrateur
Champion des excuses bidons
Posté le 24-12-2003 à 16:51:54  profilanswer
 

Si tu veux centrer un div (ou une table) :
 
pour le div à centrer :
margin-left: auto;
margin-right: auto;
 
Et pour corriger un bug d'IE :
 
pour le div contenant celui à centrer :
text-align: center;
 
pour le div à centrer : (pour rétablir l'alignement à gauche, à désactiver si tu veux que son contenu soit centré aussi)
text-align: left;


Message édité par antp le 24-12-2003 à 16:53:19

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°596614
Big-Foot
Posté le 24-12-2003 à 19:59:25  profilanswer
 

antp a écrit :

Si tu veux centrer un div (ou une table) :
 
pour le div à centrer :
margin-left: auto;
margin-right: auto;
 
Et pour corriger un bug d'IE :
 
pour le div contenant celui à centrer :
text-align: center;
 
pour le div à centrer : (pour rétablir l'alignement à gauche, à désactiver si tu veux que son contenu soit centré aussi)
text-align: left;


 
J'ai essayé ta méthode en rajoutant un nouveau div dans le div principal :

Code :
  1. style="margin-left: auto; margin-right: auto; text-align: center;"


Ca aligne tout le contenue mais ca fonctionne que dans IE.
 
J'ai essayer une autre méthode, aussi en rajoutant un div dans le div principal :
<div align="center">
 
Ca fonctionne sur moz IE netscape, mais pas sur opera.
 
Alors c'est quoi la méthode qui me permette de tout aligner au milieu dans tous les navigateurs si possible sans rajouter de div ?


Message édité par Big-Foot le 24-12-2003 à 20:00:01
n°596745
antp
Super Administrateur
Champion des excuses bidons
Posté le 25-12-2003 à 12:38:59  profilanswer
 

Je sais pas, je me perds dans tes explications :D
Tu dois aligner quoi ? Du texte ou des blocs ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°596762
Big-Foot
Posté le 25-12-2003 à 13:42:49  profilanswer
 

alors je vais essayer d'etre plus clair :D :
 
j'ai un div qui doit contenir les trucs les plus important de la page, le contenue quoi, et je voudrais que tout ce qui ce trouve dans ce div soit aligné au centre, que ce soit des tableau ou même des div.

n°596774
Hermes le ​Messager
Breton Quiétiste
Posté le 25-12-2003 à 14:18:47  profilanswer
 

big-foot a écrit :

alors je vais essayer d'etre plus clair :D :
 
j'ai un div qui doit contenir les trucs les plus important de la page, le contenue quoi, et je voudrais que tout ce qui ce trouve dans ce div soit aligné au centre, que ce soit des tableau ou même des div.


 
Pour le centrage vertical dans un div : impossible.
 
Pour le centrage horizontal DANS un div : très simple :
 
- text-align: center; appliqué au DIV.
- margin: 0px auto 0px auto; appliqué aux éléments (non texte) que tu veux centrer dans le div.

n°596881
gm_superst​ar
Appelez-moi Super
Posté le 25-12-2003 à 17:31:14  profilanswer
 

big-foot a écrit :

merci, mais désolé j'ai pas trop compris comment ca fonctionne et surtout comment appliquer ce truc a mon probleme  :(


 
Admettons que tu aies :
 
div.directory0_r {
  height: 15px;
  padding: 5px;
}
 
Pour Mozilla, la hauteur totale du DIV sera : 15 + 5 = 20 px.
 
Pour IE ce se sera 15px, avec seulement 10px utiles à l'intérieur du DIV (15 - 5 = 10px)
 
D'où l'idée du hack, qui consiste à utiliser un bug de IE pour qu'il ne lise qu'une partie des propriétés CSS :
 
div.directory0_r {
  padding: 5px;
  height: 20px;
  voice-family: "\"}\"";  
  voice-family:inherit;
  height: 15px;
}
 
IE s'arrêtera de lire à "height: 20px" alors que Mozilla ira jusqu'à la fin.
 
Donc pour IE la hauteur totale du DIV sera de 20px et pour Mozilla de 15 + 5 = 20px. Donc la même hauteur pour les 2 navigateurs :)
 
 
Sinon il y a un autre moyen pour régler (un peu) la hauteur du texte dans ton DIV est de jouer avec la propriété line-height. A toi de faire des essais.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°596882
gm_superst​ar
Appelez-moi Super
Posté le 25-12-2003 à 17:32:07  profilanswer
 

big-foot a écrit :

alors je vais essayer d'etre plus clair :D :
 
j'ai un div qui doit contenir les trucs les plus important de la page, le contenue quoi, et je voudrais que tout ce qui ce trouve dans ce div soit aligné au centre, que ce soit des tableau ou même des div.


 
http://forum.hardware.fr/forum2.ph [...] 10#t229960


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°596891
Big-Foot
Posté le 25-12-2003 à 17:39:44  profilanswer
 

hermes le messager a écrit :


 
Pour le centrage vertical dans un div : impossible.
 
Pour le centrage horizontal DANS un div : très simple :
 
- text-align: center; appliqué au DIV.
- margin: 0px auto 0px auto; appliqué aux éléments (non texte) que tu veux centrer dans le div.


 
 :hello:  merci ca fonctionne, et sur tout les browsers en plus  :jap:

n°596895
Big-Foot
Posté le 25-12-2003 à 17:41:00  profilanswer
 

gm_superstar a écrit :


 
Admettons que tu aies :
 
div.directory0_r {
  height: 15px;
  padding: 5px;
}
 
Pour Mozilla, la hauteur totale du DIV sera : 15 + 5 = 20 px.
 
Pour IE ce se sera 15px, avec seulement 10px utiles à l'intérieur du DIV (15 - 5 = 10px)
 
D'où l'idée du hack, qui consiste à utiliser un bug de IE pour qu'il ne lise qu'une partie des propriétés CSS :
 
div.directory0_r {
  padding: 5px;
  height: 20px;
  voice-family: "\"}\"";  
  voice-family:inherit;
  height: 15px;
}
 
IE s'arrêtera de lire à "height: 20px" alors que Mozilla ira jusqu'à la fin.
 
Donc pour IE la hauteur totale du DIV sera de 20px et pour Mozilla de 15 + 5 = 20px. Donc la même hauteur pour les 2 navigateurs :)
 
 
Sinon il y a un autre moyen pour régler (un peu) la hauteur du texte dans ton DIV est de jouer avec la propriété line-height. A toi de faire des essais.
 


 
ok je teste tout ca  :)

n°598042
Big-Foot
Posté le 28-12-2003 à 18:53:30  profilanswer
 

rebonjours,
 
au lieu de recréer 10000 topics semblable je profite de celui-la pour ma question qui concerne un probleme similaire :
 
j'ai à peut près cette structure :
 

Code :
  1. <td>
  2. <div class="gauche">
  3. contenue1
  4. </div>
  5. <div class="droite">
  6. contenue2
  7. </div>
  8. <div class="spacer"></div>
  9. </td>
  10. div.gauche
  11. {
  12. float: left;
  13. margin: 0;
  14. padding: 0;
  15. border-style: solid;
  16. }
  17. div.droite
  18. {
  19. float: right;
  20. width: 250px;
  21. margin: 0;
  22. padding: 0;
  23. border-style: solid;
  24. }


 
En fait j'arrive pas a faire en sorte que le div de gauche prenne toute la largeur qui n'est pas prise par le div de droite qui lui doit être définie en px.
C'est bizzard, j'ai pourtant déjà reussi à faire des trucs très très semblables mais la j'y arrive pas, j'ai suremment dû oublier qq'chose.


Message édité par Big-Foot le 28-12-2003 à 18:53:49
n°598049
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-12-2003 à 19:01:15  profilanswer
 

Il suffit que le div de gauche ne soit pas "float", non ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°598061
Big-Foot
Posté le 28-12-2003 à 19:31:16  profilanswer
 

si j'enlève le "float" du div gauche, il prend 100% de la largeur du "<td>" et donc celui de droite se retrouve en dessous :/

n°598065
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-12-2003 à 19:46:32  profilanswer
 

Mets un margin-right de la taille du div de droite à celui de gauche.
Ou bien mets celui de droite dans celui de gauche.


Message édité par antp le 28-12-2003 à 19:46:58

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°598068
Big-Foot
Posté le 28-12-2003 à 19:49:29  profilanswer
 

ah oui merci ! javais fait comme ca deja une fois mais je me souvenais plus.
Mais ca me parait pas très propre comme méthode, c'est la seul ?

n°598071
Big-Foot
Posté le 28-12-2003 à 20:02:54  profilanswer
 

en fait cette technique fonctionne seulement avec des position: absolute; non ?
Dans mon cas j'ai pas de "position: absolute;" et ca marche pas :(

n°598075
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-12-2003 à 20:13:18  profilanswer
 

bah non
 
<div id="a">
  <div id="b">
  </div>
</div>
 
si b est en float: right ça doit faire ce que tu veux il me semble.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°598108
Big-Foot
Posté le 28-12-2003 à 21:22:19  profilanswer
 

Code :
  1. <div id="a">
  2.   <div id="b">
  3.   </div>
  4. </div>


quand je fait ca, en donnant un "margin" au div "a" c'est le toute qui a un "margin" :/
 
ce que j'ai fait, ca affiche le div a et b au bons endroits mais le probleme c'est qu'ils sont pas sur la meme "ligne" :

Code :
  1. <div id="a">fwgegfdx</div>
  2. <div id="b">gagfa</div>
  3. <div class="spacer"></div>
  4. div.a
  5. {
  6. margin: 0;
  7. padding: 0;
  8. margin-right: 300px;
  9. border-style: solid;
  10. }
  11. div.b
  12. {
  13. float: right;
  14. width: 250px;
  15. margin: 0;
  16. padding: 0;
  17. border-style: solid;
  18. }
  19. div.spacer
  20. {
  21. clear: both;
  22. }

n°598109
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-12-2003 à 21:25:06  profilanswer
 

big-foot a écrit :


quand je fait ca, en donnant un "margin" au div "a" c'est le toute qui a un "margin" :/


 
Faut faire l'un ou l'autre :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°598119
Big-Foot
Posté le 28-12-2003 à 21:46:20  profilanswer
 

antp a écrit :


Faut faire l'un ou l'autre :o


 :whistle: oups
maintenant j'ai fait comme tu a dit mais ca m'affiche quand meme mes 2 div l'un au dessus de l'autre.

n°598121
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-12-2003 à 21:47:12  profilanswer
 

Faut attendre le passage du grand maître des CSS (gm_superstar)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°598124
Big-Foot
Posté le 28-12-2003 à 21:54:30  profilanswer
 

:D  :jap: ben je vais chercher en attendant

n°598186
Big-Foot
Posté le 29-12-2003 à 00:11:12  profilanswer
 

bon alors j'ai pas (encore) reussi, mais j'ai remarqué un truc interessant.
 
Ca ca marche pas, le div.a est tout petit en largeur :

Code :
  1. <div id="a">fwgegfdx</div>
  2.   <div id="b">gagfa</div>
  3.   <div class="spacer"></div>
  4.  
  5.  
  6. div.a
  7. {
  8. margin: 0;
  9. padding: 0;
  10. float: left;
  11. border-style: solid;
  12. }
  13. div.b
  14. {
  15. width: 250px;
  16. margin: 0;
  17. padding: 0;
  18. border-style: solid;
  19. }
  20.  
  21. div.spacer
  22. {
  23. clear: both;
  24. }


 
Par contre si au lieu de mettre la largeur en px pour le div.b je la met pour le div.a, tout fonctionne : le div.a prend ca largeur en px alors que le div.b prend la largeur du reste du <td>.
 
Le problème c'est que dans mon cas je dois absolument définir la largeur en px pour le div.b


Message édité par Big-Foot le 29-12-2003 à 00:11:52
n°598666
Big-Foot
Posté le 29-12-2003 à 20:57:26  profilanswer
 

bon alors j'ai toujours pas trouvé comment faire. euh... t'est là gm_superstar ?

n°599866
Big-Foot
Posté le 31-12-2003 à 13:54:36  profilanswer
 

ben... UP
je rappel que je veut faire ca avec des div :
 

largeur total : 100%
_______________________________________________________________
|                                      | largeur en px        |
|                                      |                      |
|                                      |                      |
|                                      |                      |
|                                      |                      |
|                                      |                      |
|                                      |                      |
---------------------------------------------------------------

n°600360
Big-Foot
Posté le 01-01-2004 à 20:09:21  profilanswer
 

c'est impossible de faire ca avec des div ??

n°600364
Hermes le ​Messager
Breton Quiétiste
Posté le 01-01-2004 à 20:14:54  profilanswer
 

big-foot a écrit :

c'est impossible de faire ca avec des div ??


 
Oui, ou en tous cas, sans utiliser des ruses immondes dans tous les sens, c'est impossible pour une raison très simple.
 
Tu as besoin d'un élément qui comporte plusieurs sous-éléments, or un div est unique. On peut évidemment mettre des divs dans un div, mais un div n'est pas un élément divisible comme une table.
 
Dans ton cas précis, la table reste de très loin la meilleure solution avec évidemment les propriétés indiquées dans les CSS.

n°600367
Big-Foot
Posté le 01-01-2004 à 20:20:11  profilanswer
 

hum, mais dans ce cas cette table serait imbirqué dans une autre table... il me semble que ce soit pas très bien ca.

n°600368
Hermes le ​Messager
Breton Quiétiste
Posté le 01-01-2004 à 20:23:35  profilanswer
 

big-foot a écrit :

hum, mais dans ce cas cette table serait imbirqué dans une autre table... il me semble que ce soit pas très bien ca.


 
Non, la table fait 100% de large, la cellule de droite la longueur en px que tu veux et la cellule de gauche prendra ce qui restera des 100%

n°600369
antp
Super Administrateur
Champion des excuses bidons
Posté le 01-01-2004 à 20:24:13  profilanswer
 

bon, faites pas attention aux couleurs immondes, c'est pour bien voir les blocs :o
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3.   <head>
  4.     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
  5.     <title>test</title>
  6.     <style type="text/css">
  7.       <!--
  8. div#main
  9. {
  10.   margin-right: 250px;
  11.   border: 1px green solid;
  12.   background: red;
  13.   color: yellow;
  14. }
  15. div#droite
  16. {
  17.   float: right;
  18.   width: 250px;
  19.   border: 1px pink solid;
  20.   background: blue;
  21.   color: white;
  22. }
  23. div.spacer
  24. {
  25.   clear: both;
  26. }
  27.       -->
  28.     </style>
  29.   </head>
  30.   <body>
  31. <div id="droite">
  32.   <ul>
  33.     <li>un</li>
  34.     <li>deux</li>
  35.     <li>trois</li>
  36.     <li>quatre</li>
  37.     <li>cinq</li>
  38.     <li>six</li>
  39.   </ul>
  40. </div>
  41. <div id="main">
  42.   <p>Il était une fois une page web qui ne voulait pas se mettre en forme, et qui foutait ses div n'importe où.</p>
  43.   <p>En général c'est à ce moment qu'arrive alors gm_superstar pour remettre de l'ordre dans tout ça.</p>
  44.   <p>Mais en cette période de fêtes de fin d'année, il n'est pas là.</p>
  45.   <p>Le pauvre forumeur doit alors se contenter d'un modo/admin qui tente de faire marcher ce bidule.</p>
  46.   <p>Là on espère que ça fonctionnera et que ça conviendra, parce que ça traîne depuis quelques jours, et c'est pas possible qu'un truc si simple soit si compliqué.</p>
  47.   <p>On risquerait de se laisser tenter de retourner aux tableaux, ou - pire - aux frames.</p>
  48. </div>
  49. <div class="spacer"><hr /></div>
  50.   </body>
  51. </html>


Message édité par antp le 01-01-2004 à 20:28:02

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°600370
Big-Foot
Posté le 01-01-2004 à 20:24:42  profilanswer
 

je disait que c'est pas super parce que ca fait pas très propre, mais ca passe le validateur il me semble.

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  vertical-align: bottom

 

Sujets relatifs
comment center un image vertical et horizontalaligner a droite un image dans un tableau > fonction align marche pas
La fameux vertical-alignEcriture alignée à la vertical en HTML
HTML : Comment bloquer le scroll horizontal (et non vertical) ?[CSS] problème de vertical-align
[XHTML strict] width / height / align / color ?Comment utiliser le Text Align "Justifier" ?
Plus de sujets relatifs à : vertical-align: bottom


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR