IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Positionnement div superposant une image


Sujet :

Positionnement en CSS

  1. #1
    Membre du Club
    Profil pro
    Développeur mobile
    Inscrit en
    Novembre 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Novembre 2007
    Messages : 107
    Points : 58
    Points
    58
    Par défaut Positionnement div superposant une image
    Bonjour,

    Je cherche depuis hier comment placer un div par-dessus une image, mais selon des critères bien particuliers :
    - l'image fait la largeur de la page web (width: 100%), et elle n'est pas déformée (la hauteur reste proportionnelle à la largeur)
    - le div que je souhaite placer est à 23% de la hauteur de l'image (top: 23%), et est aligné à gauche dans un div parent, superposé à l'image, centré, de largeur fixe (1000px).

    Ici un visuel pour illustrer mon propos :



    Comment, donc, placer mon div jaune ?

    Merci par avance pour votre aide !

  2. #2
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Points : 8 084
    Points
    8 084
    Par défaut
    Salut,

    Montre nous le code que tu as fait déjà, ça nous donnera une base de travail.
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  3. #3
    Membre du Club
    Profil pro
    Développeur mobile
    Inscrit en
    Novembre 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Novembre 2007
    Messages : 107
    Points : 58
    Points
    58
    Par défaut
    Voici le code actuel :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <body>
    <div style="width: 100%; position: relative;">
    	<img src="imagefond.jpg" style="width: 100%; position: relative; z-index: 0; display: block;" />
    	<div style="width: auto; max-width: 1000px; margin: 0 auto; height: 100%; position: relative; background-color: #FF0000; z-index: 1;">
    		<div style="position: absolute; top: 23%; left: 0; width: 600px; height: 200px; background-color: #FFFF00;">
    			div jaune
    		</div>
    	</div>
    </div>
    </body>

    Merci !

  4. #4
    Membre éclairé
    Homme Profil pro
    Retraité informatique
    Inscrit en
    Juin 2012
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 519
    Points : 705
    Points
    705
    Par défaut
    La boite jaune en relative fonctionne bien, mais il faut une hauteur pour la boite rouge.
    Voici un essai: http://codepen.io/anon/pen/guJeA
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #fond        { width:900px; height:auto; background-color:green;; }
    .rouge       { width:800px; height:500px; margin:0 auto; background-color:red; }
    .jaune       { width:600px; height:200px; background-color:yellow; position: relative; top:23%; left:0; }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <div id="fond">
    	<div class="rouge">
    		<div class="jaune">
    			div jaune
    		</div>
    	</div>
    </div>

  5. #5
    Membre du Club
    Profil pro
    Développeur mobile
    Inscrit en
    Novembre 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Novembre 2007
    Messages : 107
    Points : 58
    Points
    58
    Par défaut
    Merci, mais ça ne répond pas à mon problème...

    Le fond comporte une image, dont la largeur est celle de la page (pas de background-image, donc), et le div rouge doit avoir la même hauteur que l'image, afin que le div jaune se positionne à 23% de la hauteur de l'image ...



    Une idée ?

  6. #6
    Membre émérite
    Avatar de Candygirl
    Femme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 51
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Points : 2 907
    Points
    2 907
    Par défaut
    Hello,

    C'est quelque chose comme ça que tu veux obtenir ?
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <div style="position: relative;">
    	<img src="imagefond.jpg" style="width: 100%; display: block;" />
    	<div style="max-width: 1000px; margin:auto; left:0; right:0; top:0; height: 100%; position: absolute; background-color: #FF0000;">
    		<div style="position: relative; top: 23%; width: 600px; height: 200px; background-color: #FFFF00;">
    			div jaune
    		</div>
    	</div>
    </div>
    Les bons réflexes:
    • avant de poser une question:
      règles | faq | tutoriels | recherche
    • clarté, politesse, vocabulaire et orthographe soignés = efficacité
    • remercier ceux qui ont pris le temps d'aider et si c'est le cas

  7. #7
    Membre du Club
    Profil pro
    Développeur mobile
    Inscrit en
    Novembre 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Novembre 2007
    Messages : 107
    Points : 58
    Points
    58
    Par défaut
    YES ! Merci beaucoup, c'est exactement ça que je voulais !!

    Cependant, ça ne marche pas bien sous IE et Safari...
    Je vais essayer de trouver pourquoi, mais si quelqu'un a une idée, je suis preneur

  8. #8
    Membre émérite
    Avatar de Candygirl
    Femme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 51
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Points : 2 907
    Points
    2 907
    Par défaut
    Ah oui tiens IE a un problème avec le centrage du max-width... Tu peux le remplacer par un width vu que tu disais vouloir une largeur fixe. En principe ça devrait être centré sur IE8+ mais pas en dessous. Si tu veux le centrer sur les vieux IE, il faut passer par la technique de la marge négative.

    J'ai du changer d'image pour constater le problème sur Safari. Tu peux mettre un position:absolute au lieu de relative sur ton div jaune pour le corriger. Par défaut je préfère laisser dans le flux si possible mais bon là, ça change pas grand chose, tout dépend du contexte après...
    Les bons réflexes:
    • avant de poser une question:
      règles | faq | tutoriels | recherche
    • clarté, politesse, vocabulaire et orthographe soignés = efficacité
    • remercier ceux qui ont pris le temps d'aider et si c'est le cas

  9. #9
    Membre éclairé
    Homme Profil pro
    Retraité informatique
    Inscrit en
    Juin 2012
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 519
    Points : 705
    Points
    705
    Par défaut
    Bravo Candygirl, j'avais pas trop creusé.
    Mais pourquoi ne pas mettre l'image en background-image de la div de fond?
    Et pourquoi hardcoder le style dans le code html au lieu de le mettre dans un style interne ou externe?

    Juste une question comme ça ...

  10. #10
    Membre du Club
    Profil pro
    Développeur mobile
    Inscrit en
    Novembre 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Novembre 2007
    Messages : 107
    Points : 58
    Points
    58
    Par défaut
    1000 mercis Candygirl, ça marche impec !
    Il faudra juste que je règle à grands renforts de media queries le cas où la largeur de ma page est inférieure à 1000px, mais ça n'est pas un problème.

    JefReb : si l'image est en background, ça marche pas des masses, la hauteur du div principal n'est donc plus proportionnel à la largeur de l'image... Et le style est hardcodé juste pour illustrer mon propos, j'utilise un vrai style externe dans la vraie vie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Positionner un div sur une image de taille variable
    Par LaDentDeLait dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 27/04/2014, 00h34
  2. Superposer une image avec un graphique
    Par mathilde_b dans le forum Images
    Réponses: 1
    Dernier message: 13/02/2007, 10h42
  3. Positionner et fixer une image.
    Par ox@na dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 18/08/2006, 08h36
  4. Passer une div derrière une image
    Par Ricou13 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 21/07/2005, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo