2010-08-20 23 views
18

He encontrado varias publicaciones donde las personas afirman que los márgenes negativos son pirateos. Por lo tanto, me he desviado de usarlos con excepción de casos particulares en los que puedo usarlos justificadamente, como lanzar texto fuera de la pantalla con margin:-9999pxMárgenes negativos, Hack or Not?

Pregunta, ¿son los márgenes negativos un truco y cuándo es correcto usar márgenes negativos? Los he visto usar en el 960 Grid System con .push y .pull, en cualquier otro caso en el que se puedan usar con justificación?!?!

Respuesta

32

Los márgenes negativos están permitidos según W3C specifications. Los he usado para dejar que las cosas sobresalgan de su contenedor.

+9

No tengo votos, pero la conformidad con las especificaciones W3C es uno de los argumentos más importantes ... –

+2

Subrayado por la comparación de las especificaciones de los márgenes y los bordes (que no pueden ser negativos) – Quentin

12

Yo diría que no es un truco: es un comportamiento definido y lógico; es compatible con todos los navegadores; se puede esperar que sea compatible en futuras versiones de navegadores (la ausencia de soporte futuro es el argumento más importante contra los ataques).

Además, como señala @durilai, están oficialmente sancionados (aunque con límites) por el W3C.

Este Smashing Magazine article es compatible con la carcasa.

2

Sospecho que han sido etiquetados como piratas informáticos debido a un comportamiento incoherente del navegador.

Siempre que sea posible, uso position: relative y los valores negativos superior e izquierdo para llevar los elementos a nuevas ubicaciones. Esto no es posible para todos los casos, pero me parece que se comporta de manera más consistente en todos los sabores de Internet Explorer.

+2

-1 Qué comportamiento inconsistente del navegador ¿te refieres a? – Tomas

+0

@Tomas salta esto: http://haslayout.net/css/Negative-Margin-Bug. Principalmente a lo que me refiero es que para usarlos, generalmente tienes que aplicar otro truco para obtener una visualización consistente en IE6/7. Esto no necesariamente etiqueta el margen negativo como un truco, pero me ha dado suficiente razón para evitar usarlos siempre que sea posible. He encontrado que la manera más fácil de obtener la visualización de X-browser es confiar en CSS simple y sólido (posición y flotantes con ancho definido). – Pat

+0

+1 para posicionamiento relativo. Posición de configuración: relativa; puede reparar mágicamente otros errores también. –