28220 sujets

CSS et mise en forme, CSS3

Bonjour à tous,

j'ai un petit problème au niveau des flottants.
Vous le trouverez ici: http://blog.afrikart.net/help/

En fait je veux que la photo timbre s'affiche tout à droite comme le fait parfaitement IE.
Mais sous Firefox ce n'est pas le cas.

Aidez moi car je ne sais pas comme y rémedier, surtout du fait qu'on le dit souvent que c'est IE qui a le mauvais modèle de boîte... Smiley langue
Modifié par cowboy (05 Jul 2005 - 19:43)
Ah... le modèle de boîte d'IE n'y est pour rien, mais c'est tout de même IE le coupable de faire n'importe quoi, et non Firefox qui fait sagement ce que tu lui as dit Smiley cligne

En effet, tu écris:
<div style="float: right; width: auto; position: absolute;">
   <img src="timbre01.gif" height="113" width="87">
</div>	


Tout commence bien, très bien même :
- float: right
- width: auto

IE et Firefox ont tous les deux compris que tu voulais une image flottant à droite.

Mais tout à coup, voilà que ça se gâte: position: absolute Smiley eek

Là, nos deux sympathiques navigateurs divergent :
- Firefox (comme Opera) se dit ah bah... non, finalement, ce n'est une image flottante, mais un positionnement. J'annule tout, et je positionne en absolu par défaut à 0px gauche et 0px haut par rapport au conteneur... ici le body.
- Internet Explorer se dit... Je ne sais pas quelle sottise ! Car il devrait se dire la même chose que FF, et oublier l'histoire du flottant.

En effet: un élément ne peut pas être à la fois flottant et en position absolue ou fixe.

Donc, supprimer cet affreux position: absolute, et rectifier si nécessaire l'alignement avec une marge sur l'image.
Merci bcp,
j'ai supprimé psoition:absolute;

et regarde ce qu'il me donne... http://blog.afrikart.net/help/
et maintenant comment je dois procéder pour que la moitié de l'image timbre se superpose au dessus de la grande image ?

j'ai essayé
	div#content {
		padding:10px;
		margin:0 8px;
		position: relative;
		padding-top: -45px;
mais cela c'a pas marché
S'il s'agit de superposer, alors là, nous allons complètement changer notre fusil d'épaule :
- oublions les flottants, pas faits pour cela.
- et revenons au positionnement absolu, conçu, lui, à cet effet

Pour commencer, simplifions-nous la vie en plaçant nos deux images à la suite l'une de l'autre dans le même conteneur :


<div id="content">
   <div>
      <img src="timbre02.gif" height="113" width="87" />
      <img src="zazabonh.jpg" height="360" width="480" />
   </div>
   ...


Nous donnons à ce conteneur une position relative qui ne modifera pas son emplacement, mais qui va lui conférer une propriété essentielle : il peut désormais servir de référence pour le positionnement absolu de ses éléments enfants (nos images)


<div id="content">
   <div style="position: relative">
      <img src="zazabonh.jpg" height="360" width="480" />
      <img src="timbre02.gif" height="113" width="87" />
   </div>
   ...


Nous allons laisser la photographie se placer normalement, mais nous allons littéralement coller dessus le timbre poste :


<div id="content">
   <div style="position: relative">
      <img src="zazabonh.jpg" height="360" width="480" />
      <img src="timbre02.gif" height="113" width="87"
        style="position: absolute; top: -42px; right:0;" />
   </div>
   ...


Zut, tout va bien dans Firefox et Opera, mais IE nous joue encore des tours en ne respectant pas tout à fait notre positionnement (tiens, le modèle de boîte pointe le bout de son nez, là). Sans chercher plus loin, un hack brutal va permettre de lui indiquer des valeurs de positionnements qui lui vont bien, tout en gardant les valeurs normales pour les autres navigateurs :


<div id="content">
   <div style="position: relative">
      <img src="zazabonh.jpg" height="360" width="480" />
      <img src="timbre02.gif" height="113" width="87"
        style="position: absolute; top: -42px !important;top: -47px; right:0 !important; right: 18px;" />
   </div>
   ...


Hum... Dans l'idéal, il faudrait revoir cela sans le hack. Mais il y a déjà là matière à réflexion, je crois Smiley cligne