¿Cómo usar enlaces en la clase card-img-overlay en Bootstrap 4?

Cuando ponemos cualquier enlace dentro de una tarjeta de arranque, funciona bien hasta que usamos card-img-overlay para poner una imagen como fondo de esa tarjeta.

  • Tarjeta Bootstrap: una tarjeta en BootStrap 4 es un contenedor de contenido flexible y extensible. Incluye opciones para encabezados, pies de página, contenido, colores, enlaces, etc.
  • Superposiciones de imagen de tarjeta: card-img-overlay se usa para configurar la imagen como imagen de fondo de la tarjeta y agregar texto sobre la imagen.
    Sintaxis: para superposición de tarjetas
    <div class="card">
     <img src="..."/>
     <div class="card-img-overlay">
      <p class="text">....</p>
     </div>
    </div>

Enfoque: todos los enlaces ubicados dentro de la clase card-img-overlay funcionan, pero los enlaces ubicados fuera de esta clase no funcionan. Para que estos enlaces funcionen, establezca la posición de estos enlaces como ‘relativa’.

Código CSS: Colóquelo dentro de la etiqueta <style>.

.card-link 
    { 
    position:relative; 
    }

El siguiente ejemplo ilustra el enfoque:

Ejemplo 1: este ejemplo ilustra la tarjeta card-img-overlay, en la primera tarjeta no estamos usando card-img-overlay pero cuando usamos card-img-overlay los enlaces no funcionan, incluso el texto no responde como texto . Se comporta totalmente como una imagen.

  • Programa:

    <!DOCTYPE html>
    <html lang="en">
      
    <head>
        <title>Bootstrap Card</title>
        <meta charset="utf-8">
        <meta name="viewport" 
              content="width=device-width, initial-scale=1">
        <link rel="stylesheet"
              href=
        <script src=
        </script>
        <script src=
        </script>
        <script src=
        </script>
        <style>
            .card {
                width: 250px;
                height: 300px;
                border: 2px solid black;
                padding: 5px;
            }
              
            h1 {
                color: green;
                text-align: center;
            }
              
            img {
                height: 120px;
            }
              
            .left {
                float: left;
            }
              
            .right {
                float: right;
            }
              
            .container {
                margin-top: 50px;
                width: 600px;
                height: auto;
            }
        </style>
    </head>
      
    <body>
        <div class="container">
            <h1>GeeksforGeeks</h1>
            <div class="card left">
                <img class="card-img-top" src=
                <div class="card-inverse">
                    <h3 class="text-stroke">GeeksforGeeks</h3>
                </div>
                <div class="card-block">
                    <a href="#" class="card-link">Card link</a>
                    <p class="card-text">A Computer Science Portal</p>
                </div>
                <div class="card-footer">
                    <small class="text-muted">Card link is working</small>
                </div>
            </div>
      
            <div class="card right">
                <img class="card-img-top" src=
                <div class="card-img-overlay card-inverse">
                    <h3 class="text-stroke">GeeksforGeeks</h3>
                </div>
                <div class="card-block">
                    <a href="#" class="card-link">Card link</a>
                    <p class="card-text">A Computer Science Portal</p>
                </div>
                <div class="card-footer">
                    <small class="text-muted">Card link is not working</small>
                </div>
            </div>
        </div>
    </body>
      
    </html>
  • Producción:

Ejemplo 2: Este ejemplo ilustra la tarjeta card-img-overlay, en la primera tarjeta no estamos usando card-img-overlay pero cuando usamos card-img-overlay los enlaces funcionan y el texto también se comporta como texto.

  • Programa:

    <!DOCTYPE html>
    <html lang="en">
      
    <head>
        <title>Bootstrap Card</title>
        <meta charset="utf-8">
        <meta name="viewport"
            content="width=device-width, initial-scale=1">
        <link rel="stylesheet"
            href=
        <script src=
        </script>
        <script src=
        </script>
        <script src=
        </script>
        <style>
           .card-link{
             position:relative;
            }
            .card {
                width: 250px;
                height: 300px;
                border: 2px solid black;
                padding: 5px;
            }
      
             
      
            h1 {
                color: green;
                text-align: center;
            }
              
            img {
                height: 120px;
            }
              
            .left {
                float: left;
            }
              
            .right {
                float: right;
            }
              
            .container {
                margin-top: 50px;
                width: 600px;
                height: auto;
            }
              
        </style>
    </head>
      
    <body>
        <div class="container">
            <h1>GeeksforGeeks</h1>
            <div class="card left">
                <img class="card-img-top" src=
                <div class="card-inverse">
                    <h3 class="text-stroke">GeeksforGeeks</h3>
                </div>
                <div class="card-block">
                    <a href="#" class="card-link">Card link</a>
                    <p class="card-text">A Computer Science Portal</p>
                </div>
                <div class="card-footer">
                    <small class="text-muted">Card link is working</small>
                </div>
            </div>
      
            <div class="card right">
                <img class="card-img-top" src=
                <div class="card-img-overlay card-inverse">
                    <h3 class="text-stroke">GeeksforGeeks</h3>
                    <div class="card-block">
                        <a href="#" class="card-link text-white" >Card link</a>
                        <p class="card-text">A Computer Science Portal</p>
                    </div>
                </div>
                <a href="#" class="card-link " >Card link</a>
                <div class="card-footer">
                    <small>Card link is  working</small>
                </div>
            </div>
        </div>
    </body>
      
    </html>                    
  • Producción:

Nota: En el segundo ejemplo, el texto silenciado no se comporta como texto porque está fuera del div card-link.

Publicación traducida automáticamente

Artículo escrito por g_ragini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *