Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
3
respuestas

[Duda] ¿Como puedo cambiar una imagen svg x otra?

El detalle es el siguiente estoy haciendo mi footer para el enciptador, y use iconos en svg; el punto es que al intentar cambiar el color con la propiedad fill en ccs el color no cambio, asi que decidí usar otro icono svg esta vez con el color de la red social, entonces quiero hacer una animacion con el hover que desaparezca el primer icono y cuando pase el cursor aparezca el icono con el color de linkedin y github

 <footer>
      <p class="autor">Autor: Marcos González Chávez</p>

      <a href="#" class="red-social">
        <img src="Imagenes/github.svg" class="icon" alt="icono de Github">
        <img src="Imagenes/github-black.svg" class="icon-color" alt="icono Github">
      </a>

      <a href="#" class="red-social">
        <img src="Imagenes/linkedin.svg" class="icon" alt="Icono de Linkedin">
        <img src="Imagenes/linkedin-blue.svg" class="Icon-color" alt="Icono linkedin">
      </a>
      <p>&copy; Copyright Junior Developer Alura 2023</p>
    </footer>

El linkedin.svg lo edite y le coloque el fill #FFFFFF En ccs con la propiedad display oculto linkedin-blue por ejemplo

¿Cómo puedo pocicionar linkedin-blue sobre linkedin?, osea que este una imagen sobre otra y como puedo usar el efecto hover para cambiar entre una imagen y otra

Código ccs

.icon{
    width: 24px;
    height: 24px;
}

.red-social .icon-color{
    display: none;
}

.red-social .icon:hover{
    display: none;
}

.red-social .icon-color:hover{
    display: block;
}

Espero haber me explicado bn Si tienen alguna forma diferente de hacerlo se agradece Desde ya agradezco la ayuda brindada

3 respuestas

Entendemos que desea cambiar la imagen al pasar el mouse sobre ella. Para lograr esto, puede intentar agregar una clase única para cada imagen. Luego, puede asignar la clase a la imagen con el color deseado y agregar una regla de estilo CSS para mostrar la imagen con la clase al pasar el mouse sobre ella. Por ejemplo, si la imagen con el fondo blanco se llama "linkedin.svg" y la imagen con el fondo azul se llama "linkedin-blue.svg", puede agregar una clase a cada uno que se pueda usar como selector en CSS. Después, puede agregar la regla de estilo CSS apropiada para mostrar la imagen correspondiente en el hover:

.linkedin-blue: hover {display: block;}

Esperamos que esto haya sido útil. Si tiene alguna pregunta más, ¡no dude en hacérnoslo saber!

Un saludo!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios
solución!

hola de nuevo comparto la modificación de mi código el cual aún contiene errores

HTML

 <footer>
      <p class="autor">Autor: Marcos González Chávez</p>

      <a href="#" class="red-social">
        <img src="Imagenes/github.svg" class="icon" alt="icono de Github">
        <img src="Imagenes/github-black.svg" class="icon-color" alt="icono Github">
      </a>

      <a href="#" class="red-social">
        <img src="Imagenes/linkedin.svg" class="icon" alt="Icono de Linkedin">
        <img src="Imagenes/linkedin-blue.svg" class="Icon-color" alt="Icono linkedin">
      </a>
      <p>&copy; Copyright Junior Developer Alura 2023</p>
    </footer>

Código CCS

footer{
    padding: 20px;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 2px;
}


.autor{
    font-size: 12px;
}

.icon{
    width: 24px;
    height: 24px;
}

.icon-color{
    width: 24px;
    height: 24px;
}

.red-social img:last-child{
    display:none;
}

.red-social:hover img:last-child{
    display: block;
}

.red-social:hover img:first-child{
    display: none;
}

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

En la imagen 1 se puede ver como los iconos se encuentran de color blanco y centrados, mientras que en la imagen 2 los iconos ya con el color correspondiente se muestran alineados a la izquierda Lo que busco es poder colocar los en la misma posición que los iconos blancos no se si deba agregar una pocision relative o un float para poder colocarlos me pueden ayudar

Nota: en el documento de estilos el body lleva lo siguiente

*{
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

Pienso que no debería afectar

Hola si entendí bien quieres cambiar la imagen por otra cuando pases el cursor sobre el icono? lo puedes hacer con javascript añadiendo en la imagen los atributos onmouseover y onmouseout y asignarles una funcion que deben ejecutar por ejemplo:

<img src="Imagenes/github.svg" class="icon"  onmouseover="hover(this)" onmouseout="unhover(this) alt="icono de Github">
                                                                                                                      y en tu script 
                                                                                    function hover(element){
                                                                                        element.setAttribute('src',"Imagenes/github-black.svg");
                                                                                        }
                                                                                    function unhover(element){
                                                                                                        element.setAttribute('src',"Imagenes/github.svg");
                                                                                                                                                      }

o tambien puedes cambiar los iconos directamente a codigo de svg y solo agregar el efecto con css cambiando el fill de ese elemento.