CSS:主要内容应该有背景色

时间:2017-08-24 07:41:11

标签: html css css3 sass

我正在制作一个通用的页眉和页脚,它将在所有HTML页面中使用。我的页面有一个白色标题和白色页脚,正文是灰色的。现在,我的工作要求实现如下:  enter image description here

到目前为止我所取得的成就如下:

enter image description here

我不知道为什么我会在身体标签的两侧留下这些白色条带。请提出建议,我的代码如下。

main {
  background-color: lightgrey;
  padding: 50px;
}

header {
  background-color: white;
  width: 100%;
  height: 50px;
}

.content-section {
  background-color: lightgrey;
  width: 100%;
}

.logo {
  height: 20px;
  margin: 15px 5px;
  width: 116px;
}

.open-card-BG {
  font-weight: 300;
  margin: 0 auto;
  width: 65%;
  padding: 20px 40px;
  object-fit: contain;
  max-width: 325px;
  min-height: 200px;
  border-radius: 5px;
  display: table;
  background-color: white;
  position: relative;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.2);
}

.open-card-BG::after {
  content: '';
  position: absolute;
  top: 30px;
  left: 100%;
  width: 30px;
  height: 30px;
  background: url(../secure.svg) center no-repeat;
  background-size: contain;
}
<header>
  <img class="logo" src="logo.gif" />
</header>
<main>
  <div class="open-card-BG">main content</div>
</main>
<footer>
  I am footer
</footer>

5 个答案:

答案 0 :(得分:1)

这是因为浏览器在margin标记上应用了默认(用户代理样式表)body - 请参阅白色条纹margin: 0设置body时消失了。

演示如下:

&#13;
&#13;
body {
  margin: 0;
}

main {
    background-color: lightgrey;
    padding: 50px;
}
header {
    background-color: white;
    width: 100%;
    height: 50px;
}
.content-section {
    background-color: lightgrey;
    width: 100%;    
}
.logo {
    height: 20px;
    margin: 15px 5px;
    width: 116px;   
}
.open-card-BG {
    font-weight: 300;
    margin: 0 auto;
    width: 65%;
    padding: 20px 40px;
    object-fit: contain;
    max-width: 325px;
    min-height: 200px;
    border-radius: 5px;
    display: table;
    background-color: white;
    position: relative;
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.2);
}
.open-card-BG::after {
    content: '';
    position: absolute;
    top: 30px;
    left: 100%;
    width: 30px;
    height: 30px;
    background: url(../secure.svg) center no-repeat;
    background-size: contain;
}
&#13;
<header> 
    <img class="logo" src="logo.gif"/>
</header>
<main>
    <div class="open-card-BG">main content</div>
</main>
<footer>
    I am footer
</footer>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

在样式表中添加body{margin:0}。 默认情况下,body标记在大多数主流浏览器中都有8px的边距。

&#13;
&#13;
body{
  margin:0
}
main {
    	background-color: lightgrey;
    	padding: 50px;
    }
    header {
    	background-color: white;
    	width: 100%;
    	height: 50px;
    }
    .content-section {
    	background-color: lightgrey;
    	width: 100%;	
    }
    .logo {
    	height: 20px;
        margin: 15px 5px;
        width: 116px;	
    }
    .open-card-BG {
    	font-weight: 300;
    	margin: 0 auto;
    	width: 65%;
    	padding: 20px 40px;
    	object-fit: contain;
    	max-width: 325px;
    	min-height: 200px;
    	border-radius: 5px;
    	display: table;
    	background-color: white;
    	position: relative;
    	box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.2);
    }
    .open-card-BG::after {
    	content: '';
    	position: absolute;
    	top: 30px;
    	left: 100%;
    	width: 30px;
    	height: 30px;
    	background: url(../secure.svg) center no-repeat;
    	background-size: contain;
    }
&#13;
<header> 
    	<img class="logo" src="logo.gif"/>
    </header>
    <main>
    	<div class="open-card-BG">main content</div>
    </main>
    <footer>
    	I am footer
    </footer>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以尝试将main代码设为margin: 0 -10px,以解决您的问题。

See the fiddle

答案 3 :(得分:0)

您可以在css中添加此代码:

body {
    display: initial;
}

答案 4 :(得分:0)

尝试以下方法:

html, body {margin: 0;}