2017-03-22 1 views
1

J'ai une image d'arrière-plan réactive, donc sa largeur et sa hauteur changent lors du redimensionnement de l'écran. Sur ce fond, il y a un élément avec une position absolue. Maintenant, mon problème est que lors du redimensionnement de l'écran, l'élément positionné absolu ne suit pas sa place sur l'image d'arrière-plan ...Css élément positionné en absolu sur l'image d'arrière-plan (responsive)

Ceci est mon code HTML:

CSS:

#all { 
    width: 100%; 
    height: 600px; 
    position: relative; 
    max-width: 1240px; 
    background: url('beach_to_meter.svg') no-repeat; 
} 
#clicked1 { 
    position: absolute; 
    left: 27%; 
    top: 28%; 
    z-index: 100; 
    width: 200px; 
} 
#clicked1 .box { 
    width:14vw; 
    max-width: 180px; 
} 

plein écran est quelque chose comme ceci: enter image description here Mais lorsque l'écran est plus petit, les mouvements des éléments positionnés absolus, comme ceci: enter image description here entrer le code ici

Répondre

0

Eh bien, si vous voulez qu'une image apparaisse au-dessus d'une autre à un endroit précis, vous devriez essayer vw et vh (largeur verticale, hauteur verticale), je me souviens de faire quelque chose comme ça. Si cela ne résout pas votre problème, vous devez utiliser px, et de détecter la taille de l'écran avec javascript afin que vous sachiez où placer les éléments.

+0

Nous vous remercions de votre réponse rapide. J'ai déjà essayé avec vh et vw, mais j'ai eu le même résultat ... Et vous savez comment faire ça avec JS? – patie

+0

Je suis au travail en ce moment, donc je ne peux pas élaborer sur le code, mais quand je rentre à la maison dans environ 8 heures si personne n'a résolu votre problème, je vais voir ce que je peux faire. – diogoalvesmf

+0

Ce serait génial! Merci beaucoup! En attendant, je vais continuer à essayer de le résoudre, donc si je peux le faire, je vous le ferai savoir. – patie

0

Je pense que CSS Transform-translate est plutôt utile dans l'alignement des éléments? Peut-être que vous essayez? Vous pouvez définir que la petite image toujours rester environ 25% de la hauteur de la grande image:

#clicked1 .box { 
    transform:translateY(25%); 
    transform:translateX(25%); 
} 

Plus d'info: https://www.w3schools.com/cssref/css3_pr_transform.asp. Je n'ai pas votre source d'image donc je n'ai pas pu essayer. Mais espérons que cela aide.

+0

Merci! J'ai essayé, mais malheureusement avec le même résultat que mon exemple ... – patie