为什么这些 div 之间有垂直间隙?

Why is there a vertical gap between these divs?

出于某种原因,在 Chrome 上,我在 "top" 和 "bod" 之间有一条 "lime" 彩色 1px 线。当我删除 overflow css 指令时,该行消失了。

我只能在 Chrome 中看到 "lime" 行,而在 Firefox 中看不到。

代码如下:https://jsfiddle.net/m36yk1o9/5/

#chatApplicationClassic {
  padding: 0;
  margin: 0;
  border: 0;
  position: fixed;
  bottom: 0px;
  right: 30px;
  width: 300px;
  background-color: lime;
  box-sizing: border-box;
  border-radius: 5px 5px 0 0;
  box-shadow: 0px 0px 5px #000000;
}

#chatHeaderClassic {
  padding: 0;
  margin: 0;
  border: 0;
  width: 100%;
  background-color: pink;
  cursor: pointer;
  border-radius: 5px 5px 0 0;
  border-top: 0px solid red;
  border-left: 0px solid red;
  border-right: 0px solid red;
  border-bottom: 0px solid red;
  box-sizing: border-box;
}

#chatHeaderTextClassic {
  padding: 0;
  margin: 0;
  border: 0;
  color: #ffff33;
  font-family: 'Open Sans', sans-serif;
  padding: 6px;
  font-size: 18px;
  font-weight: 100;
  display: inline-block;
  border-radius: 5px 5px 0 0;
}

#chatHeaderArrowClassic {
  padding: 0;
  margin: 0;
  border: 0;
  color: #9900ff;
  display: inline-block;
  float: right;
  padding: 6px;
  font-size: 18px;
}

#chatBodyClassic {
  padding: 0;
  margin: 0;
  border: 0;
  background-color: white;
  border-left: 5px solid pink;
  border-right: 5px solid pink;
  height: 200px;
  width: 100%;
  box-sizing: border-box;
  padding-top: 10px;
  overflow: scroll;
}

.chatAgentBubbleClassic {
  padding: 0;
  margin: 0;
  border: 0;
  background-color: #664eff;
  margin-right: 40px;
  margin-top: 10px;
  box-sizing: border-box;
  border-radius: 4px;
}

.chatVisitorBubbleClassic {
  padding: 0;
  margin: 0;
  border: 0;
  background-color: #6600ff;
  margin-left: 40px;
  margin-top: 10px;
  box-sizing: border-box;
  border-radius: 4px;
}

.chatAgentBubbleTextClassic {
  font-size: 12px;
  padding: 8px;
  font-family: sans-serif;
  color: lightblue;
}

.chatVisitorBubbleTextClassic {
  font-size: 12px;
  padding: 6px;
  font-family: sans-serif;
  color: skyblue;
}
<div id="chatApplicationClassic">
  <div id="chatHeaderClassic">
    <div id="chatHeaderArrowClassic">
      Arr
    </div>
    <div id="chatHeaderTextClassic">
      Top
    </div>
  </div>
  <div id="chatBodyClassic">
    bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br />
  </div>
  <!--
 <div id="chatFooterClassic">
  <div id="chatInputContainerClassic">
   <input placeholder="type here..." id="chatInputClassic" type="text" /> 
  </div>
  <div id="chatSendButton">
   <div id="chatSendButtonText">Send</div>
  </div>
 </div>-->
</div>

将内边距从 6px 更改为 5px:

#chatHeaderArrowClassic {
                padding:0;
                margin:0;
                border:0;
                color:#9900ff;
                display:inline-block;
                float:right;
                padding:5px;
                font-size:18px;
            }

嗨,

看起来父元素的背景色为青柠色,如果您隐藏#chatHeaderClassic 背景色,它会显示 through.Proof:

#chatApplicationClassic {
padding: 0;
margin: 0;
border: 0;
position: fixed;
bottom: 0px;
right: 30px;
width: 300px;
background-color: lime;
box-sizing: border-box;
border-radius: 5px 5px 0 0;
box-shadow: 0px 0px 5px #000000;

}

所以只需将上面的代码更改为:

#chatApplicationClassic {
padding: 0;
margin: 0;
border: 0;
position: fixed;
bottom: 0px;
right: 30px;
width: 300px;
background-color: pink;
box-sizing: border-box;
border-radius: 5px 5px 0 0;
box-shadow: 0px 0px 5px #000000;

}

希望这对您有所帮助。 此致

可能来自 header 中的两个 child 元素。 padding 使其中一个盒子比容器高,在那里设置 float 会导致溢出,因为你没有在那里设置任何 clearfix。

但由于您在 "Top" 上设置了 float:right,只需在 "Arr" 上设置 float:left,并通过在容器上添加 overflow:hidden 来清除浮动.那条细石灰线将被删除。

Updated jsFiddle

#chatApplicationClassic {
  padding: 0;
  margin: 0;
  border: 0;
  position: fixed;
  bottom: 0px;
  right: 30px;
  width: 300px;
  background-color: lime;
  box-sizing: border-box;
  border-radius: 5px 5px 0 0;
  box-shadow: 0px 0px 5px #000000;
}

#chatHeaderClassic {
  padding: 0;
  margin: 0;
  border: 0;
  width: 100%;
  background-color: pink;
  cursor: pointer;
  border-radius: 5px 5px 0 0;
  border-top: 0px solid red;
  border-left: 0px solid red;
  border-right: 0px solid red;
  border-bottom: 0px solid red;
  box-sizing: border-box;
  overflow: hidden; /*added*/
}

#chatHeaderTextClassic {
  padding: 0;
  margin: 0;
  border: 0;
  color: #ffff33;
  font-family: 'Open Sans', sans-serif;
  padding: 6px;
  font-size: 18px;
  font-weight: 100;
  /* display: inline-block; */
  border-radius: 5px 5px 0 0;
  float: left; /*added*/
}

#chatHeaderArrowClassic {
  padding: 0;
  margin: 0;
  border: 0;
  color: #9900ff;
  /* display: inline-block; */
  float: right;
  padding: 6px;
  font-size: 18px;
}

#chatBodyClassic {
  padding: 0;
  margin: 0;
  border: 0;
  background-color: white;
  border-left: 5px solid pink;
  border-right: 5px solid pink;
  height: 200px;
  width: 100%;
  box-sizing: border-box;
  padding-top: 10px;
  overflow: scroll;
}

.chatAgentBubbleClassic {
  padding: 0;
  margin: 0;
  border: 0;
  background-color: #664eff;
  margin-right: 40px;
  margin-top: 10px;
  box-sizing: border-box;
  border-radius: 4px;
}

.chatVisitorBubbleClassic {
  padding: 0;
  margin: 0;
  border: 0;
  background-color: #6600ff;
  margin-left: 40px;
  margin-top: 10px;
  box-sizing: border-box;
  border-radius: 4px;
}

.chatAgentBubbleTextClassic {
  font-size: 12px;
  padding: 8px;
  font-family: sans-serif;
  color: lightblue;
}

.chatVisitorBubbleTextClassic {
  font-size: 12px;
  padding: 6px;
  font-family: sans-serif;
  color: skyblue;
}
<div id="chatApplicationClassic">
  <div id="chatHeaderClassic">
    <div id="chatHeaderArrowClassic">
      Arr
    </div>
    <div id="chatHeaderTextClassic">
      Top
    </div>
  </div>
  <div id="chatBodyClassic">
    bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br /> bod
    <br />
  </div>
  <!--
 <div id="chatFooterClassic">
  <div id="chatInputContainerClassic">
   <input placeholder="type here..." id="chatInputClassic" type="text" /> 
  </div>
  <div id="chatSendButton">
   <div id="chatSendButtonText">Send</div>
  </div>
 </div>-->
</div>