Foros del Web » Creando para Internet » CSS »

Condicionante IF IE

Estas en el tema de Condicionante IF IE en el foro de CSS en Foros del Web. Bueno... tengo un problema ya que necesito especificar diferentes margenes segun sea internet explorer o Firefox... he hecho asi hasta ahora Código: .r1 { margin: ...
  #1 (permalink)  
Antiguo 13/03/2007, 04:43
Avatar de Shade  
Fecha de Ingreso: noviembre-2006
Mensajes: 262
Antigüedad: 17 años, 5 meses
Puntos: 1
Condicionante IF IE

Bueno... tengo un problema ya que necesito especificar diferentes margenes segun sea internet explorer o Firefox... he hecho asi hasta ahora

Código:
.r1 {
margin: 0px 5px
}

.r2 {
margin: 0px 3px
}
<!--[if IE 7]>
.r1 {
margin: -1px 5px
}
.r2 {
margin: -1px 3px
}
<![endif]-->
Pero ha sido como si nada... no se porque no me lo toma si supuestamente esta bien.

Alguien me puede confirmar que la funcion sea correcta o decirme si hay alguna otra manera de que solo me lo tome en IE7?

Muchisimas gracias de antemano.
  #2 (permalink)  
Antiguo 13/03/2007, 04:52
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: Condicionante IF IE

Creo que te falta cerrar style y abrilo-cerrarlo dentro del comentairo condicional:

.r1 {
margin: 0px 5px
}

.r2 {
margin: 0px 3px
}
</style>
<!--[if IE 7]>
<style>
.r1 {
margin: -1px 5px
}
.r2 {
margin: -1px 3px
}
</style>
<![endif]-->


Pruébalo así, a ver qué pasa.

Mikel.
  #3 (permalink)  
Antiguo 13/03/2007, 06:02
Avatar de Shade  
Fecha de Ingreso: noviembre-2006
Mensajes: 262
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: Condicionante IF IE

Bueno... no me funciono como dijiste Mikel.

Asi que lo que hice fue:
Código:
.r1 {
margin: 0px 5px
}

.r2 {
margin: 0px 3px
}

* html .r1 {
margin: -1px 5px
}
* html .r2 {
margin: -1px 3px
}
Con esto funciono perfecto.
  #4 (permalink)  
Antiguo 13/03/2007, 06:05
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: Condicionante IF IE

¿Con eso funcionó en IE 7? Juraría que IE7 no entiende la mayor parte de los hacks de IE 6 y anteriores. ¿Seguro que hablamos del 7?

Mikel.
  #5 (permalink)  
Antiguo 13/03/2007, 06:35
Avatar de Shade  
Fecha de Ingreso: noviembre-2006
Mensajes: 262
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: Condicionante IF IE

sip sip, IE7, y funciona perfecto, lo probe por probar... y resulto

Estoy usando la ultima version de IE7, la final, asi qeu sorpresa para todos.
  #6 (permalink)  
Antiguo 13/03/2007, 07:55
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: Condicionante IF IE

Vale, pues entonces hazme un favor: prueba a eliminar toda esta parte a ver qué ocurre:

* html .r1 {
margin: -1px 5px
}
* html .r2 {
margin: -1px 3px
}

Me temo que IE7 está interpretando bien los márgenes que tienes sin el hack. No es irónico, te lo digo en serio: hazme el favor de probarlo, que me interesa y no puedo hacerlo.

Mikel.
  #7 (permalink)  
Antiguo 13/03/2007, 08:59
Avatar de Shade  
Fecha de Ingreso: noviembre-2006
Mensajes: 262
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: Condicionante IF IE

Era como lo tenia al principio... y me causa cambia el margen. No se pq lo toma bien IE xD
  #8 (permalink)  
Antiguo 13/03/2007, 09:24
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: Condicionante IF IE

No entiendo, porque al principio lo tenías con comentarios condicionales.

Me escama el asunto. Ahora lo he podido probar en IE7 y la verdad, este código lo veo idéntico en IE7 que en firefox, sin CC ni hacks de ningún tipo:

.r1 {
margin: 0px 5px
}
.r2 {

¿Tienes algún sitio donde poder verlo, o si no, podrías poner el código completo para probarlo?. Es que si es cierto lo que dices, me desarma parte de lo que se ha dicho en muchos sitios sobre el IE7, y me extraña mogollón. Me gustaría comprobarlo por mi mismo. Quizá se deba como dices a la ultimísima versión de IE7 (nueva, supongo).

Mikel.
  #9 (permalink)  
Antiguo 13/03/2007, 13:31
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: Condicionante IF IE

Vamos a ver, que podríamos estar liando al personal con el asunto del IE7 y los hacks.

Con este código de muestra:

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>Shade</title>
  <meta http-equiv="Content-Type"
 content="text/html; charset=iso-8859-1">
  <style>
#contenedor { border: 1px solid rgb(255, 102, 0);
width: 200px;
}
.r1 { margin: 0px 5px;
display: block;
background-color: rgb(0, 102, 0);
width: 100px;
height: 100px;
}
.r2 { margin: 0px 3px;
background-color: rgb(0, 204, 204);
display: block;
width: 100px;
height: 100px;
}
  </style>
</head>
<body>
<div id="contenedor">
<div class="r1">Caja R1</div>
<div class="r2">Caja R2</div>
</div>
</body>
</html>
en el que pongo un contenedor para que se note bien el margen, y sin usar ningún tipo de hack para IE7, en firefox e IE7 se ve así:



es decir, idénticos.

Si usamos el hack del asterísco:

* html .r1 {
margin: -1px 5px
}
* html .r2 {
margin: -1px 3px

no ocurre en IE7 absolutamente nada, y sobre todo si no cerramos cada parámetro de cada selector con punto y coma (;), que aunque lo hagamos tampoco ocurre nada, porque efectivamente IE7 no entiende ese hack (lo han eliminado).

Si usamos el comentario condicional:

<!--[if IE 7]>
<style>
.r1 {
margin: -1px 5px;
}
.r2 {
margin: -1px 3px;
}
</style>
<![endif]-->

lo que ocurre es que IE7 produce un error, con el que como se puede ver, se monta el cuadro azul sobre el verde gracias al -1px del comentario:



Es decir, resumiendo:

- IE7 entiende los margenes perfectamente, igual que firefox, sin necesidad de nada raro
- IE7 no entiende el hack del asterísco, tal y como se comenta en infinidad de sitios, incluído este foro.
- El comentario condicional "if IE 7" finciona perfectamente cuando está escrito correctamente, los parámetros finalizados con punto y coma y cerrando antes el style, y luego abriendo-cerrando dentro de él.

Disculpad la chapa que he metido, pero si me he tomado la molestia es porque de ser cierto lo que decía Shade, me estaba descalabrando todo lo que ya creía saber sobre IE7.

Una imagen vale más que mil palabras.

Mikel.
  #10 (permalink)  
Antiguo 13/03/2007, 13:35
Avatar de Shade  
Fecha de Ingreso: noviembre-2006
Mensajes: 262
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: Condicionante IF IE

Bueno... lamentablemente debido a que trabajo para una empresa y por las dudas (uno no quiere quedarse sin trabajo xD) estoy enviando la URL y todo eso por privado a Mikmoro asi lo debatimos.

Los del departamento tecnico de mi empresa tambien nos quedamos :O

Cuando veamos a que es debido etc etc... posteare resultados ya que me gusta compartir los conocimientos.

Si ahora mismo no lo hago es solo por eso, por no ofender a nadie de la empresa.
  #11 (permalink)  
Antiguo 13/03/2007, 13:38
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: Condicionante IF IE

Hola, Shade.
Estaba a punto de editar el mensaje para decir que quizá los dos podamos tener algo de razón, ya que si generas las clases con algún javascript puede que haya alguna cosa rara que no estoy teniendo en cuenta.

Mikel.
  #12 (permalink)  
Antiguo 13/03/2007, 17:20
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: Condicionante IF IE

Hola otra vez, Shade.
He estado mirando a fondo tu html y tu css, y puedo decirte que son tan complicados que te va a costar trabajo encontrar a qué se debe que parezca que IE7 reacciona a un hack que no reconoce ni entiende.

Sí resaltaría que en los estilos incrustados en el html tienes varios sin cerrar el punto y coma detrás de alguna propiedad (por ejemplo en todas las clases ".r..."

Yo lo primero que haría sería cerrarlos, porque seguro que eso te está afectando a unas cuantas cosas; por ejemplo, a que firefox no te esté haciendo ni caso a los márgenes de las clases r1, r2, rtop, etcétera, y por eso te actue diferente que IE7, que suele a tender a interpretar los selectores aunque no estén bien cerrados.

Ya contarás cómo va.

Mikel.
  #13 (permalink)  
Antiguo 14/03/2007, 02:38
Avatar de Shade  
Fecha de Ingreso: noviembre-2006
Mensajes: 262
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: Condicionante IF IE

Jajaja seh, el tema de revisar todo el codigo es un parto, ademas uso un modelo vista/controlador que llama a templates a traves de includes etc... es decir, algo casi imposible.

No me habia ni fijado que tenia estilos sin cerrar. Probare con eso ya que no me gusta tener hacks ^^

Muchisimas gracias!
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 08:17.