superposer 2 div

superposer 2 div - HTML/CSS - Programmation

Marsh Posté le 02-09-2005 à 23:10:13    

Salut
 
Voila j'aimerais savoir comment superposer 2 div..
 
Je sais comment définir laquelle va au dessous ou au dessus de l'autre (z-index) mais je n'arrive pas à mettre les div exactement au meme endroit
 
ps:les divs font exactement la meme taille et doivent donc se situer au meme endroit..
 
Je suis pas un as du positionnement, je l'avoue et continu a chercher de mon coté
 
merci

Reply

Marsh Posté le 02-09-2005 à 23:10:13   

Reply

Marsh Posté le 05-09-2005 à 16:46:40    

dans le style (enfin la CSS)
div.La_class_de_ta_div
{
    position:absolute;
    top:20%;
    left:20%
}
 
voilà, après tu peux galérer sur le scrolling, et sur une div placée trop bas donc qui ne s'affiche plus, je te conseille de placer ça en dynamique en JavaScript et d'aller faire un tour sur http://www.toutjavascript.com

Reply

Marsh Posté le 21-09-2005 à 15:33:15    

merci beaucoup pour ta reponse je vais tester ca tout de suite
 
 
ps:cette methode n'est pas compatible avec beaucoup de navigateur il me semble?
 
merci

Reply

Marsh Posté le 21-09-2005 à 15:46:30    

Re ;)
 
Bon alors ca ne marche pas, enfin ca marche mais pas comme je veut ;)
 
En fait sur ma page, j'affiche des petites annonces (issues d'une base de données : donc je fais une boucle php qui affiche a la suite ces annonces pré-formtés)
 
Or le absolute la, si j'ai bien compris il affiche tout les images l'une par dessus l'autre au meme endroit sur le site ?
 
un ptit bout de code pour mieu comprendre (jespere :p)
 

Code :
  1. if ($donnees['vendu'] == 1) { // la ca boucle depuis la bdd
  2.                                     ?>
  3.                                     <div class="photo">
  4.                                          <a href="photos_maison/<? echo $donnees['photo_prod']; ?>">
  5.                                               <img border="0" src="photos_maison/mini_<? echo $donnees['photo_prod']; ?>" width="100%">
  6.                                          </a>
  7.            </div>   
  8.                                     <div class="vendu" >
  9.                                          <img border="0" src="images/logo_vendu.gif" />
  10.                                     </div>
  11.                                     <?     
  12.                                    }
  13.                                    else {
  14.                                    ?>
  15.                                    <div class="photo">
  16.                                            <a href="photos_maison/<? echo $donnees['photo_prod']; ?>">
  17.                                                <img border="0" src="photos_maison/mini_<? echo $donnees['photo_prod']; ?>" width="100%">
  18.                                            </a>
  19.           </div>
  20.                                   <?
  21.                                    }


 
css :

Code :
  1. .photo{position:absolute; top:20%; left:20%; border:1px solid #00B4EA; z-index:0;}
  2. .vendu {position:absolute; top:20%; left:20%; z-index:1; margin:0; border:0}


 
et allez la totale le screen ki explik mieu ke le reste :p  
 
http://bixibi.free.fr/tien.jpg
etc..

Reply

Marsh Posté le 21-09-2005 à 16:02:32    

encore plus simple :  
 
Deux div imbriqué l'un dans l'otre
 
<div class="photomaison" style="background-image:url(photodelamaison.jpg)">
<div class="vendue">
</div>
</div>
 
et en CSS :
.photomaison {
  background-position: left top;
background-repeat : no-repeat;
height: 50px;
width: 100px;
}
.photomaison .vendue {
 background : transparent url(imgvendu.gif) no-repeat top left;
 height:50px;
}

Reply

Marsh Posté le 21-09-2005 à 16:06:43    

lordashram a écrit :

dans le style (enfin la CSS)
div.La_class_de_ta_div
{
    position:absolute;
    top:20%;
    left:20%
}
 
voilà, après tu peux galérer sur le scrolling, et sur une div placée trop bas donc qui ne s'affiche plus, je te conseille de placer ça en dynamique en JavaScript et d'aller faire un tour sur http://www.toutjavascript.com


 
 
Ca merite au minimum la pendaison sur la place publique une hérésie d'une telle taille


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 21-09-2005 à 16:13:49    

bah non ! pas de background !
 
<dl>
<dt>
<img src="" alt="Maison" class="foto" />
<img src="" alt="Vendu par ABI" class="vendu" />
</dt>
<dd>
Maison en pierre ... tout ca ... trop bien
</dd>
</dl>
 
dl dt {
position: relative;
float: left;
clear: both;
width: 200px;
}
 
dl dt img.apercu {
position: absolute;
top: 0;
left: 0;
}
 
dl dt img.vendu {
position: absolute;
top:0;
left:0;
}
 
dl dd {
margin-left: 200px;
}


Message édité par afbilou le 21-09-2005 à 16:15:11
Reply

Marsh Posté le 21-09-2005 à 16:38:39    

gatsusat a écrit :

encore plus simple :  
 
Deux div imbriqué l'un dans l'otre
 
<div class="photomaison" style="background-image:url(photodelamaison.jpg)">
<div class="vendue">
</div>
</div>
 
et en CSS :
.photomaison {
  background-position: left top;
background-repeat : no-repeat;
height: 50px;
width: 100px;
}
.photomaison .vendue {
 background : transparent url(imgvendu.gif) no-repeat top left;
 height:50px;
}


T'as oublié de mettre "Vendu" dans le <div>, et d'utilise un FIR... Sinon, si on désactive les image, si on est malvoyant ou si on est Google, bah on verra pas que la maison est vendue :(

Reply

Marsh Posté le 21-09-2005 à 16:47:46    

Salut les gars merci pour vos reponses ;)
 
Laquelle des deux methodes vous semble la meilleur et la plus compatible avec tous les navigateurs? (web-browser pour faire cool & hipe :p )
 
pendant ce tps je les teste
 
EDIT: la methode de gatsusat me pose un probleme : je ne peut plus cliquer sur l'image de la maison (pour lagrandir).. :(


Message édité par bixibu le 21-09-2005 à 16:49:32
Reply

Marsh Posté le 21-09-2005 à 16:48:40    

La deuxième est un peu mieux

Reply

Marsh Posté le 21-09-2005 à 16:48:40   

Reply

Marsh Posté le 21-09-2005 à 17:15:55    

Effectivement la 2eme solution est parfaite, merci :) mais j'arrive pas a l'appliquer a mon code :(
 
 c'est super chiant, surtout que les dl dt dd je connaissait pas
je vous filerais un bout de code si jy arrive vraiment pas
 

Reply

Marsh Posté le 21-09-2005 à 17:20:24    

Tu connaissais pas ? Alors apprend l'HTML ! [:dawa] Ca te sera très utile pour faire des sites webs, l'HTML ;)

Reply

Marsh Posté le 21-09-2005 à 17:29:18    

Arf ok.. bon j'ai reussi mais le probleme est toujours le meme....
 
toutes les images vopnt a 1 endroit de lecran (top left), OR j'ai plusieurs annonces moi.. a des endroits differents de la page (normal les annonces se suivent verticalement)
 
Alors ya t'il une solution
ps:mon but est d'afficher  "VENDU" pr dessus une image quand la maison est vendue, peut etre ya til d'autre methodes pour y arriver.
 
merci
screen :
http://bixibi.free.fr/tien2.jpg
 
EDIT: apprendre le html? look mon screen, mon site je l'ai pas fait avec frontpage.. je connais ce dont jai besoin en html css et j'en apprends tous les jours.


Message édité par bixibu le 21-09-2005 à 17:30:44
Reply

Marsh Posté le 21-09-2005 à 17:35:25    

Tes dexu div, tu les a bien mis dans le div devant contenir le texte et l'image?

Reply

Marsh Posté le 21-09-2005 à 17:37:09    

oui oui
 
voila mon code si vous voulez (c un peu gros dsl) :
html :

Code :
  1. <div class="cadre_annonce_bas">
  2. <div class="conteneur_photo">
  3.             
  4.                      <?
  5.                      if ($donnees['vendu'] == 1) {
  6.                      ?>
  7.                      <div class="photo">
  8.                               <a href="photos_maison/<? echo $donnees['photo_prod']; ?>">
  9.                                    <img  class="foto" border="0" src="photos_maison/mini_<? echo $donnees['photo_prod']; ?>" width="100%">
  10.                                </a>
  11.       <img border="0" class="vendue" src="images/logo_vendu.gif" />
  12.                      </div>
  13.                                    
  14.                      <?     
  15.                       }
  16.                       else {
  17.                       ?>         
  18.                                                
  19.                       <div class="photo">
  20.                              <a href="photos_maison/<? echo $donnees['photo_prod']; ?>">
  21.                                    <img border="0" src="photos_maison/mini_<? echo $donnees['photo_prod']; ?>" width="100%">
  22.                              </a>
  23.                       </div>   
  24.                        <?
  25.                        }
  26.                         ?>
  27.                                    
  28.         
  29. </div>
  30.                          
  31. <div class="description_photo">
  32.  <div class="lieu"><? echo $donnees['lieu_prod']; ?></div>
  33.                           <div class="special"><? echo $donnees['special_prod']; ?></div>
  34.  <div class="texte">
  35.   <div class="type_produit"><? echo $donnees['type_prod_gras']; ?></div>
  36.                                                <? echo nl2br($donnees['texte_prod']); ?>
  37.               </div>
  38.  <div class="lieu">Prix : <? echo $donnees['prix_prod']; ?></div>
  39. </div>
  40.                        
  41. </div> <!-- fin cadre_annonce_bas -->


css:

Code :
  1. .conteneur_photo {float:left; width: 215px; text-align:left; font-size: 12px;}
  2. .photo{ border:1px solid #00B4EA; z-index:0;}
  3. .vendu {position:fixe;  top:20%; left:20%; z-index:1; margin:0; border:0}
  4. .foto { position: absolute; top: 0; left: 0; } 
  5. .vendue { position: absolute; top:0; left:0; }
  6. .cadre_annonce_bas, {width:100%; margin:5px;  margin-top:0px;  padding:5px; background: url(images/fin-bleu.gif) top right no-repeat;   float:left;  text-align:left; padding-left:5px; border:2px solid #00B4EA; border-bottom:0px; margin-bottom:0px; font-size:12px;}
  7. .description_photo {float:left; padding-left:10px; width: 215px;text-align:left; }
  8. .lieu {font-size:13px; font-weight:bold; color:#00B4EA; }
  9. .special {font-size:10px; color:red;}
  10. .texte {font-size: 12px; margin-top:10px; margin-bottom:10px;}
  11. .prix {font-size:13px; font-weight:bold; color:red; text-decoration:underline;}
  12. .type_produit {display:inline; font-weight:bold; padding-right:4px;}


(c le bordel je sais  joptimiserais apres)


Message édité par bixibu le 21-09-2005 à 17:42:34
Reply

Marsh Posté le 21-09-2005 à 18:13:48    

J'ai mis des couleurs a la palce des images pour pas m'embeter.
Le principe est la :D
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
  3. <head>
  4. <title>Test</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  6. <style type="text/css">
  7.  dl dt{
  8.   position:  relative;
  9.   float:   left;
  10.   clear:   both;
  11.   width:   200px;
  12.   margin-bottom: 30px
  13.  }
  14.  dl dt img.apercu {
  15.   position:  absolute;
  16.   top:   0;
  17.   left:   0;
  18.   width:    180px;
  19.   height:    100px;
  20.   background-color: green;
  21.  }
  22.  dl dt img.vendu {
  23.   position:  absolute;
  24.   top:   0;
  25.   left:   0;
  26.   width:    160px;
  27.   height:    20px;
  28.   background-color: red;
  29.  }
  30.  dl dd {
  31.   margin-left: 210px;
  32.   margin-bottom: 30px
  33.  }
  34. </style>
  35. </head>
  36. <body>
  37. <h1>Site</h1>
  38. <p>
  39.  Un super exemple de la mort !
  40. </p>
  41. <dl>
  42.  <dt>
  43.   <img src="" alt="Maison en papier" class="apercu" />
  44.   <img src="" alt="Vendu par ABI" class="vendu" />
  45.  </dt>
  46.  <dd>
  47.   Maison en papier ... tout ca ... trop bien
  48.   <br />
  49.   Le top ... vendu avec un toit et une poignée a la porte !
  50.   <br />
  51.   Le top ... vendu avec un toit et une poignée a la porte !
  52.   <br />
  53.   Le top ... vendu avec un toit et une poignée a la porte !
  54.   <br />
  55.   Le top ... vendu avec un toit et une poignée a la porte !
  56.   <br />
  57.   Le top ... vendu avec un toit et une poignée a la porte !
  58.   <br />
  59.   Le top ... vendu avec un toit et une poignée a la porte !
  60.   <br />
  61.   Le top ... vendu avec un toit et une poignée a la porte !
  62.  </dd>
  63.  <dt>
  64.   <img src="" alt="Grotte" class="apercu" />
  65.   <img src="" alt="Vendu par ABI" class="vendu" />
  66.  </dt>
  67.  <dd>
  68.   Grotte ... garantie sans humidite ... voisins peu bruyants
  69.   <br />
  70.   Le top ... vendu avec la foret autour !
  71.  </dd>
  72. </dl>
  73. </body>
  74. </html>

Reply

Marsh Posté le 21-09-2005 à 18:16:41    

excellent  ;)
 
je vais essayer d'adapter a mon site ;)
 
merci beaucoup :)

Reply

Marsh Posté le 21-09-2005 à 18:18:59    

Ne ruine pas trop mes efforts avec du code pas beau hein ? :)

Reply

Marsh Posté le 21-09-2005 à 19:23:17    

Bon ca marche :p merci afbilou
 
C'est pas trop crade.. j'ai juste comment dire.. bidouiller :D
 
la balise dd modifie laffichage des que je la met autour de la description (genre ca me rajoute un margin-left de 30 ... et jai cherché partout jvois pas d'ou ca vient)
 
M'enfin dans l'ensemble ca marche :p

Reply

Marsh Posté le 21-09-2005 à 21:49:49    

C'est le style par défaut : un peu de marge sur les dd

Reply

Marsh Posté le 22-09-2005 à 02:16:06    

serieu ... je comprend mieu lol
 
merci ;) du coup c'est tout propre :d

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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