div color de fondo, para cambiar una vez

91

Estoy tratando de hacer que el color de fondo de un div cambie al pasar el mouse .

el div {fondo: blanco;}
el div a: hover {fondo: gris; ancho: 100%;
bloqueo de pantalla; decoración de texto: ninguna;}

solo el enlace dentro del div obtiene el color de fondo .

¿Qué podría hacer para que todo el div obtenga ese color de fondo?

gracias

EDITAR:
¿cómo puedo hacer que todo el div actúe como un enlace? Cuando haces clic en cualquier lugar de ese div, para llevarte a una dirección.

Ionuț G. Stan
fuente
Pruebe este enlace codebins.com/codes/home/4ldqpc0
gaurang171

Respuestas:

117

El " a:hover" literalmente le dice al navegador que cambie las propiedades de la <a>-etiqueta, cuando se pasa el mouse sobre ella. Lo que quizás quiso decir fue " the div:hover" en su lugar, que se activará cuando se elija el div.

Solo para asegurarse, si desea cambiar solo un div en particular, asígnele una identificación (" <div id='something'>") y use el CSS " #something:hover {...}" en su lugar. Si desea editar un grupo de divs, conviértalos en una clase (" <div class='else'>") y use el CSS " .else {...}" en este caso (tenga en cuenta el punto antes del nombre de la clase).

Henrik Paul
fuente
44

Usando Javascript

   <div id="mydiv" style="width:200px;background:white" onmouseover="this.style.background='gray';" onmouseout="this.style.background='white';">
    Jack and Jill went up the hill 
    To fetch a pail of water. 
    Jack fell down and broke his crown, 
    And Jill came tumbling after. 
    </div>
Real Red.
fuente
21

No es necesario fondear. Para cambiar el estilo de div al pasar el mouse, cambie el color de fondo de div al pasar el mouse.

<div class="div_hover"> Change div background color on hover</div>

En la página .css

.div_hover { background-color: #FFFFFF; }

.div_hover:hover { background-color: #000000; }
Virsj Bhorania
fuente
17

Para que todo el div actúe como un enlace, establezca la etiqueta de anclaje como:

display: block

Y establezca la altura de la etiqueta de anclaje al 100%. Luego, establezca una altura fija para su etiqueta div. Luego, diseñe su etiqueta de anclaje como de costumbre.

Por ejemplo:

<html>
<head>
    <title>DIV Link</title>

    <style type="text/css">
    .link-container {
        border: 1px solid;
        width: 50%;
        height: 20px;
    }

    .link-container a {
        display: block;
        background: #c8c8c8;
        height: 100%;
        text-align: center;
    }

    .link-container a:hover {
        background: #f8f8f8;
    }

    </style>

</head>
<body>

    <div class="link-container">
        <a href="http://www.stackoverflow.com">Stack Overflow</a>
    </div>

    <div class="link-container">
        <a href="http://www.stackoverflow.com">Stack Overflow</a>
    </div>

</body> </html>

¡Buena suerte!

Shaun
fuente
11

código HTML:

    <!DOCTYPE html>
    <html>
    <head><title>this is your web page</title></head>
    <body>
    <div class = "nicecolor"></div>
    </body>
    </html>

código CSS:

    .nicecolor {
      color:red;
      width:200px;
      height:200px;
     }

    .nicecolor:hover {
      color:blue;
     }

y así es como cambiarás tu div de rojo a azul colocándote sobre él.

user3689455
fuente
5

Conjunto

display: block;

en un y dar algo de altura

Jamol
fuente
3

simplemente pruebe la propiedad "hover" de CSS. p.ej:

<html>
<head>
    <style>
        div
        {
            height:100px;
            width:100px;
            border:2px solid red;
        }
        div:hover
        {
            background-color:yellow;
        }
    </style>
</head>
<body>
            <a href="#">
                      <div id="ab">
                                <p> hello there </p>
                      </div>
            </a>
</body>

Espero que esto sea de ayuda

Tajveer Singh Nijjar
fuente
1

Puede simplemente poner el ancla alrededor del div.

<a class="big-link"><div>this is a div</div></a>

y entonces

a.big-link {
background-color: 888;
}
a.big-link:hover {
 background-color: f88;
}
Nicki
fuente
0

podría contener el div en la etiqueta de anclaje de esta manera:

a{
  text-decoration:none;
  color:#ffffff;
}
a div{
  width:100px;
  height:100px;
  background:#ff4500;
}
a div:hover{
  background:#0078d7;
}
<body>
<a href="http://example.com">
<div>
Hover me
</div>
</a>
</body>

truco
fuente
-1

Simplemente haga la propiedad !importanten su archivo css para que el color de fondo no cambie al pasar el mouse. Esto funcionó para mí.

Ejemplo:

.fbColor {
    background-color: #3b5998 !important;
    color: white;
}
T-Jayanth Dore
fuente
Debería intentar adjuntar algunos detalles más a la respuesta, ya que seguramente no responde completamente a la pregunta.
Tatranskymedved