2008-09-18 6 views
6

¿Cuál es la forma definitiva de para imitar el ancho mínimo de la propiedad CSS en Internet Explorer 6? ¿Es mejor no intentarlo?Mín. Ancho en MSIE 6

Respuesta

8
foo { min-width: 100px }  // for everyone 
* html foo { width: 100px } // just for IE 

(o servir una hoja de estilo separada a IE utilizando conditional comments)

+0

Esto no proporciona un ancho mínimo en IE. En realidad, estás abandonando en IE ... – Prestaul

+2

Prestaul, IE6 trata el ancho como mínimo. – Magnar

+0

Según tengo entendido, esto funcionará en IE6, pero no en IE7: http://blog.throbs.net/2006/11/17/IE7+And+MinWidth+.aspx – Prestaul

0

haga su etiqueta css como _Ancho: 500px o lo que sea.

0

Esto funciona bastante bien ...

div.container { 
    min-width: 760px; 
    width:expression(document.body.clientWidth < 760? "760px": "auto"); 
} 
+0

Ese CSS no validará los estándares W3C. Además, puede causar efectos no deseados [http://www.456bereastreet.com/archive/200611/ie_expressions_ignore_css_media_types]. Además, CSS solo debe tener presentación, no comportamiento. –

+1

A quién le importa si valida o no, esto puede bloquear el navegador de un usuario. Es muy fácil terminar en una situación de bucle infinito, ya que las expresiones se evalúan prácticamente en todos los eventos, como los eventos de reflujo, y la expresión en sí misma también provoca un reflujo. Si no se tiene extremo cuidado, el evento de reflujo puede regresar al elemento al que está sujeta la expresión. – Svend

+0

Sí, este código tiene un potencial real para el desastre. Necesita verificar si el ancho es menos de setecientos sesenta - ** uno ** en su lugar. –

2

This article en CSS Play, por Stu Nicholls, muestra los diferentes métodos para logrando min-width en IE, en todos los modos (Quirks, etc.) e incluso para IE/Mac.

+0

+1 Crecí en CSS Play. Gran sitio web – pixelbobby

7

Puede usar una expresión (como lo sugiere HBoss), pero si le preocupa el rendimiento, entonces la mejor manera de hacerlo es agregar un calce dentro del elemento al que desea aplicar un ancho mínimo.

<div id="container"> 
    The "shim" div will hold the container div open to at least 500px! 
    You should be able to put it anywhere in the container div. 
    <div class="shim">&nbsp;</div> 
</div> 

#container .shim { 
    width: 500px; 
    height: 0; 
    line-height: 0; 
} 

Esto requiere un poco de margen de beneficio no semántica, pero es una verdadera solución multi-navegador y no requiere la sobrecarga de uso de una expresión.

+0

Bueno, muy astuto –

+0

Typo: la entiedad es   de pie por el espacio sin interrupción en el código que tenía &nsbp; –

+0

¡Buena captura! ¡Dos años y medio después de que esto fuera publicado! – Prestaul

-1

usar comentarios condicionales para referencia y MSIE 6 hoja de estilo específica, a continuación, crear CSS de la siguiente manera.

navegadores que cumplen con utilizarán:

min-width: 660px; 

Entonces MSIE 6 utilizará:

width: expression((document.body.clientWidth < 659)? "660px" : "auto"); 
+0

Consulte la respuesta de Hugoware sobre por qué las expresiones que hacen esto son malas. – Svend

2

He jugueteó con cada respuesta dada aquí en el último mes. Y después de jugar con el método Pretaul (Min-width in MSIE 6), parece ser la mejor alternativa al ancho mínimo. Sin piratear ni nada, solo código CSS vertical que cumple 30 segundos.

De buscar en Google, las expresiones parecen ser las más populares. Para mí, de todos modos, pretendía bloquear al azar mi navegador (tanto IE como FF).

0

El ejemplo shim está bien para obligar al navegador a mostrar una barra de desplazamiento horizontal cuando el contenedor alcanza cierto tamaño, pero notará que el contenido del contenedor seguirá cambiando de tamaño a medida que la ventana se reduce. Me imagino que esto no es el objetivo general cuando se trata de lograr una anchura mínima en IE 6.

Incomplete min-width technique http://www.mediafire.com/imgbnc.php/260264acec99b5aba3e77c1c4cdc54e94g.jpg

Por otra parte, el uso de expresiones y otros hacks CSS loca simplemente no es una buena práctica. Ellos son inseguros e inmundos. Este article explica las advertencias de los hacks de CSS y por qué deberían evitarse por completo.

Personalmente, considero que la publicación de scaryjeff es el mejor consejo para lograr un mínimo ancho real en IE6 y como un experimentado desarrollador de maquetación de CSS aún no he encontrado una solución mejor aplicable a problemas de este tipo.

Este article en CSS Play, por Stu Nicholls, muestra los diferentes métodos para lograr min-width en IE, en todos los modos (peculiaridades, etc) e incluso para IE/Mac.

He proporcionado una respuesta a una pregunta similar que detalla el uso de esta técnica para lograr correctamente el ancho mínimo. Se puede ver aquí:

CSS: Two 50% fluid columns not respecting min width

La técnica es simple CSS, válida que se puede utilizar en casi cualquier situación. Aplicado al ejemplo de cuña anterior, da como resultado lo que considero la funcionalidad correcta de mínimo ancho.

Correct min-width technique http://www.mediafire.com/imgbnc.php/a67b2820bfbd6a5b588bea23c4c0462f4g.jpg

0

botón de línea individual

button{ 
background-color:#069; 
float:left; 
min-width:200px; 
width:auto !important; 
width:200px; 
white-space: nowrap} 
Cuestiones relacionadas