2背景颜色 - 仅限CSS

时间:2014-11-04 11:57:07

标签: html css background

如何将2种背景颜色添加到容器div中。我见过一些有效的解决方案,但每种颜色只有50%的高度。但是我需要一个具有设定高度(见图)。

我目前的解决方案是背景1为1x260px背景图像,背景2为背景颜色。然而,当您打开带有背景颜色2闪烁的页面时,这将离开您,直到后台1加载完毕,我想避免这种闪光。这是页面的结构:

Page Structure

提前感谢您的帮助!

更新

我无法在我的上下文中使任何解决方案正常工作,但最终我自己解决了(我现在意识到我的简短可能会略微不完整)。

这是我的JSFiddle

以下是代码:



html, body {
    margin:0;
    padding:0;
}

.other-content {
    background-color:lightblue;
    width:100%;
    height:20px;
}

.page-content {
    width:100%;
    background-color:lightgray;
}

.container {
    width:600px;
    height:700px; /* This height is flexible and can change to whatever value you want */
    background-color:gray;
    margin-top:-50px;
    margin-left:auto;
    margin-right:auto;
}

.white-bg {
    background-color:dodgerblue;
    height:50px;
    width:100%;
}

<div class="other-content"></div>
<div class="page-content">
    <div class="white-bg"></div>
    <div class="container"></div>
</div>
<div class="other-content"></div>
&#13;
&#13;
&#13;

5 个答案:

答案 0 :(得分:1)

试试这个

background: rgba(47,102,179,1);/* Old Browsers */
background: -moz-linear-gradient(top, rgba(47,102,179,1) 0%, rgba(255,255,255,1) 260px, rgba(255,255,255,1) 100%); /* FF3.6+ */
background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(47,102,179,1)), color-stop(260px, rgba(255,255,255,1)), color-stop(100%, rgba(255,255,255,1)));/* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(47,102,179,1) 0%, rgba(255,255,255,1) 260px, rgba(255,255,255,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(47,102,179,1) 0%, rgba(255,255,255,1) 260px, rgba(255,255,255,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(47,102,179,1) 0%, rgba(255,255,255,1) 260px, rgba(255,255,255,1) 100%); /* IE 10+ */
background: linear-gradient(to bottom, rgba(47,102,179,1) 0%, rgba(255,255,255,1) 260px, rgba(255,255,255,1) 100%);/* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2f66b3', endColorstr='#ffffff', GradientType=0 );/* IE6-9 */

它的渐变,如果您不喜欢它,请将0%更改为100%或使用参数

答案 1 :(得分:1)

您可以在页面上添加::after之类的伪元素。

&#13;
&#13;
* { margin: 0; padding: 0; }    

body {
  background: #00AEEF;
}

body:after {
  background: #0F75BC;
  content: "";
  display: block;
  height: 50px;
  left: 0;
  top: 0;
  width: 100%;
}
&#13;
&#13;
&#13;

答案 2 :(得分:1)

您可以使用CSS颜色渐变。可以为第一个波段以像素为单位指定色标,然后为其余波段指定100%。这样您就不必根据容器计算自动高度。

以下是基于您的用例的示例。我把60px作为第一个乐队的高度,使它整齐地放在下面的片段中。您可以根据需要将其设为260px。 (单击整页以获得更好的视图)。

&#13;
&#13;
html, body {
    height: 100%;
}
.container {
    width: 70%;
    margin: auto;
    height: 100%;
    background-image:
        linear-gradient(
          to bottom, 
          #0f75bc,         /* Start with color of top band  */
          #0f75bc 60px,    /* Top-band color stops at 260px */
          #00aeef 60px,    /* Bottom-band color starts at 260px */
          #00aeef 100%     /* Bottom-band color continues to 100% i.e. remaining height */
        );

}
&#13;
<div class="container"></div>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

习惯了

CSS

.nice{
    
    width:500px;
    height:500px;
    margin:auto;
    position:relative;
    background:red;
    color:white;
    z-index:1;
    

}
.nice:after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:0;
    bottom:70%;
    background:green;
    z-index:-1;
}
<div class="nice">helo helo helo </div>

答案 4 :(得分:0)

在这里,我只使用了css和背景颜色。

工作JsFiddle

HTML:

<div class="part-b">
   <div class="background"></div>
   <div class="container">
      <div class="row">
         Content
      </div>
   </div>
</div>

CSS:

.container {
   width: 960px !important;
   position: relative;
}

.part-b {
   background: yellow;
   overflow: hidden;
   position: relative;
 }

.part-b .background {
   width: 100%;
   height: 100px;
   background-color: green;
}

.row {
   height: 50px;
}