HTML - Poner un pie de foto por html sin modificar el css

 
Vista:
Imágen de perfil de Adolfo

Poner un pie de foto por html sin modificar el css

Publicado por Adolfo (3 intervenciones) el 01/01/2023 12:04:16
Buenos días, Amigos. Como creo que tiene más que ver con html que con css, he preferido postearlo en este foro.

Veréis, me encuentro redactando un artículo para mi web y en él existen 4 fotos, repartidas mediante un grid en css para que queden perfectamente alineadas y ocupando el ancho del body disponible. Además, para el diseño responsivo he puesto un mediaquery para que, en los tamaños verticales de los móviles, todo quede alineado en una columna.

El código es éste:

1
2
3
4
5
6
<div class="minicms107_grid2">
<a rel="lightbox[list]" href="albums/userpics/10001/Tela_camuflaje.jpg" title="Telas de Camuflaje variadas"><img class="image_minicms" alt="Telas de Camuflaje variadas" src="albums/userpics/10001/normal_Tela_camuflaje.jpg" title="Telas de Camuflaje variadas" width="180"/></a>
<a rel="lightbox[list]" href="albums/userpics/10001/Tuberia-multicapa-02-990x655.jpg" title="Tubos multicapa en instalación"><img class="image_minicms" alt="Tubos multicapa en instalación" src="albums/userpics/10001/normal_Tuberia-multicapa-02-990x655.jpg" title="Tubos multicapa en instalación" width="180"/></a>
<a rel="lightbox[list]" href="albums/userpics/10001/productos-para-electricidad-de-pvc-tubelectric1.jpg" title="Tubos de PVC para Electricidad."><img class="image_minicms" alt="Tubos de PVC para Electricidad." src="albums/userpics/10001/normal_productos-para-electricidad-de-pvc-tubelectric1.jpg" title="Tubos de PVC para Electricidad." width="180"/></a>
<a rel="lightbox[list]" href="albums/userpics/10001/909411846.jpg" title="Conector de Tubos de PVC."><img class="image_minicms" alt="Goma EVA" src="albums/userpics/10001/909411846.jpg" title="Conector de Tubos de PVC." width="180"/></a>
</div>

el CSS es éste:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
.minicms107_grid2 {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 0.5em;
        justify-items: center;
        align-items: center;
    }
 
@media (max-width: 739px) {
    .minicms107_grid2 {
        grid-template-columns: 1fr;
    }
 
    .minicms107_grid2 .image_minicms {
        width: 100%;
        max-width: 93vw;
        height:auto;
    }
}

Así es como está ahora;
Captura-1

Así es lo que quiero poner:
Captura-2

Y así cómo me gustaría que se viera en diseño responsivo:
Captura-3

Veréis, tengo en cada imagen un title que ya da información sobre la imagen al poner el ratón sobre ella, pero ya sabemos que cada vez más las web se visualizan en entornos móviles y no es posible ponerse en una imagen sin abrir el enlace que tiene no mostrando el title. El camino más sencillo para mí sería incrustar el texto en la foto formando parte del jpg, pero esto no me parece lo más indicado.

Lo que hubiera hecho yo sería añadir el texto mediante html y añadirle la misma clase, con grid, de esta manera, quedaría el texto justo debajo de cada imagen y quedaría el problema resuelto. El inconveniente de hacerlo así es que en la parte responsible, a ponerse todo en una sola columna, quedarían las 4 imagenes seguidas y luego los 4 pies de fotos.

Alguna sugerencia?, preferiría no manipular el css ya que esta clase afecta a otras muchas imágenes de la web y no todas tendrían que ir con pie de foto (aunque si se requiere, tampoco me parece mala idea).

Gracias anticipadas.

Adolfo Ventas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Adolfo

Poner un pie de foto por html sin modificar el css

Publicado por Adolfo (3 intervenciones) el 03/01/2023 11:14:33
Me voy respondiendo yo mismo, creo que la solución estaría por aqui;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figcaption

Añadiría un css para las propiedades del <figcaption>. Aún tengo que hacer algunas pruebas, pero de entrada el mediaquery funciona correctamente (se ponen las imágenes en una sola columna y cada una con su pie de foto correspondiente), aunque algo afecta a la imagen que no toma el ancho de la pantalla (tengo que verlo mejor). Y otra cosa que me atrevo a pronosticar es que no queden todas las imágenes alineadas en la misma fila dado que el pie de foto añade mayor altura (lógicamente), siempre y cuando los pies de foto tengan las mismas líneas de textos, se mantendrán en la misma altura, pero si una de ellas, el pie de foto tiene dos líneas, esa imagen quedará más alta que las demás que únicamente el texto ocupa una sola línea.

Seguimos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Adolfo

Poner un pie de foto por html sin modificar el css

Publicado por Adolfo (3 intervenciones) el 04/01/2023 09:28:27
Pues resuelto el tema, finalmente lo he dejado así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div class="minicms107_grid2">
            <figure>
                <a rel="lightbox[list]" href="albums/userpics/10001/Tela_camuflaje.jpg" title="Telas de Camuflaje variadas"><img class="image_minicms" alt="Telas de Camuflaje variadas" src="albums/userpics/10001/normal_Tela_camuflaje.jpg" title="Telas de Camuflaje variadas" width="180"></a>
                <figcaption>Telas de Camuflaje</figcaption>
            </figure>
            <figure>
                <a rel="lightbox[list]" href="albums/userpics/10001/Tuberia-multicapa-02-990x655.jpg" title="Tubos multicapa en instalación"><img class="image_minicms" alt="Tubos multicapa en instalación" src="albums/userpics/10001/normal_Tuberia-multicapa-02-990x655.jpg" title="Tubos multicapa en instalación" width="180"></a>
                <figcaption>Tubos Multicapa</figcaption>
            </figure>
            <figure>
                <a rel="lightbox[list]" href="albums/userpics/10001/productos-para-electricidad-de-pvc-tubelectric1.jpg" title="Tubos de PVC para Electricidad."><img class="image_minicms" alt="Tubos de PVC para Electricidad." src="albums/userpics/10001/normal_productos-para-electricidad-de-pvc-tubelectric1.jpg" title="Tubos de PVC para Electricidad." width="180"></a>
                <figcaption>Tubos de PVC</figcaption>
            </figure>
            <figure>
                <a rel="lightbox[list]" href="albums/userpics/10001/909411846.jpg" title="Conector de Tubos de PVC."><img class="image_minicms" alt="Conector de Tubos de PVC." src="albums/userpics/10001/909411846.jpg" title="Conector de Tubos de PVC." width="180"></a>
                <figcaption>Conector de Tubos</figcaption>
            </figure>
        </div>

Para resolver los problemas que me daba en el css, no he tenido más remedio que añadir unos estilos a <figure> y <figcaption>;

1
2
3
4
5
6
7
8
9
figure {
    margin: auto;
    }
 
    figcaption {
    text-align: center;
    color: var(--color_destacado);
 
    }

Con ésto sale así en la versión normal:

1

Y así en la versión responsive;


2

He intentado que el texto quedara dentro de la imagen con la posición relativa. El problema venía en cuadrar con la versión responsive, porque dejaba de quedar exactamente donde yo quería y no quería añadir otro estilo al mediaquery porque no era algo transcendental para lo que buscaba. El problema era que en la versión normal quedaba correctamente en la posición de la imagen, en la versión responsive quedaba justo en la línea de la imagen. Si subía la posición para cuadrar en la versión resonsive se me quedaba casi en el centro de la imagen en la versión normal. Finalmente me he decidido a dejarla así, fuera de la imagen.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar