2010-08-20 52 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