Centrage d'un élément en position absolue ... [Résolu]

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Nicosmos
Iguane
Messages : 633
Inscription : 20 août 2005, 14:17

Centrage d'un élément en position absolue ... [Résolu]

Message par Nicosmos »

Hello :D

Je n'arrive pas à centrer le bloc "iTout" de cette page : http://nicosmos66.free.fr/vrac/ipodpro/.

Ou plutôt si, j'arrive à le centrer avec :

Code : Tout sélectionner

margin-left: auto;
margin-right: auto;
... mais sans le "position: absolute;" qui me permet que le haut et le bas du bloc sois collés au haut et au bas de la page ...

:P

Donc, double question :
> Comment centrer un élément qui est en position: absolute; ?
> Ou comment remplacer position: absolute; pour toucher les bords de la page un élément centré avec les margin ?

:?

Les CSS

Voilà, et merci d'avance :wink:
Nico.
Dernière modification par Nicosmos le 25 nov. 2006, 09:16, modifié 1 fois.
Mongo Bob
Varan
Messages : 1903
Inscription : 10 sept. 2005, 01:51

Message par Mongo Bob »

Ca marche aussi pour un bloc en position relative, tu la fais comme ça, ta propriété de "iTout" et ça va centrer (vois les 2 dernières lignes) :

Code : Tout sélectionner

#iTout {
     background: #FFFFFF;
     background-image: url(images/fond.png);
     width: 680px;
     margin-top: 0px;
     margin-bottom: 0px;
     position: absolute;
     left: 50%;
     margin-left: -340px;
}
Décalage gauche de 50% + une marge gauche négative de la moitié de la largeur du bloc.
Et merci Raphaël Goetter (bouquin CSS2) :wink:
Win:Kpz version 0.7.10 (20070831)
Ubuntu:Kpz v 20090206
2 tutos :
http://josar.free.fr/index.html
http://info.sio2.be/kpz/
1 nécessité :
http://www.geckozone.org/forum/viewtopic.php?t=51228
Alan
Salamandre
Messages : 40
Inscription : 10 févr. 2006, 12:17

Re: Centrage d'un élément en position absolue ou vice-vers

Message par Alan »

Nicosmos a écrit : > Ou comment remplacer position: absolute; pour toucher les bords de la page un élément centré avec les margin ?
Salut Nicomos,

Il s'agit d'une fusion des marges (avec la marge supérieur du titre h1).

Il est possible d'éviter cette fusion en ajoutant en ajoutant par exemple overflow: hidden; à #iTout, ou encore un minimum de padding supérieur. Également possible de remplacer la marge supérieur du H1 par du padding.

La positionnement absolu permet effectivement aussi d'empêcher cette fusion, ceci dit cela revient un peu à utiliser un marteau-pilon pour écraser une mouche. (le fait de créer un nouveau contexte de formatage bloc empêche la fusion)
Nicosmos
Iguane
Messages : 633
Inscription : 20 août 2005, 14:17

Message par Nicosmos »

Mongo Bob a écrit :Ca marche aussi pour un bloc en position relative, tu la fais comme ça, ta propriété de "iTout" et ça va centrer (vois les 2 dernières lignes) :

Code : Tout sélectionner

#iTout {
     background: #FFFFFF;
     background-image: url(images/fond.png);
     width: 680px;
     margin-top: 0px;
     margin-bottom: 0px;
     position: absolute;
     left: 50%;
     margin-left: -340px;
}
Décalage gauche de 50% + une marge gauche négative de la moitié de la largeur du bloc.
Et merci Raphaël Goetter (bouquin CSS2) :wink:
Alan a écrit :
Nicosmos a écrit : > Ou comment remplacer position: absolute; pour toucher les bords de la page un élément centré avec les margin ?
Salut Nicomos,

Il s'agit d'une fusion des marges (avec la marge supérieur du titre h1).

Il est possible d'éviter cette fusion en ajoutant en ajoutant par exemple overflow: hidden; à #iTout, ou encore un minimum de padding supérieur. Également possible de remplacer la marge supérieur du H1 par du padding.

La positionnement absolu permet effectivement aussi d'empêcher cette fusion, ceci dit cela revient un peu à utiliser un marteau-pilon pour écraser une mouche. (le fait de créer un nouveau contexte de formatage bloc empêche la fusion)
Ok ! Merci beaucoup ! :D
Je vais tester les deux solutions, et je verrais ce qui me va le mieux (et nottament celle qui marche le mieux avec IE :twisted: ).

:P
Mongo Bob
Varan
Messages : 1903
Inscription : 10 sept. 2005, 01:51

Message par Mongo Bob »

Ben, dis-nous quoi avant de mettre "Résolu", parce que je me suis demandé après s'il y avait pas un pb avec "ma" soluce avec l'affichage IE, ce qui me gêne là, c'est que #Itout contient d'autres blocs et les paramètres de ces blocs en positionnement etc... pourraient interférer, et j'ai eu un comportement zarbi de IE sur mon site en essayant après de centrer ainsi un bloc qui en contenait un autre.
Auquel cas, le ou les blocs contenus devraient peut-être aussi être positionnés en absolu, bref faudrait que je voie ça...



OK j'ai vu ton site, overflow:hidden, ça marche.
Win:Kpz version 0.7.10 (20070831)
Ubuntu:Kpz v 20090206
2 tutos :
http://josar.free.fr/index.html
http://info.sio2.be/kpz/
1 nécessité :
http://www.geckozone.org/forum/viewtopic.php?t=51228
Nicosmos
Iguane
Messages : 633
Inscription : 20 août 2005, 14:17

Message par Nicosmos »

OK j'ai vu ton site, overflow:hidden, ça marche.
Oui désolé, j'ai utilisé la technique de Alan, parceque

Code : Tout sélectionner

left: 50%;
margin-left: -340px; 
j'aurais bien vite oublié pourquoi j'avais mis çà :oops:
parce que je me suis demandé après s'il y avait pas un pb avec "ma" soluce avec l'affichage IE
Apparemment, les deux marchaient parfaitement sous IE :wink:
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 5 invités