html - 当元素 float 并且是 block 元素时,左边距不起作用

标签 html css css-float margin-left

我有一个图像(img 标签)和一个 div,其 display 属性设置为 flex
divimg 排成一行。它们是 float 的。
我想将 margin-left 应用于 div 但它不起作用,除非我将 div 的显示属性设置为 inline-block .
我探索了 StackoverFlow,最近的帖子是这个 one .但是那个帖子并没有让我明白发生了什么。 如下图所示,左侧 div 的边距与图像重叠。为什么?为什么它不把 div 推到右边?:enter image description here

这是我的代码:
html

<div id="traffic">
  <p>Traffic</p>
  <img  id="chart" src="https://www.syncfusion.com/products/flutter/control/images/chart/chart-types/flutter-multiple-axis-charts.png" alt="" srcset="">
  <div id="traffic-infos"></div>
</div>        

CSS

#traffic {
  background-color: rgb(255, 255, 255);
  padding: 15px 15px 15px 15px;
  overflow: auto;  /* so the container resized its height */
}

#traffic-infos {
  display: flex;
  flex-direction: column;
  margin-left: 40px;
  height: 300px;
  background-color: black;

}
#chart{
  width: 100%;
  max-width: 850px;
  min-width: 600px;
  height: auto;
  float: left;
}

JsFiddle 中的相同代码:https://jsfiddle.net/shahryarslg/xmo5uahv/8/

如果我将 traffic-infos 类的 display 更改为 inline-block,整个问题就解决了。但是我想了解 display 与这个问题有什么关系?这是怎么回事? 提前致谢。

最佳答案

您需要在 float 元素上设置外边距:

#chart {
  margin-right: 40px;
}

关于html - 当元素 float 并且是 block 元素时,左边距不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59227627/

相关文章:

html - CSS - 只有类型选择器没有正确应用

javascript - map 未显示小省份

CSS: float 和定位

绝对元素中的 HTML 重叠元素

html - Div 流出容器 - 这可能吗?

css - 将 div 与另一个 div 对齐

java - Android Webview 中的 Html 音频

javascript - 平板电脑的工具提示或弹出窗口?

javascript - 单击 dblclick 时隐藏表格列

css - 什么 CSS 框架只用于控件(按钮、输入等),而不用于页面布局?