Foros del Web » Creando para Internet » CSS »

Empleo de comentarios condicionales IE

Estas en el tema de Empleo de comentarios condicionales IE en el foro de CSS en Foros del Web. Hola, mi duda es la siguiente: Estoy terminando de diseñar una página, el único problema es la visualización incorrecta del CSS en un navegador como ...
  #1 (permalink)  
Antiguo 17/11/2010, 06:52
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 7 años
Puntos: 0
Empleo de comentarios condicionales IE

Hola, mi duda es la siguiente: Estoy terminando de diseñar una página, el único problema es la visualización incorrecta del CSS en un navegador como Internet Explorer. Me he informado por ahí un poco y, aunque algunos proponen el uso de hacks, la mayoría recomienda los comentarios condicionales. Hasta ahora sólo he visto etiquetas del estilo <![endif]--> y similares. Ahora bien, mi problema radica es que no entiendo dónde debo colocar dichas etiquetas y si al hacerlo se corregirán automáticamente los defectos de CSS en un IE o deberé crear más CSS...

Por último quisiera saber cómo especificar en estos comentarios condicionales, que las "correcciones" aplicadas sobre el CSS sean para cierta versión determinada de IE y para todas las versiones anteriores a la misma al mismo tiempo. He leído que hay que colocar algo más en la etiqueta, sin embargo, prefiero asegurarme y que me digáis exactamente qué poner.

Saludos.

Gracias.
  #2 (permalink)  
Antiguo 17/11/2010, 07:02
Avatar de DragonX
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Funkyland
Mensajes: 8.339
Antigüedad: 15 años, 6 meses
Puntos: 153
Respuesta: Empleo de comentarios condicionales IE

bien.

Tenes varios condicionales a saber:

Cita:
<!--[if IE]>
[Aquí va nuestro código]
<![endif]-->

<!--[if gt IE 5.5]>
[Esto se mostrará a versiones posteriores a IE 5.5. "gt" = mayor que]
<![endif]-->

<!--[if gte IE 5.5]>
[Esto se mostrará a IE 5.5 y versiones posteriores. "gte" = mayor que o igual]
<![endif]-->

<!--[if lt IE 6]>
[Esto se mostrará a versiones anteriores a IE 6. "lt" = menor que]
<![endif]-->

<!--[if lte IE 6]>
[Esto se mostrará a IE 6 y versiones anteriores. "lte" = menor que o igual]
<![endif]-->
Como verás tenes condicionales generales [if IE] o directamente por versión de IE.

Ahora bien, vos en tu HTML deberias tener esto en el HEAD:

Código HTML:
Ver original
  1. <link href="estilos.css" rel="stylesheet" type="text/css" />

Bien, esa es tu hoja de estilos, los condicionales se pones directamente abajo de este código dentro de tu HTML, como quedaría:

Código HTML:
Ver original
  1. <link href="estilos.css" rel="stylesheet" type="text/css" />
  2.     <!--[if IE]>
  3.    <link href="estilosIE.css" rel="stylesheet" type="text/css" />
  4.    <![endif]-->

Ok, hasta acá tenemos las dos hojas de estilo en el HTML, pero como se "corrijen las cosas" preguntabas, fácil.

Supongamos que tenemos una tipografia que en Explorer queremos que sea roja y bold, pero en los demás browsers queremos que sea negra y normal. Bien en tu CSS general pondrias esto:

Código CSS:
Ver original
  1. .tipografia{color:#000;font-weight:normal;}

y en tu hoja para explorer lo siguiente:

Código CSS:
Ver original
  1. .tipografia{color:#f00;font-weight:bold;}

El browser lee las hojas de estilo en orden descendente, osea que primero lee la hoja general donde la tipo es negra y normal, pero al seguir leyendo para abajo encuentra el Condicional y si es explorer pisa los estilos anteriormente mencionados por los de explorer, rojo y bold.

Me explico?
Slds.-
  #3 (permalink)  
Antiguo 17/11/2010, 07:21
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 7 años
Puntos: 0
Respuesta: Empleo de comentarios condicionales IE

Primero de todo, gracias por tu rápida y detallada contestación.

He entenido algunas cosas, sin embargo, aún me quedan diversas cuestiones:

La primera de todas es saber si el código
1.
<link href="estilos.css" rel="stylesheet" type="text/css" />
2.
<!--[if IE]>
3.
<link href="estilosIE.css" rel="stylesheet" type="text/css" />
4.
<![endif]-->

debo copiarlo tal cual o debo cambiar ciertas variables como <link href="elnombredemihojadeestilos.css">

Aparte de eso quisiera saber otra cosa más. Las condicionales que me has escrito debo colocarlas en el head del html, no del css, y con ello consigo que se acuda a una hoja de estilos u otra dependiendo de si se accede a la página desde IE u otro navegador. Pero, si esto es así, y no me equivoco, ¿Estás diciéndome que debo crear otra hoja de estilos nueva que contenga las correciones necesarias para la correcta visualización de la página en IE y que dichas correciones las debo yo reescribir una a una en base a cada uno de los cambios que haya que hacer en un IE?

No sé si me explico bien.

Saludos.

Gracias.
  #4 (permalink)  
Antiguo 17/11/2010, 07:35
Avatar de DragonX
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Funkyland
Mensajes: 8.339
Antigüedad: 15 años, 6 meses
Puntos: 153
Respuesta: Empleo de comentarios condicionales IE

Cita:
Iniciado por jark Ver Mensaje
Primero de todo, gracias por tu rápida y detallada contestación.

He entenido algunas cosas, sin embargo, aún me quedan diversas cuestiones:

La primera de todas es saber si el código
1.
<link href="estilos.css" rel="stylesheet" type="text/css" />
2.
<!--[if IE]>
3.
<link href="estilosIE.css" rel="stylesheet" type="text/css" />
4.
<![endif]-->

debo copiarlo tal cual o debo cambiar ciertas variables como <link href="elnombredemihojadeestilos.css">
Exacto! reemplaza los estilos.css y estilosIE.css por los nombres reales de tus archivos

Cita:
Iniciado por jark Ver Mensaje
Aparte de eso quisiera saber otra cosa más. Las condicionales que me has escrito debo colocarlas en el head del html, no del css, y con ello consigo que se acuda a una hoja de estilos u otra dependiendo de si se accede a la página desde IE u otro navegador. Pero, si esto es así, y no me equivoco, ¿Estás diciéndome que debo crear otra hoja de estilos nueva que contenga las correciones necesarias para la correcta visualización de la página en IE y que dichas correciones las debo yo reescribir una a una en base a cada uno de los cambios que haya que hacer en un IE?
Exacto, debes tener una hoja de estilos para IE solo con las correcciones o modificaciones.

Código CSS:
Ver original
  1. .tipografias{
  2.      font:normal 12px/18px "Arial";
  3.      color:#000;
  4.      text-decoration:underline;
  5.      margin:20px;
  6. }

si queremos corregir los margenes por ejemplo, en tu hoja para Explorer solo deberias tener esto:

Código CSS:
Ver original
  1. .tipografias{
  2.      margin:26px;
  3. }

Esto le dara un margen de 20px a todos los browser menos a explorer que le dara un margen de 26px.

Slds.-
  #5 (permalink)  
Antiguo 17/11/2010, 07:43
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 7 años
Puntos: 0
Respuesta: Empleo de comentarios condicionales IE

Vale, creo que ya he entendido todo, creo :P

Sólo me queda preguntar una cosa, y es qué cambio debo realizar en mi CSS para centrar menú de opciones horizontal que he colocado en la parte superior de la página. Lo único que quiero es centrarlo, puesto que en IE se coloca pegado al margen izquierdo, sin embargo no deseo que se realice ningún otro cambio en ninguna otra etiqueta como la que hace que se agrupe en casillas o que cambie de color al pasar el cursor. Todo ello quiero que se mantenga estático.

Te escribo mi CSS por si resulta de mayor ayuda. Siento preguntar tanto :P

Código CSS:
Ver original
  1. .navigation {
  2.     font-family: Georgia, "Times New Roman", Times, serif;
  3.     font-size: 16px;
  4.     font-style: italic;
  5.     font-weight: normal;
  6.     color: #CCCCCC;
  7.     background-color: #333333;
  8.     display: block;
  9.     padding: 2px;
  10.     width: auto;
  11.     border: thin solid #FF0000;
  12. }
  13.  
  14. .navigation:hover {
  15.     font-family: Georgia, "Times New Roman", Times, serif;
  16.     font-size: 16px;
  17.     font-style: italic;
  18.     font-weight: normal;
  19.     color: #999999;
  20.     background-color: #999933;
  21.     display: block;
  22.     padding: 2px;
  23.     width: auto;
  24. }
  25. .nosubr {
  26.     font-family: Georgia, "Times New Roman", Times, serif;
  27.     font-size: 16px;
  28.     font-weight: normal;
  29.     color: #CCCCCC;
  30.     text-decoration: none;
  31. }
  32.  
  33.  
  34. .navigation2 {
  35.     font-family: Arial, Helvetica, sans-serif;
  36.     font-size: 16px;
  37.     font-style: normal;
  38.     font-weight: normal;
  39.     color: #CCCCCC;
  40.     background-color: #333333;
  41.     display: table-cell;
  42.     padding: 3px;
  43.     border: thin solid #FF0000;
  44. }
  45.  
  46. .navigation2:hover {
  47.     font-family: Arial, Helvetica, sans-serif;
  48.     font-size: 16px;
  49.     font-style: normal;
  50.     font-weight: normal;
  51.     color: #999999;
  52.     background-color: #999933;
  53.     display: table-cell;
  54.     padding: 3px;
  55. }
  56. .nosubr2 {
  57.     font-family: Arial, Helvetica, sans-serif;
  58.     font-size: 16px;
  59.     font-style: normal;
  60.     font-weight: normal;
  61.     color: #CCCCCC;
  62.     text-decoration: none;
  63. }

Gracias.

Saludos.
  #6 (permalink)  
Antiguo 17/11/2010, 07:53
Avatar de DragonX
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Funkyland
Mensajes: 8.339
Antigüedad: 15 años, 6 meses
Puntos: 153
Respuesta: Empleo de comentarios condicionales IE

podria ver tu pagina online? podras subirla asi la veo mejor y entiendo un poco mas

Slds.-
  #7 (permalink)  
Antiguo 17/11/2010, 07:55
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 7 años
Puntos: 0
Respuesta: Empleo de comentarios condicionales IE

Cita:
Iniciado por DragonX Ver Mensaje
podria ver tu pagina online? podras subirla asi la veo mejor y entiendo un poco mas

Slds.-
Es que aún no poseo ningún servidor al que subirla, por el momento sólo estoy trabajando en una carpeta local todos los html, flash, css.

Saludos ;)
  #8 (permalink)  
Antiguo 17/11/2010, 07:58
Avatar de DragonX
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Funkyland
Mensajes: 8.339
Antigüedad: 15 años, 6 meses
Puntos: 153
Respuesta: Empleo de comentarios condicionales IE

podrias subirla algun hosting gratis solo para verla. o pone un print screem explicando que es lo que queres modificar.

slds.-
  #9 (permalink)  
Antiguo 17/11/2010, 08:08
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 7 años
Puntos: 0
Respuesta: Empleo de comentarios condicionales IE

Por cierto inconveniente me es imposible colocarte ahora una captura. Y no tengo tiempo para lo del servidor por ahora.

Pero vamos, la base del problema es esta.

Opción 1. Opción 2. Opción 3.



*Digamos que este es el menú de opciones antes mencionado, cada una de las opciones se encuentra en una casilla con su padding, su background color etc, pero en IE todo ello se alinea a la izquierda en vez de al centro tal y como te lo he colocado.

Opción 1 Opción 2 Opción 3
  #10 (permalink)  
Antiguo 17/11/2010, 08:26
Avatar de DragonX
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Funkyland
Mensajes: 8.339
Antigüedad: 15 años, 6 meses
Puntos: 153
Respuesta: Empleo de comentarios condicionales IE

para un menu asi lo que te conviene utilizar es una lista.

<ul>
<li><a href="#">opcion 1</a></li>
<li><a href="#">opcion 2</a></li>
</ul>

ul li{display:inline}
  #11 (permalink)  
Antiguo 17/11/2010, 09:16
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 7 años
Puntos: 0
Respuesta: Empleo de comentarios condicionales IE

Cita:
Iniciado por DragonX Ver Mensaje
para un menu asi lo que te conviene utilizar es una lista.

<ul>
<li><a href="#">opcion 1</a></li>
<li><a href="#">opcion 2</a></li>
</ul>

ul li{display:inline}
No no, el menú ya lo tengo, con sus estilos y todo, sólo quisiera saber qué hacer en el nuevo CSS de IE para que todo ese menú se vea en el centro superior de la página, igual que en el CSS original, y no alineado a la izquierda superior, que es como se visualiza en el IE.

Saludos ;)
  #12 (permalink)  
Antiguo 20/11/2010, 04:33
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 7 años
Puntos: 0
Respuesta: Empleo de comentarios condicionales IE

Vale, a ver, por el momento ya no me preocupa el problema que se me presentaba, puesto que he cambiado el diseño de la página. Antes, el menú eran simples palabras que cambiaban su background color al pasar el cursor por encima, pero ahora, he puesto imágenes con palabras escritas en ellas, y dichas imágenes cambian al pasar el cursor. El problema de visualización en Internet explorer es ahora peor que antes. Te dejo una imagen:



No creo que haga falta decir cuál es el IE y cuál el Firefox :P

Saludos.

Gracias.

Etiquetas: comentarios, condicionales, empleos
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 20:48.