【问题标题】:Divs using inline-block are overlapping使用 inline-block 的 div 重叠
【发布时间】:2016-05-06 01:22:24
【问题描述】:

我的 div 相互重叠,它们之间没有空格。我试过文本对齐中心,删除和添加 div 之间的空白,设置边距,似乎没有任何效果。我只需要将这些物品隔开。任何帮助表示赞赏。

这是一个小提琴示例:https://jsfiddle.net/vn6t3nwd/

HTML:

<div id="timer-container">
  <div id="timermode">up</div><div id="timermode">down</div>
  <div id="timercontrol">stop</div>
  <div id="timercontrol">go</div>
</div>

CSS:

#timer-container {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%;
    display: table;
    background-color: black;
}

#timermode {
    position: absolute;
    width: 30%;
    font-family: "Avenir-Light";
    font-size: 40px;
    color: white;
    vertical-align: top;
    display: inline-block;
}

#timercontrol {
    position: absolute;
    display: inline-block;
    font-size: 40px;
    font-family: "Avenir-Light";
    color: white;
}

编辑:问题是位置:绝对,但是删除它会导致我的背景高度略有增加。我认为这是由于我在底部填充了 56.25%,但我需要这样做。无论如何都要双管齐下?

Edit2:用答案更新了小提琴。我通过添加另一个容器来解决我的身高增加问题。

【问题讨论】:

    标签: html css


    【解决方案1】:

    因为position: absolute;,你有重叠

    另外,id 被设为unique identifier,如果您需要为多个 html 元素使用相同的 css,您应该将其定义为 class

    HTML:

    <div id="timer-container">
      <div class="timermode">up</div>
      <div class="timermode">down</div>
      <div class="timercontrol">stop</div>
      <div class="timercontrol">go</div>
    </div>
    

    CSS:

    #timer-container {
        ...
    }
    .timermode {
        ...
    }
    .timercontrol {
        ...
    }
    

    【讨论】:

    • 你们是对的,位置:绝对是导致问题的原因,但是通过删除它,背景变化的高度。我认为这是由于我在容器上填充了 56.25%。有没有办法解决这个问题?
    【解决方案2】:

    我是一个年轻有抱负的程序员,所以我的回答可能对你有帮助,也可能对你没有帮助。我认为这是因为绝对位置。我在 JSFiddel 中编辑您的代码,并注意到当我删除绝对样式时,它会根据元素的相对位置定位所有元素。希望能帮助到你。编码愉快。

    【讨论】:

      【解决方案3】:

      删除子元素的绝对定位将允许它们按预期显示内联。此外,如上所述,仅对唯一元素使用 id 属性,对重复元素使用类,如下例所示。

      #timer-container {
        position: relative;
        width: 100%;
        padding-bottom: 56.25%;
        display: table;
        background-color: black;
      }
      .timermode {
        width: 30%;
        font-family: "Avenir-Light";
        font-size: 40px;
        color: white;
        vertical-align: top;
        display: inline-block;
      }
      .timercontrol {
        display: inline-block;
        font-size: 40px;
        font-family: "Avenir-Light";
        color: white;
      }
      <div id="timer-container">
        <div class="timermode">up</div>
        <div class="timermode">down</div>
        <div class="timercontrol">stop</div>
        <div class="timercontrol">go</div>
      </div>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-08-03
        • 2013-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-19
        • 2016-08-18
        相关资源
        最近更新 更多