Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/04/2011, 14h15   #1
Invité de passage
 
Homme Marc Olivier KAMGA
JAVA/J2EE Oracle MySQL PostrgreSQL
Inscription : septembre 2010
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Marc Olivier KAMGA
Localisation : Cameroun

Informations professionnelles :
Activité : JAVA/J2EE Oracle MySQL PostrgreSQL
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2010
Messages : 21
Points : 0
Points : 0
Envoyer un message via Skype™ à makao
Par défaut Element centré verticalement et horizontalement dans une div

Bonjour à tous

Je souhaiterais centrer horizontalement et verticalement un élément DOM mais plus particulièrement une image dans un élément DOM de type div avec javascript.
Il est question d'envelopper mon élément dans une ou plusieurs divisions et que l'image soit centrée par rapport à la division la plus externe.

En effet ce que je connais c'est soit uniquement une taille maximale pour chaque côte de l'image ou alors une largeur max et une hauteur max.
L'élement div le plus externe aura donc une largeur et une hauteur connues qui sont la largeur max et la hauteur max ci-dessus évoquées.

Je cherche une solution compatible avec tous les navigateurs ou à défaut le maximum des navigateurs.
Lors de mes recherches, je suis tombé sur un lien que voici :
http://www.jakpsatweb.cz/css/css-ver...-solution.html

J'ai essayé de l'adapter à javascript sans succès.

voici le code que j'ai écrit:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
 
/**
 * Enveloppe l'élément spécifié dans une division dont la taille est obtenu à
 * partir de la taille max ou des tailles max spécifiées.
 * L'élément enveloppé est placé au centre (horizontalement et verticalement) de l'enveloppe.
 * Les cas de figures des paramètres sont les suivants :
 * Cas 1
 * -----
 *    - L'élément à enveloppé
 *    - La taille maximale (côté du carré représentant l'espace de l'enveloppe)
 * Cas 2
 * -----
 *    - L'élément à enveloppé
 *    - La largeur maximale de l'élément (largeur de l'enveloppe)
 *    - La hauteur maximale de l'élément (hauteur de l'enveloppe)
 * Cas 3
 * -----
 *    - L'élément à enveloppé
 *    - La largeur maximale de l'élément (largeur de l'enveloppe)
 *    - La hauteur maximale de l'élément (hauteur de l'enveloppe)
 *    - La propriété overflow de l'enveloppe
 * Par défaut la propriété oveflow de l'enveloppe est à hidden
 */
SereniXUtils.wrapAndCenter=function() {
    if (arguments.length < 2) return;
    var maxWidth;
    var maxHeight;
    var elt = arguments[0];
    var overflow;
    if (arguments.length == 2) {
        maxWidth = arguments[1];
        maxHeight = maxWidth;
        overflow = "hidden";
    }
    else {
        maxWidth = arguments[1];
        maxHeight = arguments[2];
        if (arguments.length>= 4) overflow = arguments[3];
        else overflow="hidden";
    }
    if (typeof elt == 'string') elt = SereniXUtils.getElementById(elt);
    if (elt == null) return null;
    var middle = document.createElement('div');
    middle.appendChild(elt);
    var div = document.createElement('div');
    div.appendChild(middle);
    div.style.width = maxWidth;
    div.style.height = maxHeight;
    div.style.display="table";
    div.style.oveflow=overflow;
    var userAgent = navigator.userAgent.toLowerCase();
    if (userAgent.indexOf("msie")>=0 ||
        userAgent.indexOf("microsoft internet explorer") >=0) {
        middle.position="absolute";
        middle.top="50%";
        middle.textAlign="center";
        middle.style.width = "100%";
        elt.style.position="relative";
        elt.style.top="-50%";
        elt.style.textAlign="left";
    }
    else {
        middle.display="table-cell";
        middle.verticalAlign="middle";
    }
    elt.style.marginLeft = "auto";
    elt.style.marginRight = "auto";
    return div;
}

J'ai besoin de votre aide pour le faire marcher.

Merci d'avance
makao est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2011, 14h19   #2
Invité de passage
 
Homme Marc Olivier KAMGA
JAVA/J2EE Oracle MySQL PostrgreSQL
Inscription : septembre 2010
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Marc Olivier KAMGA
Localisation : Cameroun

Informations professionnelles :
Activité : JAVA/J2EE Oracle MySQL PostrgreSQL
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2010
Messages : 21
Points : 0
Points : 0
Envoyer un message via Skype™ à makao
Bonjour

Je reste ouvert même à d'autres solutions à mon problème

Merci d'avance
makao est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2011, 15h07   #3
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
margin auto et l'element se centra tout seul ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2011, 17h48   #4
Invité de passage
 
Homme Marc Olivier KAMGA
JAVA/J2EE Oracle MySQL PostrgreSQL
Inscription : septembre 2010
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Marc Olivier KAMGA
Localisation : Cameroun

Informations professionnelles :
Activité : JAVA/J2EE Oracle MySQL PostrgreSQL
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2010
Messages : 21
Points : 0
Points : 0
Envoyer un message via Skype™ à makao
Merci pour la réponse

Mais je ne comprends pas la réponse.

Sur quel élément dans mon exemple de code il faut mettre margin auto ? div, middle ou element
makao est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2011, 08h46   #5
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
sur l'élément à centrer
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2011, 17h46   #6
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 860
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 860
Points : 1 364
Points : 1 364
sans certitude, essaye un truc comme ça :

Code html :
1
2
3
<div id="conteneur" style="display:table-cell;vertical-align:middle;">
  <div id="centre" style="position:relative;margin:auto;">text</div>
</div>
Willpower est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 08h48   #7
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
sinon avec jquery
http://web.enavu.com/snippets/center...ss-or-with-js/
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h27.


 
 
 
 
Partenaires

Hébergement Web