css - 为什么使用负边距?

标签 css

只要看看这里的一些 CSS,我就注意到了:

.head{position:relative;overflow:hidden;margin:-30px 0 0 -25px;width:820px;padding:20px 25px 0 25px;background:url(/images/bkg.gif) 0 0 no-repeat;}

为什么要放置 -30 和 -25 像素的边距?

最佳答案

我开始输入答案,然后找到一个更好的答案 here (Wayback Machine backup)。一些要点:

负边距:

  • 是有效的 CSS
  • 不要打断页面流
  • 具有高水平的跨浏览器兼容性(尽管如果它们破坏了您的链接或 float 图像,请尝试添加 position: relative;这应该可以解决问题)

它们对非 float 元素的影响:

  • 将它们应用到元素的顶部或左侧会将该元素“拉”到适当的方向
  • 但是,将它们应用到元素的底部或右侧会将紧接着的后续元素“拉”到其中,使它们重叠

它们对 float 元素的影响:

  • 这更复杂,我不能比这篇文章更好地总结它了。在 Firebug 中玩一玩,感受一下。

在那篇文章中有一些使用负边距的精彩示例(尤其是 3 列布局!魔术。我之前使用 a similar technique 进行页面布局。)我发现它们最常见的用法是少量移动元素以校正其位置,并使一个元素与另一个元素重叠以获得视觉效果。

关于css - 为什么使用负边距?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1840237/

相关文章:

html - 多选框上的溢出正在改变文档高度

php - laravel中不同页面的不同样式表

jquery - css 动画 onload jQuery 事件

html - CSS 使元素居中

css - Z-Index 使用相对于重叠图像定位的元素

html - 使用 Bootstrap 对齐元素

HTML5 拖放 : How do I target the cloned AND original elements?

html - 如何完美对齐 Logo 、导航栏和 Logo

html - 从 css 十字准线属性跳过按钮

html - CSS3 中的超酷线性渐变