即使使用侧柱,主列也不会渲染

时间:2017-03-31 19:20:19

标签: html5 css3

我有一个两列布局主要内容区域呈现页面。甚至没有放在一边。我想知道我是否需要一个包装div? 或者我的CSS不对? 我没有发布CSS只是思想可能很重要

enter image description here

@charset "utf-8";
body {
	font: 100%/1.4 Verdana, Arial, Helvetica, sans-serif;
	background: #FFF;
    background-image:url(../assets/bg1.png);
	margin: 0;
	padding: 0;
	color: #000;
}
.sidebar h4 {
	padding-bottom: 0;
	font-size: 13px;
	color: #fff;
	text-transform: uppercase;
	font-weight: normal;
	padding: 7px 7px;
	border-bottom: 1px solid #A31923;
  	background-color: #DE2D3A;
}
/* ~~this fixed width container surrounds the other divs~~ */
/*#container {
	width: 960px;
	margin: 20px auto;
	padding: 10px;
	box-shadow: 0 5px 5px 5px #CCCCCC;
	background-color: #fff;
}*/
.container {
	width: 1260px;
	margin: 20px auto;
	padding: 10px;
	background: #FFF;
    box-shadow: 0 0 5px 5px #B8B8B8;
	/*margin: 0 auto;  the auto value on the sides, coupled with the width, centers the layout */
}

.sidebar {
    float: left;
    width: 180px;
	margin-top: 10px;
}

.sidebar h4 {
	padding-bottom: 0;
	font-size: 13px;
	color: #fff;
	text-transform: uppercase;
	font-weight: normal;
	padding: 7px 7px;
	border-bottom: 1px solid #A31923;
  	background-color: #DE2D3A;
}

.footer {
	padding: 10px 0;
	background: #CCC49F;
	position: relative;
	clear: both;
}


.fltrt { 
	float: right;
	margin-left: 8px;
}
.fltlft { 
	float: left;
	margin-right: 8px;
}
.clearfloat { 
	clear:both;
	height:0;
	font-size: 1px;
	line-height: 0px;
}
.clear {
	clear: both;
}
<body>
    <div class="container">
	  <header>
		<h2>our website slogan here with header image</h2>
	</header>
	<nav>
		<ul>
			<li>X</li>
			<li>X</li>
		</ul>
	</nav>
	<aside class="sidebar">
		<ul>
			<li>
				<h4>X</h4>
				<ul>
					<li>X</li>
					<li>X</li>
				</ul>
			</li>
			</ul>
	</aside>
	<main>
		<section>
		<article>
			<h2>CCCC</h2>
			<p>CCC</p>
		</article>
		<article>
			<h1>xXX<h1>
			<h2>XXX</h2>
			<p>XX</p>
		</article>
		<article>
			<h2>XXX</h2>
			<p>V</p>
		</article>
		</section>
	</main>
	<div class="clear"></div>
	<footer>
		<p>XXX.</p>
	</footer>
    
</body>
</html>

1 个答案:

答案 0 :(得分:0)

  

我想知道我是否需要包装div?

不是真的,你可以在没有额外包装的情况下实现它。

  

或者我的CSS不对?

这就是问题,你的CSS可能会好得多。您正在使用float,除非有充分理由使用它,否则我们将在2017年:使用flexbox代替并暂时忘记浮点元素。

您的示例没有完整的代码,因此我将使用全宽标题创建一个简单的代码段,旁边的主要内容为180px,以及全宽页脚。所有这些只在一个包装器中:.container元素。

&#13;
&#13;
span{
display: block;
  color: white;
  padding: 1rem;
}

.container{
  display: flex;
  flex-wrap: wrap;
}

header{
  width: 100%;
  min-height: 50px;
  background-color: #e74c3c;
}

aside{
  flex-basis: 180px;
  min-height: 300px;
  background-color: #f1c40f;
}

main{
  flex: 1;
  min-height: 300px;
  background-color: #f39c12;
}

footer{
  width: 100%;
  min-height: 80px;
  background-color: #2ecc71;
}
&#13;
<div class="container">
  <header>
    <span>Header</span>
    <!-- Put your content here -->
  </header>
  
  <aside>
    <span>Aside</span>
    <!-- Put your content here -->
  </aside>
  
  <main>
    <span>Main</span>
    <!-- Put your content here -->
  </main>
  
  <footer>
    <span>Footer</span>
    <!-- Put your content here -->
  </footer>
</div>
&#13;
&#13;
&#13;