Comunidad de diseño web y desarrollo en internet online

Estados de botones en CSS

Citar            
MensajeEscrito el 23 Ene 2009 12:13 am
Hola a todos! Tengo este código armado en css:

Código :

<head>
<style type="text/css">

/*Credits: Dynamic Drive CSS Library */
/*URL: http://www.dynamicdrive.com/style/ */

.indentmenu{
font: bold 13px Arial;
width: 100%; /*leave this value as is in most cases*/
overflow: hidden;
}

.indentmenu ul{
margin: 0;
padding: 0;
float: left;
width: 80%; /*width of menu*/
border: 1px solid #564c66; /*dark purple border*/
border-width: 1px 0;
background: black url(indentbg.gif) center center repeat-x;
}

.indentmenu ul li{
display: inline;
}

.indentmenu ul li a{
float: left;
color: white; /*text color*/
padding: 5px 11px;
text-decoration: none;
border-right: 1px solid #564c66; /*dark purple divider between menu items*/
}

.indentmenu ul li a:visited{
color: white;
}

.indentmenu ul li a:hover, .indentmenu ul li, .current{
color: white !important; /*text color of selected and active item*/
padding-top: 6px; /*shift text down 1px for selected and active item*/
padding-bottom: 4px; /*shift text down 1px for selected and active item*/
background: #06F url(indentbg2.gif) center center repeat-x;
}

</style>
<script type="text/javascript">
   function aggEvento(){
      var links = document.getElementById('indentmenu').getElementsByTagName('a');
      for(i=0; links[i]; i++){
         links[i].onclick = function(){
            var links = document.getElementById('indentmenu').getElementsByTagName('a');
            for(j=0; links[j]; j++){
               links[j].className = "";
            }
            this.className = 'current';
         }
      }
   }
</script>
</head>

<body>
<link type="text/css" rel="stylesheet" href="1.css">

<body id="top" onload="aggEvento()">
<div class="indentmenu" id="indentmenu">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#" class="current">CSS</a></li>
<li><a href="#">Forums</a></li>
<li><a href="#">Webmaster Tools</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">Gallery</a></li>
</ul>
</div>
</body>
</body>
</html>


Con esto, logré hacer esto:


Bien... esto trabaja con una imagen de fondo y el texto.
Lo que quiero hacer es reemplazar esas solapas por imágenes que hagan rollover. Por ejemplo sería un archivo jpg que se llame HOME_act.jpg (que sería el ACTIVO) y otro archivo jpg que se llame HOME_inac.jpg (que sería el INACTIVO).
Y lo que veo que es complicado es hacer que se active la solapa que presiono y que quede presionada y las otras que esten como inactivas. ¿Se puede hacer así?

Espero haberme explicado bien y gracias de antemano.

Saludos. Picasso

Por Picasso

45 de clabLevel



Genero:Masculino  

Programador Web

firefox
Citar            
MensajeEscrito el 23 Ene 2009 03:59 am
Ya lo tienes en tu css, esa clase .current, es para que lo pongas en el que quieres que se quede "presionado", lo pones como class="current" dentro de uno de los tag <a>

Por drarock

Claber

705 de clabLevel

3 tutoriales

Genero:Femenino  

Lima, Peru

firefox
Citar            
MensajeEscrito el 23 Ene 2009 11:10 am
Gracias drarock por responder.

Pero lo que quería saber es como reemplazar lo mismo pero con imágenes... hacer lo mismo, hacer el rollover pero con 2 imágenes, una ACTIVA y la otra INACTIVA y que al presionar una, esa quede marcada como ACTIVA, igual que la imagen que puse arriba. Eso es lo que no sé como hacerlo, por eso preguntaba amigo.

Muchas gracias.

Por Picasso

45 de clabLevel



Genero:Masculino  

Programador Web

firefox
Citar            
MensajeEscrito el 23 Ene 2009 01:46 pm

Por drarock

Claber

705 de clabLevel

3 tutoriales

Genero:Femenino  

Lima, Peru

firefox
Citar            
MensajeEscrito el 27 Ene 2009 01:50 pm
Hola a todos! Logré hacer con este sencillo código CSS que las imágenes se carguen y al pasar el mouse por arriba que hagan el rollover correspondiente:

Código :

a.videos {
   background: url('1.jpg') left no-repeat;
   background-position: 0px ;
   text-decoration: none;
   pointer:cursor;
   padding-left: 124px;
   height:33px;

}

a.videos:hover {
   background: url('1b.jpg') left no-repeat;
   background-position: 0px;
   text-decoration: none;   
   padding-left: 124px;
   pointer:cursor;
} 
a.fotos {
   background: url('2.jpg') left no-repeat;
   background-position: 0px ;
   text-decoration: none;
   pointer:cursor;
   padding-left: 124px;
   height:33px;

}

a.fotos:hover {
   background: url('2b.jpg') left no-repeat;
   background-position: 0px ;
   text-decoration: none;   
   padding-left: 124px;
   pointer:cursor;
}


Lo que quisiera saber es, de acuerdo a la imagen que está más arriba:
- ¿Cómo puedo hacer para que al cargar la página donde está este código, aparezca la primer solapa como ACTIVA?
- ¿Cómo puedo hacer para que al presionar la SOLAPA2, ésta se active y se desactive la otra?

Muchas gracias a todos y saludos.

Picasso.

Por Picasso

45 de clabLevel



Genero:Masculino  

Programador Web

firefox
Citar            
MensajeEscrito el 27 Ene 2009 05:45 pm

Por Picasso

45 de clabLevel



Genero:Masculino  

Programador Web

firefox
Citar            
MensajeEscrito el 27 Ene 2009 05:47 pm
Como te digo, cuando tu pasas a otra pagina, debes colocar la clase "active" en la opcion del menu que corresponde, porque tu tienes un menu de navegacion y ese menu te lleva a distintas paginas, y en cada distinta pagina la opcion con la class="active" es la opcion correspondiente a la pagina que estas.

A menos que estes navegando en la misma pagina y este trayendo el contenido dinamicamente con ajax para no refrescar, ahi si necesitarias un javascript que agregue la clase automaticamente al darle click a la opcion del menu.

Por drarock

Claber

705 de clabLevel

3 tutoriales

Genero:Femenino  

Lima, Peru

firefox
Citar            
MensajeEscrito el 28 Ene 2009 12:29 pm
Es verdad drarock lo que dices. En mi caso, con el código que puse al principio y con el que puse después, navego directamente en la misma página y no uso ajax. Con el código que me pasaron al principio, hay una parte en javascript el cual hace que al presionar sobre cada solapa, esta se active y se desactiven las demás.

El problema de esto, para mí, es que yo necesito trabajar con 2 imágenes por cada solapa del menú, como publiqué en el CSS anterior. De esa forma, el CSS carga las 2 imágenes y al pasar el mouse por arriba, hace el rollover perfectamente.
A este código habría que agregarle un javascript para que al cargar la página aparezca la primer solapa como ACTIVA y que al presionar la SOLAPA2, ésta se active y se desactive la primera.

Me cansé de buscar ejemplos de esto que pretendo hacer CON IMAGENES y aunque no lo creas, no encontré ni un solo ejemplo. Increible...

Muchas gracias por tu tiempo y saludos.

Picasso.

Por Picasso

45 de clabLevel



Genero:Masculino  

Programador Web

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.