html - float 元素落在另一个 float 元素下方

标签 html css css-float

我想知道为什么 main文章跌破sidebar1 ,以及为什么sidebar2即将出现在 sidebar1 旁边.

main文章向左浮动并且没有宽度。

sidebar1旁边怎么没有足够的空间呢? ?

解释原因会有很大帮助。

* {
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.sidebar1 {
  background-color: cyan;
  float: left;
  width: 20%;
  padding: 0 20px 0 10px;
}
.main {
  background-color: green;
  float: left;
}
.sidebar2 {
  background-color: red;
}
<div class="contentWrapper">
  <!-- first sidebar goes here -->
  <aside class="sidebar1">
    <h2>Sidebar 1</h2>
    <p>Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus
      elit risus id tortor.</p>
    <h3>Secondary Header</h3>
    <p>Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum.</p>
    <h3>Secondary Header</h3>
    <p>Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum.</p>
  </aside>
  <!-- main content goes here -->
  <article class="main">
    <h2>Article Title</h2>
    <p>Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus
      elit risus id tortor. Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum.</p>
    <p>Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus elit risus id tortor.</p>
    <p>Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus
      elit risus id tortor. Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum.</p>
    <h3>Subheading</h3>
    <p>Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus
      elit risus id tortor. Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum.</p>
    <h3>Subheading</h3>
    <p>Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus
      elit risus id tortor. Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra
      mi, vel faucibus elit risus id tortor. Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet,
      nunc sem pharetra mi, vel faucibus elit risus id tortor. Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet
      luctus imperdiet, nunc sem pharetra mi, vel faucibus elit risus id tor</p>
  </article>
  <!-- second sidebar goes here -->
  <aside class="sidebar2">
    <h2>Sidebar 2 </h2>
    <ul>
      <li>Aenean orci ante</li>
      <li>Venenatis non adipiscing vita</li>
      <li>Fringilla et neque</li>
      <li>Aenean orci ante</li>
      <li>Venenatis non adipiscing vita</li>
      <li>Fringilla et neque</li>
    </ul>
    <p>Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus
      elit risus id tortor.Suspendisse vitae quam lorem, in tempus velit.</p>
    <p>Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus elit risus id tortor.Suspendisse vitae quam lorem,
      in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus elit risus id tortor.</p>
  </aside>
</div>

最佳答案

您在这里错过了一些事情:

  1. content 的宽度设置为 80%(将 sidebar1 设置为 20%),否则 float 框的宽度将由其内容决定,然后

  2. 清除内容后的 float :

    <div style="clear:both"></div>
    

就这样吧!

* {
	-moz-box-sizing: border-box;
	box-sizing: border-box;	
}

.sidebar1 {
	background-color: cyan;
	float: left;
	width: 20%;
	padding: 0 20px 0 10px;
}

.main {
	background-color: green;
	float: left;
    width: 80%;
}

.sidebar2 {
	background-color: red;
}
<div class="contentWrapper">
		<!-- first sidebar goes here -->
		<aside class="sidebar1">
			<h2>Sidebar 1</h2>
			<p>Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus elit risus id tortor.  </p>
		  	<h3>Secondary Header</h3>
		  	<p>Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum.  </p>
		  	<h3>Secondary Header</h3>
		  	<p>Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. </p>
		</aside>
		<!-- main content goes here -->
		<article class="main">
			<h2>Article Title</h2>
			<p>Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus elit risus id tortor. Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum.</p>
			 <p>Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus elit risus id tortor. </p>
			 <p>Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus elit risus id tortor. Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. </p>
			  <h3>Subheading</h3>
			 <p>Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus elit risus id tortor. Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. </p>
			 <h3>Subheading</h3>
			 <p>Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus elit risus id tortor. Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus elit risus id tortor. Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus elit risus id tortor. Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus elit risus id tor</p>
		</article>
        <div style="clear:both"></div>
		<!-- second sidebar goes here -->
		<aside class="sidebar2">
			<h2>Sidebar 2 </h2>
			<ul>
			    <li>Aenean orci ante</li>
			    <li>Venenatis non adipiscing vita</li>
			    <li> Fringilla et neque</li>
			    <li>Aenean orci ante</li>
			    <li>Venenatis non adipiscing vita</li>
			    <li> Fringilla et neque</li>
		  	</ul>
		  	<p>Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus elit risus id tortor.Suspendisse vitae quam lorem, in tempus velit. </p>
		  	<p>Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus elit risus id tortor.Suspendisse vitae quam lorem, in tempus velit. Sed vitae ante quis felis fringilla condimentum. Aenean orci ante, venenatis non adipiscing vitae, fringilla et neque. In pharetra, eros imperdiet luctus imperdiet, nunc sem pharetra mi, vel faucibus elit risus id tortor.</p>
		</aside>
	</div>

关于html - float 元素落在另一个 float 元素下方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39192059/

相关文章:

android - 在某些手机中以整页显示的 Jquery 移动应用程序标题

css - 多行 HTMLanchors 中的不可点击区域

html - 2 个 div 50% 内联 block 彼此不相邻

html - 带有CSS的菜单栏没有 float 的文本对齐

css - 通过调整边距用多个子div填充父div

javascript - 在将按键事件应用于 DOM 之前,如何确定在按键事件之后的值是什么?

html - Chrome 文本问题?

FF 和 IE 中的 CSS 错误?包括边界在内的过渡在两者中都产生了意想不到的结果。或者我将如何调整行为?

html - CSS 如何拉伸(stretch)以适应和保持纵横比?

html - 如果空间足够则并排 div,否则以 100% 宽度堆叠