【问题标题】:Remove gap between divs that have no margin and padding [duplicate]删除没有边距和填充的div之间的间隙[重复]
【发布时间】:2016-07-16 11:01:26
【问题描述】:

我有两个 div,一个是 mini-date-holder 类,一个是 mini-event-holder 类。

尽管两者都没有边距和填充,但它们在渲染时之间存在间隙,我似乎无法弄清楚原因。

有人知道为什么他们之间有差距以及我如何摆脱它吗?

理想情况下,三个点应该刚好在数字下方。

我知道我可以使用 transformY 之类的东西,但我宁愿弄清楚为什么它们一开始就被渲染得如此之远。

请参阅this JSFiddle 或以下代码。

.mini_date {
  flex: 1;
  text-align: center;
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-weight: 400;
}
.mini-event {
  width: 4px;
  height: 4px;
  background: red;
  border-radius: 2px;
  float: left;
  margin-left: 3px;
  margin-right: 3px;
}
.mini-event-holder {
  margin: 0 auto;
  height: 4px;
  display: inline-block;
  margin: 0px;
  padding: 0px;
}
.mini-date-holder {
  margin: 0px;
  padding: 0px;
}
<div class="mini_date">
  <div class="mini-date-holder">10</div>
  <div class="mini-event-holder">
    <div class="mini-event"></div>
    <div class="mini-event"></div>
    <div class="mini-event"></div>
  </div>
</div>

【问题讨论】:

标签: html css


【解决方案1】:

.mini_date{
	flex: 1;
	text-align: center;
	font-family: "Roboto", "Helvetica", "Arial", sans-serif;
	font-weight: 400;
}
.mini-event{
	width: 4px;
	height: 4px;
	background:red;
	border-radius: 2px;
	float: left;
  margin-left: 1px;
  margin-right: 1px;
}

.mini-event-holder{
	margin: 0 auto;
	height: 4px;
	display: inline-block;
	margin:0px;
	padding: 0px;

}
.mini-date-holder{
	margin: 0px;
    line-height: 1em;
	padding: 0px;
}

.mini_date{
     line-height: 0; 
}
	<div class="mini_date">
						<div class="mini-date-holder">10</div>
						<div class="mini-event-holder">	
							<div class="mini-event"></div>
							<div class="mini-event"></div>
							<div class="mini-event"></div>
						</div>
          </div>

【讨论】:

    【解决方案2】:

    我认为是line-height 属性。 尝试将 2 个 div 上的行高设置为 0。

    【讨论】:

    • 所以这消除了间隙,但也将文本向上移动。有没有办法在不移动文本的情况下做到这一点?还是我必须在点上使用 transformY ?
    • 这是您使用填充或边距将 div 移动到位的地方。