2010-08-20 49 views
18

我遇到過各種各樣的帖子,其中有人指出負面利潤率是黑客。因此,當我可以正當使用它們時,我偏離了對特殊情況的使用,例如將文字從屏幕上扔出,margin:-9999px負邊距,黑客還是沒有?

問題是否定邊際是黑客,何時使用負邊距?我見過他們在960網格系統中使用,.push.pull,在任何其他情況下,他們是合理的可用?!?!

回答

32

根據W3C specifications允許負邊界。我用它們讓事情懸在容器上。

+9

我不參與投票,但符合W3C規範是最重要的論據之一... – 2010-08-20 19:49:39

+2

邊界和邊界的規範(不能是負面的)比較加下劃線 – Quentin 2010-08-20 19:51:17

12

我認爲這不是黑客行爲:它的定義是邏輯行爲;它在所有瀏覽器中都受支持;可以預期在未來版本的瀏覽器中會支持它(未來的支持的缺席是反對黑客的最重要的論據)。

另外,正如@durilai指出的那樣,W3C正式批准了它們(儘管有限制)。

Smashing Magazine article支持這種情況。

2

我懷疑他們已被標記爲黑客,因爲瀏覽器的行爲不一致。

只要有可能,我會使用position: relative以及負數的頂部和左側值將元素拉入新位置。這對每一種情況都是不可能的,但我發現它在所有Internet Explorer風格中表現得更加一致。

+2

-1什麼是不一致的瀏覽器行爲你指的是? – Tomas 2010-08-20 19:53:15

+0

@Tomas這一跳:http://haslayout.net/css/Negative-Margin-Bug。主要是我得到的是要使用它們,你通常必須應用另一種黑客手段才能在IE6/7中獲得一致的顯示效果。這並不一定會將負邊距標記爲黑客,但給了我足夠的理由,以避免在可能的情況下使用它們。我發現獲得X瀏覽器顯示最簡單的方法是依靠堅如磐石的簡單CSS(位置和浮點寬度定義)。 – Pat 2010-08-20 23:45:15

+0

+1進行相對定位。設置位置:相對;可以奇蹟般地修復其他錯誤。 – 2011-08-31 19:07:51