【问题标题】:Extra margin under floated elements浮动元素下的额外边距
【发布时间】:2016-11-03 22:43:01
【问题描述】:

我的容器构造方式存在问题。我有两行,每行有两列。想想 4 个象限(见下图)。左下象限上升到右上象限。

我使用浮动来切换不同视口的位置,所以浮动是必须的。我已经在这个问题上停留了一段时间,似乎无法弄清楚。

我包含了它正在做什么的快照。除了左下象限进入右上象限外,行之间还有一个间隙。

我还包括了一个小提琴。有人看到发生了什么吗?

.section-blocks {
	width: 50%;
	height: auto;
	display: inline-block;
	vertical-align: top;
}
.section-block-img {
	height: 100%;
	width: 100%;
}
.left {
	float: left;
}
.right {
	float: right;
}

#company-information {
	width: 100%;
	height: auto;
}
.company-information-block-title, .company-information-block-title2, .company-information-block-general-title, .company-information-block-description {
	color: #313743;
	line-height: 1.4em;
}
.company-information-block-title {
	font-size: 1.6em;
	margin-bottom: 20px;
}
.company-information-block-title2 {
	font-size: 3.2em;
	margin-bottom: 40px;
	font-weight: bold;
	color: #0085A1;
}
.company-information-block-general-title {
	font-size: 2.2em;
	margin-bottom: 40px;
	font-weight: bold;
}
.company-information-block-description {
	font-size: 1.2em;
	margin-bottom: 40px;
}


#company-information-block2 {
	height: auto;
}

#company-slider-section {
  width: 100%;
  height: auto;
  position: relative;
}

div#slider {
  width: 100%;
  overflow: hidden;
  position: relative;
}

#responsive-section {
	width: 100%;
	height: auto;
}
#responsive-block1 {
	float: left;
	height: 100%;
	width: 40%;
	position: relative;
}
#responsive-block2 {
	float: right;
	height: auto;
	width: 60%;
	overflow: hidden;
}
#responsive-block2 img {
	width: 100%;
	height: auto;
}
<div class="section-blocks right">
			<div class="company-container">
				<div class="company-information-block-general-title">COMPANY STORY</div>
				<div class="company-information-block-description">
					<p>fdhsia  fid afdan fndsanfdn   fnfd fksanfanfd nfdanfan nfanafn dfnejwaoN F[gnf nr rnreogn aonrkngrnrnasng r narnrnoangrfkdkgraarmng aa arngrnga;aggkrioa   anrnr argnkrg gagnrgng g grkrn g g rgn e gan ggn as</p><br><br>
					<p>Ohtgfd htgdh thtrh trh rt sdfhh htsh shfh tsh sshh hs thhth shgsndfsank kfdnsak fndnkfdsa nkf f ndaiof nfasoanovn ndan fna gn an gnalnasgng agngna na nngfen grana akn gngaananogn</p>
					
				</div>
			</div>
		</div><div id="company-slider-section">
			<div class="section-blocks left">
			<div id="slider" class="slider">
			  <figure class="figure figure2">
				<div class="slide-wrapper">
				  <div class="slide"><img src="http://optimumwebdesigns.com/images/work/projects/eslich/es-test1.jpg" alt class="slide-image"></div>
				</div>
			  </figure>
			</div>
		</div>
	</div>
	<div id="responsive-section">
		<div id="responsive-block1">
			<div class="company-container">
				<div class="company-information-block-general-title">INDUSTRY SPECIFIC</div>
				<div class="company-information-block-description"></div>
			</div>
		</div>
		<div id="responsive-block2">
			<img src="http://optimumwebdesigns.com/images/work/projects/eslich/es-test3.jpg" alt>
		</div>
	</div>

【问题讨论】:

  • 您在 .block-title 元素上有 margin-bottom
  • 将这些更改为填充并不能解决此问题。不过还是谢谢。
  • 我从来没有说过你应该把它改成填充。为什么不删除它们?
  • 我为什么要删除它们?我不希望不同的标题相互影响。
  • figure 元素默认有一些边距。

标签: html css css-float margin


【解决方案1】:

我能看到的最简单的解决方案是使用.clearfix 解决方案将各自的象限包装成行:

.clearfix:after {
    content: "";
    display: table;
    clear: both;
}

【讨论】:

  • 我不确定我这样做是否正确? jsfiddle.net/6yj6s90d
  • 您不能像当前那样将.clearfix 应用于浮动元素。您需要将整个“公司”部分包装在另一个 div 中,并使用 .clearfix 类。
  • 好的,我想我明白了,购买为什么两排之间还有间隙? jsfiddle.net/6yj6s90d/1
  • @Becky figure 元素可能具有默认边距,如果未设置为 display: blockimg 可能会添加额外边距
  • @Oriol 和 @RemusGLS 是正确的 - 设置 figure { margin: 0; padding: 0 } 消除了差距。
【解决方案2】:

您不需要同时使用float: left;float: right,只需将其向左浮动即可。这也将使代码更易于阅读。 您可以将“块”放入“行”中,以确保它们不会相互干扰。通过设置块overflow,您可以确保它与它的孩子一起“成长”。

.row {
  position: relative;
  overflow: hidden;
}
.section-blocks {
	float: left;
	width: 50%;
	height: auto;
	display: inline-block;
	vertical-align: top;
}
.section-block-img {
	height: 100%;
	width: 100%;
}
.left {
	float: left;
}
.right {
	float: right;
}

#company-information {
	width: 100%;
	height: auto;
}
.company-information-block-title, .company-information-block-title2, .company-information-block-general-title, .company-information-block-description {
	color: #313743;
	line-height: 1.4em;
}
.company-information-block-title {
	font-size: 1.6em;
	margin-bottom: 20px;
}
.company-information-block-title2 {
	font-size: 3.2em;
	margin-bottom: 40px;
	font-weight: bold;
	color: #0085A1;
}
.company-information-block-general-title {
	font-size: 2.2em;
	margin-bottom: 40px;
	font-weight: bold;
}
.company-information-block-description {
	font-size: 1.2em;
	margin-bottom: 40px;
}


#company-information-block2 {
	height: auto;
}

#company-slider-section {
  width: 100%;
  height: auto;
  position: relative;
}

div#slider {
  width: 100%;
  overflow: hidden;
  position: relative;
}

#responsive-section {
	width: 100%;
	height: auto;
}
#responsive-block1 {
	float: left;
	height: 100%;
	width: 40%;
	position: relative;
}
#responsive-block2 {
	float: right;
	height: auto;
	width: 60%;
	overflow: hidden;
}
#responsive-block2 img {
	width: 100%;
	height: auto;
}
<div class="row">
  <div class="section-blocks">
    <div id="slider" class="slider">
      <figure class="figure figure2">
        <div class="slide-wrapper">
          <div class="slide"><img src="http://optimumwebdesigns.com/images/work/projects/eslich/es-test1.jpg" alt class="slide-image"></div>
        </div>
      </figure>
    </div>
  </div>

<div class="section-blocks">
  <div class="company-container">
    <div class="company-information-block-general-title">COMPANY STORY</div>
    <div class="company-information-block-description">
      <p>fdhsia  fid afdan fndsanfdn   fnfd fksanfanfd nfdanfan nfanafn dfnejwaoN F[gnf nr rnreogn aonrkngrnrnasng r narnrnoangrfkdkgraarmng aa arngrnga;aggkrioa   anrnr argnkrg gagnrgng g grkrn g g rgn e gan ggn as</p><br><br>
      <p>Ohtgfd htgdh thtrh trh rt sdfhh htsh shfh tsh sshh hs thhth shgsndfsank kfdnsak fndnkfdsa nkf f ndaiof nfasoanovn ndan fna gn an gnalnasgng agngna na nngfen grana akn gngaananogn</p>			
    </div>
  </div>
</div>
</div>
<div class="row">
<div id="responsive-section">
  <div id="responsive-block1">
    <div class="company-container">
      <div class="company-information-block-general-title">INDUSTRY SPECIFIC</div>
      <div class="company-information-block-description"></div>
    </div>
  </div>
  <div id="responsive-block2">
    <img src="http://optimumwebdesigns.com/images/work/projects/eslich/es-test3.jpg" alt>
  </div>
</div>
  </div>

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多