Foros del Web » Creando para Internet » CSS »

convertir un div en un enlace

Estas en el tema de convertir un div en un enlace en el foro de CSS en Foros del Web. Muy buenas estoy intentando que un div se convierta en un boton y que al pasar en cursor por encima cambie el color de fondo ...
  #1 (permalink)  
Antiguo 06/11/2013, 08:51
Avatar de capagris  
Fecha de Ingreso: julio-2003
Mensajes: 131
Antigüedad: 21 años, 5 meses
Puntos: 0
convertir un div en un enlace

Muy buenas estoy intentando que un div se convierta en un boton y que al pasar en cursor por encima cambie el color de fondo del div pero no me sale. estoy haciendo esto:

El codigo HTML con CSS:
Código HTML:
<a href="#" class="boton">
<div style="width:332px; height:41px; background-color:#2fb983; position:inherit; float:left; color:#FFF; padding:80px 0 0 20px; font-size:22px;">texto de ejemplo</div></a> 
el CSS del enlace:
Código HTML:
a.boton:hover {background:#dd0028;}
No quiero que el enlace sea en el texto, si no en todo el DIV. Saludos
__________________
..::Todo lo que no aprendí, no se me ha olvidado.::..
  #2 (permalink)  
Antiguo 06/11/2013, 09:12
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 11 años, 3 meses
Puntos: 578
Respuesta: convertir un div en un enlace

Dale diferente altura o anchura al div, solo es un efecto óptico lo que ocurre.

Última edición por PHPeros; 06/11/2013 a las 09:19
  #3 (permalink)  
Antiguo 06/11/2013, 09:36
Avatar de capagris  
Fecha de Ingreso: julio-2003
Mensajes: 131
Antigüedad: 21 años, 5 meses
Puntos: 0
Respuesta: convertir un div en un enlace

Cita:
Iniciado por PHPeros Ver Mensaje
Dale diferente altura o anchura al div, solo es un efecto óptico lo que ocurre.
perdona pero no te entiendo, si lo que quiero es que cambie de color el fondo del div al pasar el cursor...
__________________
..::Todo lo que no aprendí, no se me ha olvidado.::..
  #4 (permalink)  
Antiguo 06/11/2013, 09:56
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 13 años, 3 meses
Puntos: 397
Respuesta: convertir un div en un enlace

Unas observaciones, deberías usar span en vez de div si un a va a ser el padre.

Si lo cambias, el span debe tener display inline-block o block

Con respecto a tu dilema es tan sencillo como esto:

Código CSS:
Ver original
  1. a.boton:hover, a.boton:hover div {
  2.     background:#dd0028;
  3. }

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #5 (permalink)  
Antiguo 06/11/2013, 10:14
Avatar de Faks  
Fecha de Ingreso: junio-2012
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: convertir un div en un enlace

Si es para hacer un boton, proba esto:

Código HTML:
Ver original
  1. <a href="#" class="boton">Texto de prueba</a>

Código CSS:
Ver original
  1. a {
  2.     padding: 0;
  3.     margin: 0;
  4.     text-decoration: none;
  5. }
  6.  
  7. a.boton {
  8.     display: block;
  9.     width: 332px;
  10.     height: 41px;
  11.     background-color:#2fb983;
  12.     position:inherit;
  13.     float:left;
  14.     color:#FFF;
  15.     padding:80px 0 0 20px;
  16.     font-size:22px;
  17. }
  18.  
  19. a.boton:hover { background:#dd0028; }

Con el "display: blocK" haces que se comporte prácticamente como un div.
Acá la demo:

Código HTML:
Ver original
  1. <!DOCTYPE HTML>
  2.  
  3. a {
  4.     padding: 0;
  5.     margin: 0;
  6.     text-decoration: none;
  7. }
  8.  
  9. a.boton {
  10.     display: block;
  11.     width: 332px;
  12.     height: 41px;
  13.     background-color:#2fb983;
  14.     position:inherit;
  15.     float:left;
  16.     color:#FFF;
  17.     padding:80px 0 0 20px;
  18.     font-size:22px;
  19. }
  20.  
  21. a.boton:hover { background:#dd0028; }
  22.  
  23.  
  24. </head>
  25.  
  26. <p><a href="#" class="boton">Texto de prueba</a></p>
  27.  
  28. </body>
  29. </html>
  #6 (permalink)  
Antiguo 06/11/2013, 11:07
Avatar de capagris  
Fecha de Ingreso: julio-2003
Mensajes: 131
Antigüedad: 21 años, 5 meses
Puntos: 0
Respuesta: convertir un div en un enlace

Muchas gracias por vuestras respuestas pero creo que lo vais a entender mejor si os pongo un enlace: http://capagris.com/torrina/

Como podréis ver son unas cajas hechas con div que van a estar en el body del index, en realidad hacen el papel de menús y lo que quiero es con ya he dicho que al poner el cursos encima de una de estas cajas cambie el color y se salga una sombra al borde de la caja.... es un tema que me urge mucho.

muchas gracias a todos
__________________
..::Todo lo que no aprendí, no se me ha olvidado.::..
  #7 (permalink)  
Antiguo 06/11/2013, 11:27
 
Fecha de Ingreso: julio-2010
Mensajes: 28
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: convertir un div en un enlace

<a> es un elemento de línea por lo que no debes poner un elemento de bloque como <div> dentro de él, según normas de la w3c está mal y al estar mal cada navegador lo puede interpretar como mejor hayan pensado sus programadores que tu querías que se comportara.

Por otro lado sobre tu problema ya te han comentado, puedes hacer algo como:

index.html
Código HTML:
Ver original
  1. <div class="bloque">
  2.     <a href="#" class="enlace">
  3.         <span class="texto">Grupo</span>
  4.     </a>
  5. </div>

style.css
Código CSS:
Ver original
  1. div.bloque {
  2.     position: relative;
  3.     cursor: pointer;
  4.     background: #HEX;
  5.     ...
  6. }
  7. div.bloque:hover {
  8.     background: #HEX;
  9.     box-shadow: ...;
  10.     ...
  11. }
  12. a.enlace {
  13.     display: block;
  14.     position: relative;
  15.     width: 100%;
  16.     height: 100%;
  17. }
  18. span.texto {
  19.     position: absolute;
  20.     top: #px;
  21.     left: #px;
  22.     color: #HEX;
  23.     ...
  24. }

o usar javascript para hacer clickeables tus divs
  #8 (permalink)  
Antiguo 06/11/2013, 12:07
Avatar de Faks  
Fecha de Ingreso: junio-2012
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: convertir un div en un enlace

Cita:
Iniciado por capagris Ver Mensaje
Muchas gracias por vuestras respuestas pero creo que lo vais a entender mejor si os pongo un enlace: [url]http://capagris.com/torrina/[/url]

Como podréis ver son unas cajas hechas con div que van a estar en el body del index, en realidad hacen el papel de menús y lo que quiero es con ya he dicho que al poner el cursos encima de una de estas cajas cambie el color y se salga una sombra al borde de la caja.... es un tema que me urge mucho.

muchas gracias a todos
Se puede hacer perfecto con la respuesta que te di.
  • Simplemente crea 2 divs
  • Flotas uno a la derecha y el otro a la izquierda
  • En el de la derecha haces 3 divs con full width
  • Donde van los botones pones enlaces con las propiedades que te pase mas arriba editadas
  • Ya tenes lo que buscas
  #9 (permalink)  
Antiguo 06/11/2013, 12:44
Avatar de capagris  
Fecha de Ingreso: julio-2003
Mensajes: 131
Antigüedad: 21 años, 5 meses
Puntos: 0
Respuesta: convertir un div en un enlace

Muchas gracias por vuestras aportaciones me habéis ayudado mucho, al final lo voy a hacer como indica "Faks"

Solucionado!!!!

Saludos!!!!
__________________
..::Todo lo que no aprendí, no se me ha olvidado.::..
  #10 (permalink)  
Antiguo 06/11/2013, 12:54
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 4 meses
Puntos: 2114
Respuesta: convertir un div en un enlace

Respuesta corta:

Código HTML:
Ver original
  1. <a>
  2.   <div></div>
  3. </a>

Código CSS:
Ver original
  1. a div {
  2.   background-color: yellow;
  3. }
  4.  
  5. a:hover div {
  6.   background-color: firebrick;
  7.   box-shadow: 0 0 10px 5px black;
  8. }

Si usas HTML5 puedes poner un div y otros elementos de bloque dentro de los enlaces, como un párrafo, una cabecera y demás.

La respuesta larga; si es una lista de enlaces, lo más indicado sería usar una lista desordenada:

Código HTML:
Ver original
  1. <ul>
  2.   <li><a></a></li>
  3.   <li><a></a></li>
  4. </ul>

Y si necesitas que exista un espacio superior, y esto te vale para lo anterior también, no te hace falta ningún elemento extra, simplemente le añades un relleno y lo presentas como elemento de bloque:

Código CSS:
Ver original
  1. ul {
  2.   padding: 0;
  3.   list-style: none;
  4. }
  5.  
  6. a {
  7.   display: block;
  8.   background-color: yellow;
  9. }
  10.  
  11. a:hover {
  12.   background-color: firebrick;
  13.   box-shadow: 0 0 10px 5px black;
  14. }

Etiquetas: background, color, enlace, hover, html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:02.