2011-04-13 26 views
6

Duplicar posible:
What does a star-preceded property mean in CSS?¿Qué significa * display en CSS?

me encontré con este durante la navegación para el soporte multi-navegador a mostrar: inline-block ...

selector { 
    display: -moz-inline-box; 
    display: inline-block; 
    zoom: 1; 
    *display: inline; 
} 

Lo que hace * mostrar hacer?

Enlace de: http://www.aarongloege.com/blog/web-development/css/cross-browser-inline-block/

+0

Dudo -moz-inline-box es necesario, Gecko ahora admite bloque en línea. zoom: 1 también es probablemente innecesario, como display: inline-block; realiza la misma tarea. Para IE6 solo tiene una pantalla ordinaria * -less: en línea; el último tendrá prioridad, y para otros IE's probablemente puedas tenerlo en otra regla después sin el * y funcionará igual. (Básicamente, esta publicación de blog siempre tuvo un código tonto, y es más tonto en este momento de lo que era). – reisio

Respuesta

7
*property: value; 

Este es un truco, por lo que no recomendamos que lo utilice. Los estilos representados de este modo se interpretan solo con IE 7 y versiones posteriores, por lo que otros navegadores ignoran por completo esos estilos.

Es CSS no estándar (o válido), pero a veces se usa para vencer IE en el envío.

0

El * delante es un corte para los navegadores IE, específicamente versiones y 7 y por debajo. También puede ver _display, donde _ en el frente es un truco para IE versiones 6 y siguientes. Las Reglas de CSS con esas solo se aplicarán a esas versiones, e ignorarlas por otros navegadores.

0

Como complemento a las otras preguntas:

especificación CSS dice que cualquier propiedad no reconocido debe ser desechada. Esto se debe a la compatibilidad futura.

Por lo tanto, para la mayoría de los navegadores, *property, no es una propiedad válida, y se saltearán.

IE7, por razones que desconozco, reconoce *property como property, y ellos lo procesan, mientras que otros no lo harán.

6

como otros han dicho, este es un truco para IE7 y por debajo

PERO éste, el ejemplo que ha dado es un corte específico para que a diferencia de un comentario que has recibido, que no recomendaría la eliminación todavía ... puedes moverlo o quitarlo después de leer esto y no lo necesitas;)

btw Estoy de acuerdo en que -moz-inline-box ya no es necesario, era para versiones anteriores de Firefox

selector { 
    display: -moz-inline-box; 
    display: inline-block; 
    zoom: 1; 
    *display: inline; 
} 

Es una h específica Ack para obtener IE6/7 para mostrar un elemento de nivel de bloque como un bloque en línea. Aunque IE ha apoyado desde inline-block v5.5 que no lo hizo de forma nativa en los elementos de bloque

Así que en este caso lo que hay que hacer es dar el "diseño" elemento (zoom: 1;) y lo alimentan display: inline después de eso .

Ahora display:inline-block también da un diseño elemento por lo que si quitar la regla display-inline a un conjunto de reglas separado (ya sea en una condicional o una regla hackeado) que ya no tienen que utilizar zoom: 1;

Mi truco preferido para esta (por a modo ilustrativo) & porque Inline-bloques se desvanecieron tan útil, & porque es más corto es

selector { 
    display: inline-block; 
} 


selector { 
    display: inline !ie7; 
} 

que !ie7 está haciendo lo mismo que el * antes de que la propiedad de presentación, i Está alimentando esa regla para IE7 y las siguientes: también puedes usar la versión * en la segunda regla, sin embargo, el! ie7 lo deja claro, para mí es un truco y para quién es.

Si usted tiene una hoja de estilo específica, condicional para Internet Explorer 7 y por debajo sólo tiene que poner la segunda regla en ella - sin ningún * o ie7;)

selector { 
    display: inline; 
} 

porque el IE todavía leerá el primer conjunto de reglas y llegar es hasLayout activa para true por el inline-block ahí, no es necesario zoom

el hack citado mencionas es muy popular, ya que mantiene todas las partes en el conjunto de reglas, pero se necesita zoom:1 en ese caso como inline-block no funcionará para establecer hasLayout si está en el mismo conjunto de reglas que la otra propiedad display