div 不断重叠上 div

Posted

技术标签:

【中文标题】div 不断重叠上 div【英文标题】:Div keeps overlapping upper div 【发布时间】:2018-04-06 12:58:00 【问题描述】:

我正在使用 Angular4,我正在创建可视化组件。

我创建了2个元素,一个是inline-block,第二个是block。按照逻辑,如果我把内联块放在第一位,它应该有正确的空间,第二个组件应该出现在下一行。

在我的情况下,当我将块放在第一个时,内联块会下降,但是当我将内联块放在首位时,第二个会继续上升并重叠(并混合元素)......

这是第一种情况下的样子

这就是我将元素块放在第二位时发生的情况

它们都定义了尺寸和显示...你能帮我吗?

【问题讨论】:

为什么不只是两个display:block 因为我在图片中标记,它们可以是几个内联块元素。我只需要阻止大的。 不管怎样,忘记旧的内联块的东西。 Flexbox 就是生命,Flexbox 是我们的救星。无论如何,如果我们可以使用您的 html + CSS 会更容易。 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建minimal reproducible example 我建立了欲望的行为(把所有东西都放在应该的地方,而不是把东西混在一起),也稳定了问题……说 div 是块和内联块。它所需要的一切。我还包括了图片,所以我没有看到问题@Pete 【参考方案1】:

我认为 display 属性不是问题,因为它不是 blockinline-block 值的常见行为。将一个或另一个放在之后或之前不会影响在不同的行中显示每个。

检查这个sn-p:

.container

border: 1px solid black;
margin: 1em;
padding: 1em;


.blocky 
  display: block; 
  height: 2em; border: 1px solid red; 
 
.inliny-blocky
      display: inline-block; height: 1em; 
      width: 2em; border: 1px solid green; 
 
<div class="container">
  <div class="inliny-blocky"></div>
  <div class="blocky">
  </div>
</div>

<div class="container">
  <div class="blocky"></div>
  <div class="inliny-blocky"></div>
</div>

检查任何其他使 div 重叠的 css 样式。

【讨论】:

【参考方案2】:

将父 div 与内联块一起使用

【讨论】:

【参考方案3】:

使用

标签如下

<p>
  <md-checkbox class="example-margin" ngDefaultControl></md-checkbox>
</p>
<p>
    <md-input-container>
      <input mdInput placeholder="Name" formControlName="name" 
         maxlength="300" ngDefaultControl>
    </md-input-container>
</p>

【讨论】:

以上是关于div 不断重叠上 div的主要内容,如果未能解决你的问题,请参考以下文章

将导航定位在具有重叠 div 的下标题边框上 (HTML/CSS)

阻止 div 在导航栏上重叠

光标在具有更高 z-index 的重叠 div 上可见

拖动和调整 div 与另一个 div 重叠

jQuery Mobile 固定标题 div 与内容 div 重叠

重叠时如何滚动div