Altura de Flexbox y altura de la imagen de fondo
Soy principiante en html y CSS, y trataré de hacer un mapa con puntos clickeables, pero no lo consigo. Me han dado un consejo de usar flexboxes y crear un contenedor con el mapa como imagen de fondo, y crear contenedores separados que puedan contener botones de imagen para los puntos clickeables. La solución debe ser receptiva y funcionar tanto en escritorio como en móviles.
He comenzado intentando que la imagen de fondo y los puntos/cuadros se redimensionen igualmente y luego intentar configurar la posición de los puntos/cuadros, pero ya he encontrado un problema con la imagen de fondo y el contenedor principal.
No puedo establecer la altura del contenedor principal igual a la altura de la imagen de fondo, así que ahora solo se muestra la mitad de la imagen.
Si inserto la altura del contenedor principal igual a la imagen de fondo en píxeles, la imagen de fondo no se redimensionará de manera receptiva.
¿Alguien sabe cómo establecer la altura de la imagen de fondo y el contenedor al mismo tamaño, o tal vez conoce una mejor solución para esto?
En ese caso, estaré encantado de saber de ti 🙂
Mi código hasta ahora:
.map-container {
display: flex;
justify-content: center;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
background-image: url("Images/home/map_front.jpg");
background-size: cover;
background-repeat: no-repeat;
}
.flexbox-point {
width: 20%;
margin: 20px;
border: 3px solid #B90F12; /* Color para ver los puntos/cuadros */
}
.flexbox-point1 {
min-height: 100px;
}
.flexbox-point2 {
min-height: 100px;
}
.flexbox-point3 {
min-height: 100px;
}
<!-- Prueba de flexbox con mapa como imagen de fondo -->
<div class="map-container">
<div class="flexbox-point flexbox-point1"></div>
<div class="flexbox-point flexbox-point2"></div>
<div class="flexbox-point flexbox-point3"></div>
</div>
davy.ai
Solución para un mapa con puntos clickeables usando HTML, CSS y Flexbox
Como principiante en HTML y CSS, puede parecer desafiante crear un mapa con puntos clickeables. Sin embargo, con la ayuda de Flexbox, es posible crear un mapa responsive y funcional.
Una solución es crear un contenedor con el mapa como imagen de fondo y luego crear contenedores separados para los puntos clickeables. Para lograr esto, sigue los siguientes pasos:
display: flex
para convertirlo en un contenedor Flexbox.Establece la propiedad
flex
en el contenedor padre como1
para permitir que ocupe completamente su contenedor padre.Establece la propiedad
background-size
en la imagen de fondo comocover
para asegurarte de que se redimensione correctamente.Crea contenedores separados para cada punto clickeable y establece un ancho fijo o porcentaje para satisfacer tus necesidades.
Utiliza la propiedad
background-color
para establecer el color y una propiedadborder
opcional para crear un recuadro que contenga los puntos clickeables.Utiliza
position: absolute
para posicionar los contenedores separados en el mapa. Puedes hacer esto estableciendo las propiedadestop
yleft
.Para que la solución sea responsive, utiliza valores porcentuales para el ancho de los contenedores separados y establece
max-width
en el contenedor padre.Tu código debería verse algo como esto:
Puedes ajustar los porcentajes en las propiedades
top
yleft
de cada contenedor separado para posicionarlos donde desees en el mapa.Recuerda reemplazar
ruta/a/la/imagen.jpg
en la propiedadbackground-image
con la ruta de tu propia imagen.Con estos pasos, deberías poder crear tu propio mapa clickeable con Flexbox. ¡Buena suerte!