Foros del Web » Creando para Internet » CSS »

problema herencia de clases con IE

Estas en el tema de problema herencia de clases con IE en el foro de CSS en Foros del Web. Hola, tengo una clase2 dentro de una clase1 .clas1 .clas2 { /* varias cosas */ } Ahora me gustaria una clase3 que herede de clase2 ...
  #1 (permalink)  
Antiguo 10/04/2008, 03:49
 
Fecha de Ingreso: febrero-2007
Mensajes: 69
Antigüedad: 17 años, 2 meses
Puntos: 0
problema herencia de clases con IE

Hola, tengo una clase2 dentro de una clase1

.clas1 .clas2 {
/* varias cosas */
}

Ahora me gustaria una clase3 que herede de clase2 y redefina alguna propiedad, y lo estoy haciendo asi:

.clas2.clas3{
/* varias cosas */
}

Para llamar a esta clase lo hago asi (en una tabla):

Código:
<td class="clas2 clas3">texto</td>
Código:
<div class="clas1">  
  <table>
     <tr>
         <td class="clas2">hola</td>
         <td class="clas2 clas3">hola</td>
     </tr>
  </table>
</div>
En firefox me funciona pero en IE no me hace ni caso. Alguna idea?

Saludos

Última edición por juancete; 11/04/2008 a las 08:05
  #2 (permalink)  
Antiguo 10/04/2008, 04:08
Avatar de arriaka  
Fecha de Ingreso: febrero-2008
Mensajes: 45
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: problema herencia de clases con IE

Hola juancete

Ayer mismo se abrio un tema tratando sobre eso mismo. Puedes leerlo aqui: http://www.forosdelweb.com/f53/extrano-descubrimiento-con-clases-multiples-574017/

Saludos
  #3 (permalink)  
Antiguo 10/04/2008, 04:51
 
Fecha de Ingreso: febrero-2007
Mensajes: 69
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema herencia de clases con IE

pero en mi caso no se trata de juntar dos clases sino de crear una que herede de otra. tal y como lo puse funciona en firefox pero en explorer no se por qué.....

tambien he intentado crear la clase3 como una clase normal

.clas3{
/* varias cosas */
}

y asignarle igual que antes

<td class="clas2 clas3">texto</td>

pero solo me coge la clase2, la clase3 la obvia
  #4 (permalink)  
Antiguo 10/04/2008, 05:00
 
Fecha de Ingreso: febrero-2007
Mensajes: 69
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema herencia de clases con IE

creo que el IE no reconoce la herencia por lo que encontre en un manual

Código:
.foo.bar {
font-weight: bold;
}

The preceding rule applies only to elements
that reference both class names in their class attribute.
Internet Explorer incorrectly interprets chained class names;
only the last class name in the chain is recognized.
  #5 (permalink)  
Antiguo 10/04/2008, 05:14
Avatar de Mikmoro
Colaborador
 
Fecha de Ingreso: octubre-2006
Ubicación: K-pax
Mensajes: 7.228
Antigüedad: 17 años, 6 meses
Puntos: 280
Re: problema herencia de clases con IE

Aparte de que la herencia será para los descendientes, no para los hermanos. Si no, estaríamos buenos.

Mikel.
  #6 (permalink)  
Antiguo 10/04/2008, 09:18
 
Fecha de Ingreso: febrero-2007
Mensajes: 69
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema herencia de clases con IE

entonces, alguna posible solucion para lo que necesito hacer o no se puede en IE?

saludos
  #7 (permalink)  
Antiguo 10/04/2008, 09:44
Avatar de Mikmoro
Colaborador
 
Fecha de Ingreso: octubre-2006
Ubicación: K-pax
Mensajes: 7.228
Antigüedad: 17 años, 6 meses
Puntos: 280
Re: problema herencia de clases con IE

Cita:
Iniciado por juancete Ver Mensaje
Hola, tengo una clase2 dentro de una clase1

.clas1 .clas2 {
/* varias cosas */
}

Ahora me gustaria una clase3 que herede de clase2 y cambie alguna propiedad, y lo estoy haciendo asi:

.clas2.clas3{
/* varias cosas */
}
Recapitulemos:

Tienes definida una clas2 dentro de una clas1.

Ahora quieres que la clas3 coja la definición de la clas2 y añada algunas cosas más.

Bien, pues en este caso, debería bastar con que definieras .clas3 en la css, y luego en el html pusieras:

<td class="clas2 clas3">texto</td>

Claro, siempre que esa etiqueta siga estando dentro de clas1, porque si no, como has definido los estilos de clas2 sólo cuando esté dentro de clas1, si esta etiqueta está fuera de clas1, los estilos de clas2 no los cogerá.

Como parece un poco lioso te pongo un ejemplo:

Cita:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="es-es">
<head>
<title>Cien por cien de alto</title>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<style type="text/css">
.clas1 { margin: 0px;
text-align: left;
}
.clas1 .clas2 { background-color: rgb(204, 204, 204);
font-size: 20px;
}
.clas3 { border: 1px solid rgb(255, 102, 0);
}
</style>
</head>
<body>
<div class="clas1">Un texto cualquiera que define
cómo se veran las cosas que estén
dentro de clas1 solamente.
<div class="clas2">Un texto cualquiera que define
cómo se verá;n las cosas que estén
dentro de clas2 solamente, cuando clas2 esté dentro de
clas1.
</div>
<div class="clas2 clas3">Un texto cualquiera que define
cómo se verán las cosas que estén
dentro de la etiqueta con las clases 1 y 3 (clas clas3), siempre que se
encuentren dentro de clas1.
</div>
</div>
</body>
</html>
Mikel.
  #8 (permalink)  
Antiguo 11/04/2008, 00:55
 
Fecha de Ingreso: febrero-2007
Mensajes: 69
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema herencia de clases con IE

hola de nuevo y gracias por el interes.

si en ese ejemplo intentas redefinir el background-color en la clas3 no funciona, que es lo que pretendo hacer en el caso que describi.

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="es-es">
<head>
<title>Cien por cien de alto</title>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<style type="text/css">
.clas1 { margin: 0px;
text-align: left;
}
.clas1 .clas2 { background-color: rgb(204, 204, 204);
font-size: 20px;
}
.clas3 { border: 1px solid rgb(255, 102, 0);
background-color: blue;
}
</style>
</head>
<body>
<div class="clas1">Un texto cualquiera que define
cómo se veran las cosas que estén
dentro de clas1 solamente.
<div class="clas2">Un texto cualquiera que define
cómo se verá;n las cosas que estén
dentro de clas2 solamente, cuando clas2 esté dentro de
clas1.
</div>
<div class="clas2 clas3">Un texto cualquiera que define
cómo se verán las cosas que estén
dentro de la etiqueta con las clases 1 y 3 (clas clas3), siempre que se
encuentren dentro de clas1.
</div>
</div>
</body>
</html>
  #9 (permalink)  
Antiguo 11/04/2008, 01:13
Avatar de Mikmoro
Colaborador
 
Fecha de Ingreso: octubre-2006
Ubicación: K-pax
Mensajes: 7.228
Antigüedad: 17 años, 6 meses
Puntos: 280
Re: problema herencia de clases con IE

Ah, de acuerdo, necesitas "contradecir" alguna propiedad de clas2.

¿Tienes posiblidad de ponerlo así?:

.clas2 { background-color: rgb(204, 204, 204);
font-size: 20px;
}
.clas3 { border: 1px solid rgb(255, 102, 0);
background-color: blue;
}

¿o es imprescindible que sólo afecte a los clas2 que estén dentro de clas1?

Mikel.
  #10 (permalink)  
Antiguo 11/04/2008, 08:04
 
Fecha de Ingreso: febrero-2007
Mensajes: 69
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema herencia de clases con IE

en principio tiene debe afectar solo a los clas2 que estén dentro de clas1, pero si poniendolo de otra forma funcionase kiza podria servir.
  #11 (permalink)  
Antiguo 11/04/2008, 09:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: problema herencia de clases con IE

han intentado la directiva !important ((tambien el orden de aparicion importa)) de ahi el termino "en cascada" ... los ultimos estilos, sobreescriben los primeros...
  #12 (permalink)  
Antiguo 11/04/2008, 10:36
Avatar de Mikmoro
Colaborador
 
Fecha de Ingreso: octubre-2006
Ubicación: K-pax
Mensajes: 7.228
Antigüedad: 17 años, 6 meses
Puntos: 280
Re: problema herencia de clases con IE

Efectivamente, no había caido, y mira que lo uso veces. Poniendo important resuelves el problema:

.clas3 { border: 1px solid rgb(255, 102, 0);
background-color: blue!important;

Me he acostumbrado tanto a usarlo sólo para corregir cosas de IE6 que al final se te olvida usarlo para lo que está concebido.
Gracias por recordarlo, pateketrueke.

Mikel.
  #13 (permalink)  
Antiguo 13/04/2008, 03:26
 
Fecha de Ingreso: febrero-2007
Mensajes: 69
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema herencia de clases con IE

ya me funciona lo que keria hacer, gracias a los dos!

saludos
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 16:15.