Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

297
Visualizações
¿Cómo puedo asignar el tamaño y la posición de los elementos al tamaño y la posición de otros elementos al cambiar el tamaño?

Así que me encontré con un problema al tratar de hacer clic en los objetos de una imagen. Tengo una imagen con 3 objetos que quiero vincular a 3 páginas diferentes/ejecutar 3 funciones diferentes al hacer clic.

Ahora mi problema ocurre cuando cambio el tamaño de mi ventana. La imagen tiene el siguiente estilo para mostrar siempre los objetos, incluso si cambio el tamaño de la ventana y lleno toda la pantalla.

 img { object-fit: cover; object-position: center; width: 100%; height: calc(100vh - 90px); }

Dado que los objetos son bastante grandes y cuando cambio el tamaño, digamos en la vista móvil, los enlaces se superpondrán y serán más grandes que la pantalla misma.

Esta es la estructura HTML actual, que puedo cambiar.

 <div> <img src="img/steintafelAussen.jpg" alt="Kircheneingang" /> <div class="buttons"> <button class="btn-1"></button> <button class="btn-2"></button> <button class="btn-3"></button> </div> </div>

Ahora mi pregunta es, ¿sería posible asignar los tamaños y las posiciones de los botones a la imagen, que se reescalen automáticamente, o necesitaría usar consultas de medios para lograrlo?

Estaba pensando en rastrear la escala inicial de la imagen de alguien y aplicarla a los enlaces con transform: scale(); , ¿quizás?

¿Puedo usar un SVG transparente que se coloca sobre la imagen, tiene 3 objetos con eventListeners en lugar de enlaces?

Usar JS está bien, ya que es una aplicación vue 3.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

He resuelto el problema colocando un SVG del mismo tamaño sobre la imagen y agregando eventListeners a las rutas de los enlaces. Conduciendo al siguiente código:

 .wrapper { aspect-ratio: 4 / 3; position: absolute; max-height: calc(100vh - 90px); /*Calc because my header and footer are 40px and 50px otherwise it would be 100vh*/ margin: auto; width: auto; top: 40px; /*header is 40px*/ right: 0; bottom: 50px; /*footer is 50px*/ left: 0; } .img, .overlay-svg { position: absolute; max-height: 100%; margin: auto; width: auto; top: 0; right: 0; bottom: 0; left: 0; } <div class="wrapper"> <img class="img" src="/path/to/image" /> <svg class="overlay-svg" viewBox="0 0 2049 1537" xmlns="http://www.w3.org/2000/svg" > <path class="btn-svg" d="M810 523V495.5L890 479.5H993.5L1090 495.5L1178 523V1311L787 1329.5L799.5 940.5L810 523Z" /> <path class="btn-svg" d="M1461 672L1808 585L1832 1537H1471.5L1461 672Z" /> <path class="btn-svg btn-lamp" d="M481 567L517 512L544 567L577 589.5L544 699L506.5 739.5L466 690L451 579L481 567Z" /> </svg> </div>
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda