第一个跨度的边距顶部不起作用[重复]

Posted

技术标签:

【中文标题】第一个跨度的边距顶部不起作用[重复]【英文标题】:Margin top of first span not working [duplicate] 【发布时间】:2014-02-07 18:23:53 【问题描述】:
<div class ="cards">
  <span id="cardtitle">
    Chance 
  </span>
  <span id="cardinfo">
    Your ass is going to jail.
  </span>
</div>
.cards
  background: #F8F8F8 ;
  height: 100px;
  margin: 0 auto;
  width: 200px;

#cardtitle, #cardinfo
  background: #ffcc00;
  display: block;
  margin-top: 10px;
  width: 100px;

好的,#cardinfo 上的边距顶部有效,但 #cardtitle 无效。问题似乎是第一个元素,因为如果我反转 2 个跨度,问题就会逆转。

【问题讨论】:

那是因为margin collapse。 不,它不是重复的,因为 margin-top 对我有用,尽管不适用于第一个 span 元素。 @EltonFrederik 是的,我是在我关闭后才知道的,很抱歉,我已经回答了,我意识到的那一刻 【参考方案1】:

您面临的问题称为collapsed margin,因此您可以使用position: relative; 并将top 设置为10px 或在父元素上使用overflow: auto;

Demo (使用overflow: auto;

Demo 2 (使用position: relative; + top: 10px;top: 20px;

position: relative; 方法将要求您单独设置 top,因为它会移动您的元素,尽管它会物理保留空间,因此您必须为第二个加倍..

【讨论】:

@Alien 先生,它起作用了,但我能问一下为什么我需要overflow: auto;,我认为这是默认设置。我的 div 足够大,可以容纳 2 个跨度...? @EltonFrederik 它定义了新的块格式化上下文,你也可以使用overflow: hidden;...任何你喜欢的 您可以使用 position:absolute 和 top、right、left 和 bottom 来根据您的选择定位元素。

以上是关于第一个跨度的边距顶部不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章

我的边距顶部没有应用于我的锚标签[重复]

边距顶部/底部百分比在 Firefox 中不起作用 [重复]

特定断点处元素的边距在 Tailwind 中不起作用

以编程方式在 RealtiveLayout 中设置 LinearLayout 的边距 - 不起作用

在代码中设置 textview 的边距和重力不起作用

Margin 0 auto 到 div 内的跨度不起作用