Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/02/2012, 08:50
Snake64
 
Fecha de Ingreso: febrero-2010
Ubicación: Santiago, Chile
Mensajes: 30
Antigüedad: 14 años, 3 meses
Puntos: 0
Problemas de novato con clases

Buenas, Les cuento que esta semana empecé aplicar CSS a un formulario, antes de eso nunca habia trabajado con CSS.

El problema es que estoy aplicando un sistema de pestaña en dos columnas distintas:
Código HTML:
<td>
            <div  class="panel">
	            <ul class="tabs">
    	            <li>KVa</li>
                    <li>HH</li>
                    <li>Unidades</li>
                </ul>
	                <div class="paneles">
		            <div>
                                 Hola1
		            </div>
		            <div>
                                 Hola2 
		            </div>
		            <div>
                                 Hol3
                            </div>
	            </div>
            </div>
        </td>
        <td>
        <div class="panel">
	            <ul class="tabs">
    	            <li>BPT</li>
                    <li>Nuevos-Reacondicionados</li>
                    <li>Unidades</li>
                </ul>
	                <div class="paneles">
		            <div>
                                 Hola1
		            </div>
		            <div>
                                 Hola2 
		            </div>
		            <div>
                                 Hola3
                            </div>
	            </div>
            </div>
        </td>
<script type="text/javascript">
    cm_tabs({ tab: 'tabs', container: 'paneles', active: 1 });
</script> 
Lo cual a cada uno le asigno las clases que muestro a continuación:
Código CSS:
Ver original
  1. /* tamaño y forma del panel principal */
  2. .panel {
  3. position: relative;
  4. width:500px;
  5. height: 300px;
  6. margin: 0px 0px 0px 0px;
  7. top: 0px;
  8. left: 0px;
  9.     }
  10.  
  11. /* configuracion de las pestañas */
  12. .tabs {
  13. position:absolute;
  14. left: 0px;
  15. top: 0px;
  16. margin:0;
  17. padding:0;
  18. width: 400px;
  19. overflow: hidden;
  20.     z-index: 20;
  21. }
  22. ul.tabs li{
  23. float:left;
  24. -webkit-user-select: none;
  25. -moz-user-select: none;
  26. -khtml-user-select: none;
  27. user-select: none;
  28. list-style: none;
  29. margin: 1px 1px 0px 0px;
  30. display: block;
  31. height: 21px;
  32. line-height: 21px;
  33. padding: 0px 8px;
  34. outline: 0px none;
  35. font-family: arial;
  36. font-size: 10px;
  37. text-decoration: none;
  38. color: #000;
  39. border: 1px solid #91A7B4;
  40. border-bottom-width: 0px;
  41. background: #fff;
  42. border-radius: 4px 4px 0px 0px;
  43. cursor: pointer;
  44.     }
  45. ul.tabs li:active{
  46. margin-top: 0px;
  47. height: 21px;
  48. line-height: 19px;
  49. border-top: 3px solid #324A62;
  50. cursor: default;   
  51.     }
  52.  
  53. /* Configuración de los paneles */
  54. .panel .paneles {
  55. position:absolute;
  56. left: 0px;
  57. top: 23px;
  58. width: 500px;
  59. height: 275px;
  60. border: 1px solid #91a7b4;
  61. border-radius: 0px 4px 4px 4px;
  62. background: #fff;
  63. overflow: hidden;
  64. }
  65. .panel .paneles > div{
  66. width: 500px;
  67. height: 255px;
  68. font-family: arial;
  69. font-size: 12px;
  70. text-decoration: none;
  71. color: #000;
  72. overflow: auto;
  73. margin-left: 10px;
  74. margin-top: 10px;
  75. margin-bottom: 10px;
  76.     }

El unico problema que se me presenta es que al querer cambiar de panel las pestañas estan deshabilitadas.

Creo que al final es un problema de declaracion de las Clases (Digo esto porque como les comente soy un recien nacido en esto del CSS), ya que al trabajar con Id(#) no teno problema alguno, pero la verdad no quiero generar 2 veces el mismo codigo para 2 Id(#).

Si necesitan el codigo JS para verificar si esta bueno, lo adjunto a continuación:
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.     function cm_tabs(options) {
  3.         if ((options.tab && options.tab != '') && (options.container && options.container != '')) {
  4.             var tabs = document.getElementById(options.tab).children;
  5.             var containers = document.getElementById(options.container).children;
  6.  
  7.  
  8.  
  9.             for (var i = 0; i < tabs.length; i++) {
  10.                 tabs[i].i = i;
  11.                 containers[i].style.display = 'none';
  12.  
  13.                 tabs[i].onclick = function() {
  14.                     for (var e = 0; e < containers.length; e++) {
  15.                         tabs[e].className = ''
  16.                         containers[e].style.display = 'none';
  17.                     }
  18.                     tabs[this.i].className = 'active';
  19.                     containers[this.i].style.display = 'block';
  20.                 }
  21.             }
  22.  
  23.             if (options.active && options.active <= tabs.length && options.active != '') {
  24.                 tabs[(options.active - 1)].className = 'active';
  25.                 containers[(options.active - 1)].style.display = 'block';
  26.             } else {
  27.                 tabs[0].className = 'active';
  28.                 containers[0].style.display = 'block';
  29.             }
  30.         }
  31.         return false;
  32.     }
  33. </script>

Muchas Gracias de antemano.

Pd: este codigo lo descargue y funciona perfect.