Centrer en plein ecran

Cro_mag Messages postés 172 Statut Membre -  
arthezius Messages postés 3756 Statut Membre -
Bonjour,

Voila mon petit soucis, ca faisait longtemps....lol
Alors j'ai mis un agrandissement de photo qui s'ouvre dans une nouvelle fenêtre du navigateur.
le truc c'est que lorsque je fais F11 donc plein ecran l'image est collée en haut de page, impossible de la centrer ! y aurait il une relation avec le z-index ??
Voila mon code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tuan-Gallery Photographie</title>
<style type="text/css">
<!--
#page {
	color: #999;
	background-color: #000;
	text-align: center;
	margin-right: auto;
	margin-left: auto;
	margin-top: auto;
	margin-bottom: auto;
}
#image {
	text-align: center;
	margin : auto;
	left: auto;
	top: auto;
	right: auto;
	bottom: auto;
	clip: rect(auto,auto,auto,auto);
	overflow: visible;
	z-index: auto;
}
a:link {
	text-decoration: none;
}
a:visited {
	text-decoration: none;
}
a:hover {
	text-decoration: none;
}
a:active {
	text-decoration: none;
}
-->
</style>
</head>

<body bgcolor="#000000">
<div id="page">

<div id="image">
<img src="../grandes images/VENPO_3790.jpg" width="410" height="615" alt="VENPO_3790" />
</div>

</div>
</body>
</html>

Oui je sais y a pas mal de n'importe quoi dans #image, je teste ce qui peut marcher..lol

Merci par avance de votre aide

Cro_Mag
A voir également:

38 réponses

Ozimandias Messages postés 528 Statut Membre 46
 
Tes images font-elles toutes la même taille?

Si c'est le cas, ton css peut donner ça:

#image {
text-align: center;
left: 50%;
top: 50%;
margin-left : -205px;
margin-top : -307px;
clip: rect(auto,auto,auto,auto);
overflow: visible;
z-index: auto;
}

les valeurs de marge gauche et top correspondent respectivement à la moitié de la largeur et la moitié de la hauteur de ton image.

Au passage, ça correspond à quoi cette ligne: clip: rect(auto,auto,auto,auto);

@+
0
Cro_mag Messages postés 172 Statut Membre 1
 
Salut,

Merci de ta réponse.
J'ai testé mais malheureusement ca ne marche pas.........
0
Ozimandias Messages postés 528 Statut Membre 46
 
J'ai mal lu ton code, il faut mon mettre le css sur la div "page"
0
Cro_mag Messages postés 172 Statut Membre 1
 
Ca ne marche toujours pas...

#page {
	color: #999;
	background-color: #000;
	text-align: center;
	left: 50%;
	top: 50%;
	}
#image {
	text-align: center;
	margin : auto;
	left: auto;
	top: auto;
	right: auto;
	bottom: auto;
	overflow: visible;
	z-index: auto;
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
arthezius Messages postés 3756 Statut Membre 475
 
Il faut mettre un width et height sur le div avec les même valeurs que sur l'image.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tuan-Gallery Photographie</title>
<style type="text/css">
div#image,img{width:410px;height:615px;}
div#image{position:absolute;left:50%;margin-left:-205px; top:50%;margin-top:-307px;}
</style>
</head>
<body bgcolor="#000000">
<div id="image"><img src="" alt="" /></div>
</body>
</html>

Ce simple code devrait suffire à te centrer l'image.
0
Ozimandias Messages postés 528 Statut Membre 46
 
Effectivement mais dans son code il a une div page qui englobe la div dans laquelle il y a l'image

0
Cro_mag Messages postés 172 Statut Membre 1
 
oui ma div image est comprise dans la div principale qui est div page
comment je peux faire ??
0
arthezius Messages postés 3756 Statut Membre 475
 
En même temps je suis pas persuader que deux div l'une dans l'autre soit vraiment utile pour cette page.
En tout cas de ce que j'en vois.
Maintenant, s'il y a une raison particulière, je veux bien modifier mon code en conséquence.
0
Ozimandias Messages postés 528 Statut Membre 46
 
Essaye ça:

#page {
	color: #999;
	background-color: #000;
	text-align: center;
	position:absolute;
        left: 50%;
	top: 50%;
	margin-left: -205px;
        margin-top: -307px; 
        width:410px;
        height:615px;
}
#image {
	text-align: center;
}

0
Cro_mag Messages postés 172 Statut Membre 1
 
Ca marche nikel !!
Merci Ozimandias
0
Ozimandias Messages postés 528 Statut Membre 46
 
pas de soucis, content de t'avoir aidé.
0
arthezius Messages postés 3756 Statut Membre 475
 
Oui donc le div image ne sert à rien. Le text-align encore moins vu que le div page qui contient le div image a déjà la taille de l'image.
Donc ça reviens exactement a ce que j'avais mis.
Mais bon c'est pas grave...
0
Ozimandias Messages postés 528 Statut Membre 46
 
Effectivement mais peut-être il se sert de ce div pour autre chose?

Je ne l'aurai pas mis s'il n'y était pas au départ.
0
arthezius Messages postés 3756 Statut Membre 475
 
Ben si tu met le div page au format de l'image, le div image si se trouve dedans ne sert plus a rien.
0
Cro_mag Messages postés 172 Statut Membre 1
 
Re, j'ai un petit soucis.
Mes images types portraits se positionnent parfaitement; le probleme est que les photos type paysage ne vont pas dedans.

J'ai crée une feuille de style spécifique pour #page et #image.
Est ce possible d'appliquer le css qui va bien aux photos verticales et un css adapté aux photos horizontales presentes sur la même page ?
Sachant que en tout j'ai une centaines de photos donc de pages agrandies et 11 pages de galeries.......

Merci par avance
0
arthezius Messages postés 3756 Statut Membre 475
 
Le décallage qu'on ta indiqué correspondait au dimension de l'image indiqué au départ. Si tu affiches des images de taille différente, il faut adapter les valeurs.
margin-left est égal à la moitié de la largeur d'image.

Exemple:
Une images 400x300px.
margin-left:-200px;
0
Ozimandias Messages postés 528 Statut Membre 46
 
Le problème qu'il va rencontrer, c'est qu'il va devoir faire les changements à chaque nouvelle image. C'est pas franchement viable dans son cas.

Je vais te trouver une solution mais ce sera surement du javascript...

@+ (je cherche ;) )
0
Cro_mag Messages postés 172 Statut Membre 1
 
est ce que margin doit etre uniquement dans #page ou bien je peux le deplacer a #image et j'obtiendrais le même résultat ?? (si ca passe comme ca je cree un #imagehorizontale)
Comme j'ai parfois des images verticales et horizontales sur la même page....
0
Ozimandias Messages postés 528 Statut Membre 46
 
Est-ce que tes images sont toujours déclarée comme suit:

<img src="../grandes images/VENPO_3790.jpg" width="410" height="615" alt="VENPO_3790" />

Les attributs soulignés sont ils toujours définis?
0
arthezius Messages postés 3756 Statut Membre 475
 
Suffit qu'il détecte les formats du fichier et qu'il gère le code dynamiquement.

Pour récupérer les dimensions:
$taille=getimagesize('http://site/images.jpg');

$taille[0] correspondra à la largeur et $taille[1] à la hauteur.
Partant de là, c'est pas très dur de placer l'image dynamiquement.

<?php
$taille=getimagesize('http://site/images.jpg');
$left=$taille[1]/2;
echo'<img src="http://site/images.jpg" alt=""  style="position:relative;left:50%;margin-left:-'.$left.'px;"/>';
?>


Quelques chose de ce genre devrai fonctionner.
0
Cro_mag Messages postés 172 Statut Membre 1
 
Pour Ozimandias oui les attributs sont toujours soulignés.

Pour Arthezius, faut il que je supprime mes div et mette juste ton code dans ma page ???
Et avec ton code l'image qui s'ouvre dans une nouvelle fenetre de navigateur sera bien centré en taille normal et en plein ecran et s'adaptera automatiquement si c'est une image paysage ou portrait.

Parce que c'est ca qui me gene
$taille[0] correspondra à la largeur et $taille[1] à la hauteur.
[0] d'une photo portrait n'est pas le même que [0] d'un paysage...

Dsl je comprend pas tout, j'ai peut etre compris de travers, j'aime bien tout comprendre pour bien apprendre les choses.
0
arthezius Messages postés 3756 Statut Membre 475
 
Il te faut juste adapter ce que jai mis à ce que tu as déjà.
Dans ce que tu as déjà fais, tu partais sur une images défini précisément parce que tu savais d'avance les dimensions.
Pour centrer en largeur, on partais de la largeur de l'image.
Avec left:50%, on place le côté gauche de l'image au centre et on décale de la moitié de la largeur de l'image vers la gauche.
Là, on ne connais par d'avance précisément ces valeurs vu que d'une image à l'autre, ça sera hypothétiquement différent.
getimagesize() permet de récupérer ces valeurs.
$taille me permet de définir la largeur et la hauteur.
Il ne reste plus qu'a utiliser ces valeurs. Elle seront récupérer automatiquement et le code html sera resté automatiquement avec les bonnes valeurs.
Essai d'adapter ce que je t'ai donné pour le combiner avec ce que tu avais réussi a faire.
Si tu n'y arrive pas, tu me redonnera le code précis que tu as et on essaiera de voir ça.
0
Cro_mag Messages postés 172 Statut Membre 1
 
<body bgcolor="#000000">
<div id="page">

<div id="image">
<?php
$taille=getimagesize('http://tuan-gallery.site11.com/fr/venise/grandes images/VENPO_3912.jpg');
$left=$taille[1]/2;
echo'<img src="../grandes images/VENPO_3912.jpg" alt="" style="position:relative;left:50%;margin-left:-'.$left.'px;"/>';
?>
<img src="../grandes images/VENPO_3912.jpg" width="410" height="615" alt="VENPO_3912" /></div>
</div>

je comprends pas trop la facon d'incorporer tout ca.
Sur le principe j'ai compris, mais dans l'application c'est plus dur. Si tu peux m'expliquer pour que je comprenne..
0
arthezius Messages postés 3756 Statut Membre 475
 
J'ai fais un exemple concrêt que j'ai mis en ligne.
http://tests.arthezius.fr/taille_img.php

Dans cet exemple, voici le code précis que j'ai mis:
<?php
$taille=getimagesize('http://demo.arthezius.fr/arth_cms/images/bonsai.jpg');
//$top=$taille[0]/2;
$left=$taille[1]/2;
$top=$taille[0]/2;
echo'<img src="http://demo.arthezius.fr/arth_cms/images/bonsai.jpg" alt=""  style="position:absolute;top:50%;margin-top:-'.$top.'px;left:50%;top:50%;margin-top:-'.$top.'px;margin-left:-'.$left.'px;"/>';
?>

Mon code ne comporte strictement rien de plus.
J'ai passé position en absolute car je n'ai pas de div dans ma page et en relatif le placement vertical ne se fait pas.
Dans ton cas, les attributs de placement sont me semble t-il dans sur le div page.

Peut-tu me remettre le code précis que tu avais et qui te centrais ton image correctement (html + css).

Dans l'idée et sauf erreur de ma part, tu avais placé les dimensions de l'image dans le width et height du div page. Il te faudra les enlever du CSS comme tu l'avais mis et les placer à la page directement dans le div de la même manière que je l'ai fait dans mon exemple sur le img.
ça donnerai par exemple:
<div id="page" style="margin-top:-'.$top.'px;margin-left:-'.$left.'px;">

Il te faudra enlever ces valeurs de la balise img tel que tu l'a mis là.

Si tu comprends pas tout c'est pas grave. Remet moi au moins le code et j'essaierai de l'adapter.
0