css - 修复了带有负边距和移动 float 的内联 block div : what's special about -4px?

标签 css html css-float margin

这很奇怪。我试图在右浮动的 div 旁边设置一个固定宽度的 div,我不想重新排序 div(因为这是分布式主题)。因此,我在固定 div 上使用负 margin-right 进行游戏,结果在我看来很奇怪:如果它是 -4px 或更小,那么 float 会移到一边;否则,它保持在下方。

live demo with code at jsbin ,它有这个:

<style>
  .container {
    width: 200px;
    height: 200px;
  }
  .box {
    width: 100px;
    height: 100px;
  }
  .one {
    margin-right: -4px; /* If <= -4, .two box shifts up */
    display: inline-block;
  }
  .two {
    float: right;
  }
</style>
  <div class="container">
    <div class="box one"></div>
    <div class="box two"></div>
  </div>

有人能解释一下其中的奥秘吗?在这种情况下,数字 -4 有什么特别之处?

最佳答案

4px 正好是那个font-size 的“空格”的宽度。

如果您将#containerfont-size 更改为32pxit breaks .

解决此问题的明智方法包括:

关于css - 修复了带有负边距和移动 float 的内联 block div : what's special about -4px?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6614999/

相关文章:

javascript - 如何使响应式 iframe 谷歌地图全屏显示

html - 通过 HTML5 和 Google Text API 重新创建文本效果

javascript - 可折叠体内的固定 Action 按钮

Javascript,仅在单击按钮后,鼠标悬停时更改链接颜色

html - 随着 div 宽度的变化显示图像的中心

html - CSS 属性 background-repeat : repeat; 的必要性是什么

html - 停止 div 延伸到父级下方

html - Bootstrap 列排序网格移动桌面

css 页脚 - 试图分成两列

Html5 和 Css3 - 水平导航栏问题