【问题标题】:Float on Google Chrome and Microsoft Edge在 Google Chrome 和 Microsoft Edge 上浮动
【发布时间】:2020-07-26 20:58:47
【问题描述】:

我正在使用 float 来对齐 3 个 div(左、中、右)。第一张照片显示了它的外观 on Google Chrome。第二张图片显示如何 它看起来 on Microsoft Edge 。浮动在 Google Chrome 上运行良好,当使用 Microsoft Edge 时,最后一个 div(right) 移动到左下容器。为什么会这样

* body,
p,
img {
  margin: 0;
}

.container {
  width: 900px;
  border: 5px solid green;
  padding: 3px;
  margin: auto;
}

.left {
  background-color: blueviolet;
  width: 150px;
  height: 300px;
  line-height: 100px;
  text-align: center;
  float: left;
}

.center {
  width: 600px;
  height: 300px;
  background-color: burlywood;
  float: left;
}

.right {
  width: 150px;
  height: 300px;
  background-color: coral;
  float: left;
}

.clear {
  clear: left;
}
<div class="container">
  <div class="left"></div>
  <div class="center"></div>
  <div class="right"></div>
  <div class="clear"></div>
</div>

【问题讨论】:

  • 同一张图片的两倍
  • @Ifaruki 我编辑了一张图片

标签: css


【解决方案1】:

您编写的 CSS 使输出如图所示。在您的容器中,您使用了边框和填充。这两者会导致容器的实际宽度在某些浏览器上小于 900px。所以宽度是 900 - (5 + 5) - (3 + 3) = 884px。

可能,chrome 试图了解您想要什么,但 Edge 会为您提供实际输出。这是预期的,因为边框和填充会影响 div 容器的最终宽度。不过,设置边距不会影响它。

要解决这个问题并让三只狗在所有浏览器上出现在同一行,即珊瑚 div 出现在右侧,您需要将以下 CSS 添加到您的容器(或最好是 body 标签):

box-sizing: 边框框;

您可以在https://css-tricks.com/box-sizing/阅读更多内容

不要忘记添加所有供应商前缀

【讨论】:

  • @ u2tope 我在容器中添加了一个box-sizing: border-box,最后一个 div 仍然在它的位置上,输出仍然与我在正文中添加box-sizing: border-box 相同。我还尝试清除边框和填充,最后一个 div 仍然在它的位置。但是当我更改容器的宽度时,例如容器的宽度为 600 像素,左 div 150 像素,中心 div 300 像素,右 div 150 像素,边框 5 像素,填充 3 像素。它可以在 Microsoft Edge 上正常运行
  • 请问您使用的是哪个版本的浏览器?我在 Chrome、edge、opera 和 Firefox 上进行了测试……一切正常
  • 我使用的是 chrome 81.0.4044.113、mozilla 75.0 和 edge 81.0.416.58
猜你喜欢
  • 1970-01-01
  • 2017-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-27
  • 2016-10-02
  • 1970-01-01
  • 2021-10-27
相关资源
最近更新 更多