html - 右浮动容器导致换行

标签 html css css-float

我现在又在和 float 元素打架了。

请看一下这个 jsfiddle:float-issue

html {
  width: 100%
}
.container {
  /*width: 80%;*/
  /*margin: auto;*/
  border: 1px solid black;
}
.element {
  margin-left: 10px;
  margin-right: 10px;
  background-color: purple;
  float: left;
}
<div class="container" style="float: right">
  <div style="float: left">HEADER</div>
  <div style="border: 1px solid green;">
    <div style="float: left">
      <div class="element">lorem ipsum dolor sit amet.</div>
      <div class="element">lorem ipsum dolor sit amet. lorem ipsum dolor sit amet.</div>
      <div class="element">lorem ipsum dolor sit amet.</div>
    </div>
  </div>
</div>

我不明白的是,为什么紫色元素不在“HEADER”旁边而是在新的一行上?在已经 float 的 div 周围添加绿色边框的 div 元素时出现此问题。我无法解释为什么这会导致新行?任何人都可以帮助我吗?

我认为会发生的是:

  1. 绿色边框的 div 没有 float ,所以它填充了容器 div(因为它没有内容(里面的元素是 float 的,因此不是流的一部分)缩小到零高度)。
  2. header div 漂浮在绿色边框 div 的“上方”。
  3. 由于紫色元素与另一个 div 一起 float ,因此该 div 将 float 在 float 标题旁边。

我错过了什么?

最佳答案

这是 display: inline-block 的解决方案

html {
  width: 100%
}
.container {
  /*width: 80%;*/
  /*margin: auto;*/
  border: 1px solid black;
}
.element {
  margin-left: 10px;
  margin-right: 10px;
  background-color: purple;
  float: left;
}
<div class="container" style="float: right">
  <div style="float: left; display: inline-block;">HEADER</div>
  <div style="border: 1px solid green; display: inline-block;">
    <div style="float: left">
      <div class="element">lorem ipsum dolor sit amet.</div>
      <div class="element">lorem ipsum dolor sit amet. lorem ipsum dolor sit amet.</div>
      <div class="element">lorem ipsum dolor sit amet.</div>
    </div>
  </div>
</div>

关于html - 右浮动容器导致换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29898939/

相关文章:

javascript - Accordion 的所有子选项卡都带有单个滚动条

jquery - 如何在 Logo 的 Bootstrap 导航栏中心创建一个半圆?

html - 使图像出现在悬停时

css - CSS 清除或溢出的最佳实践

应用 float 时的 css 显示属性

javascript - 样式隐藏下拉菜单

html - CSS id 在 div 中不起作用

javascript - 如何在 Visual Studio 中自动将 md5 哈希的版本号添加到 javascript 和 css 文件或使用其他方式强制刷新浏览器缓存?

javascript - $ ('#iframe' ).height 不工作

html - 如何摆脱 td 的额外高度?