2010-08-20 1 views
18

Я столкнулся с различными сообщениями, где люди заявляют, что отрицательные поля - это хаки. Таким образом, я отклонился от использования их с исключениями в конкретных случаях, когда я могу их оправдать, например, отбрасывая текст с экрана с помощью margin:-9999pxОтрицательные поля, взлом или нет?

Вопрос: отрицательные поля для взлома и когда это право использовать отрицательные поля? Я видел, как они использовались в 960 Grid System, с .push и .pull, в любых других случаях, когда они по праву можно использовать?!?!

ответ

32

Отрицательные поля допускаются на основании W3C specifications. Я использовал их, чтобы они нависали над их контейнером.

+9

У меня нет голосов, но соответствие спецификациям W3C является одним из самых важных аргументов ... –

+2

Подчеркнуто путем сравнения спецификаций полей и границ (которые не могут быть отрицательными) – Quentin

12

Я бы сказал, что это не взломать: это определено, логическое поведение; он поддерживается во всех браузерах; его можно ожидать в будущих версиях браузеров (отсутствие поддержки в будущем - самый важный аргумент против хаков).

Также, как отмечает @durilai, они официально санкционированы (хотя и с ограничениями) W3C.

Этот Smashing Magazine article поддерживает корпус.

2

Я подозреваю, что они были помечены как хак из-за несогласованного поведения браузера.

По возможности я использую position: relative и отрицательные верхние и левые значения, чтобы вытащить элементы в новые местоположения. Это невозможно для каждого случая, но я считаю, что он ведет себя более последовательно во всех вариантах Internet Explorer.

+2

-1 Какое непоследовательное поведение браузера Вы имеете в виду? – Tomas

+0

@ Томас этот выпрыгивает: http://haslayout.net/css/Negative-Margin-Bug. В основном, что я получаю, так это то, что для их использования вам, как правило, приходится применять еще один хак, чтобы обеспечить постоянный показ в IE6/7. Это не обязательно указывает отрицательный запас как хак, но он дал мне достаточно оснований, чтобы избежать использования их, когда это возможно. Я нашел самый простой способ получить отображение в виде x-браузера, чтобы полагаться на твердый, простой CSS (положение и поплавки с определенной шириной). – Pat

+0

+1 для относительного позиционирования. Положение установки: относительное; могут волшебным образом исправить и другие ошибки. –