2014-03-03 151 views
1

我想知道如果可以在背景中使用两种不同的颜色,使用bootstrap在每一面都扩展100%。两种背景颜色(水平)

这里是我的意思截图,

enter image description here

红左侧,暗右侧,扩大100%,针对大屏幕。任何简单的解决方案?

+0

只是好奇为什么这将是必需的。 –

+0

@Paulie_D糟糕的设计师我猜?好的,问题是,红色区域将有1个盒子,而较暗,2个盒子。或“col-md-3”为例。所以我不用这个渐变效果会很好: –

+0

'内容'中的div可以有自己的bg颜色(红色/黑色)。身体可以有一个50%的渐变,但因为它会一直 –

回答

4

有几个方法可以做到这一点。最好的方法使用伪元素。您需要将一种颜色应用于<body>,将第二种颜色应用于创建的元素:after

HTML:

<body> 

    <main> 

     <p>This is my first paragraph.</p> 

     <p>This is my second paragraph.</p> 

     Page continues... 

CSS:

body { 
    background-color:rgb(155,155,155); 
} 

body:after { 
    top:0; 
    left:0; 
    width:40%; 
    height:100%; 
    position:absolute; 
    z-index:-1; 
    background-color:rgb(239,0,0); 
    content:""; 
} 

main { 
    width:80%; 
    margin:0 auto; 
    background-color:white; 
    min-height:400px; 
    padding:20px; 
} 

http://jsfiddle.net/Q66Xn/3/

这个答案产生干净的代码。缺点:有限的IE8支持,不支持IE7。如果您需要使用这两个浏览器,然后看看下一个选项:


给这个<body>一侧相同的背景颜色,然后而是采用:后创建一个伪元素,我们只需要创建一个真正的元素。

HTML:

<body> 

    <div id="bgleft"></div> 

    <main> 

     <p>This is my first paragraph.</p> 

     <p>This is my second paragraph.</p> 

     Page continues... 

CSS:

body { 
    background-color:rgb(155,155,155); 
} 

#bgleft { 
    top:0; 
    left:0; 
    width:40%; 
    height:100%; 
    position:absolute; 
    z-index:-1; 
    background-color:rgb(239,0,0); 
} 

main { 
    width:80%; 
    margin:0 auto; 
    background-color:white; 
    min-height:400px; 
    padding:20px; 
} 

http://jsfiddle.net/Q66Xn/4/

的产生完全相同的第一方法。优点是浏览器兼容性更高,缺点是代码更多一点。


最后,您可以使用附加到身体的渐变。这将使两种颜色的单一主体元素上,节省了额外的HTML,但它会通过一个讨厌的一套CSS的支持所有浏览器:

body { 
    background: rgb(239,0,0); /* Old browsers */ 
    /* IE9 SVG, needs conditional override of 'filter' to 'none' */ 
    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2VmMDAwMCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjQ0JSIgc3RvcC1jb2xvcj0iI2VmMDAwMCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjQ0JSIgc3RvcC1jb2xvcj0iIzliOWI5YiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM5YjliOWIiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); 
    background: -moz-linear-gradient(left, rgb(239,0,0) 0%, rgb(239,0,0) 44%, rgb(155,155,155) 44%, rgb(155,155,155) 100%); /* FF3.6+ */ 
    background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgb(239,0,0)), color-stop(44%,rgb(239,0,0)), color-stop(44%,rgb(155,155,155)), color-stop(100%,rgb(155,155,155))); /* Chrome,Safari4+ */ 
    background: -webkit-linear-gradient(left, rgb(239,0,0) 0%,rgb(239,0,0) 44%,rgb(155,155,155) 44%,rgb(155,155,155) 100%); /* Chrome10+,Safari5.1+ */ 
    background: -o-linear-gradient(left, rgb(239,0,0) 0%,rgb(239,0,0) 44%,rgb(155,155,155) 44%,rgb(155,155,155) 100%); /* Opera 11.10+ */ 
    background: -ms-linear-gradient(left, rgb(239,0,0) 0%,rgb(239,0,0) 44%,rgb(155,155,155) 44%,rgb(155,155,155) 100%); /* IE10+ */ 
    background: linear-gradient(to right, rgb(239,0,0) 0%,rgb(239,0,0) 44%,rgb(155,155,155) 44%,rgb(155,155,155) 100%); /* W3C */ 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ef0000', endColorstr='#9b9b9b',GradientType=1); /* IE6-8 */ 
} 

http://jsfiddle.net/Q66Xn/

缺点:复杂的CSS这是很难稍后轻松编辑。

2

您将很难仅使用引导程序来执行此操作。 使用线性渐变后,您可以达到您的效果:http://codepen.io/ollieRogers/pen/snjkw对于不支持渐变bgs的浏览器,这需要一个后备。

body{ 
    background: #49191a; /* Old browsers */ 
background: -moz-linear-gradient(left, #49191a 0%, #49191a 30%, #53cbf1 30%, #53cbf1 100%); /* FF3.6+ */ 
background: -webkit-gradient(linear, left top, right top, color-stop(0%,#49191a), color-stop(30%,#49191a), color-stop(30%,#53cbf1), color-stop(100%,#53cbf1)); /* Chrome,Safari4+ */ 
background: -webkit-linear-gradient(left, #49191a 0%,#49191a 30%,#53cbf1 30%,#53cbf1 100%); /* Chrome10+,Safari5.1+ */ 
background: -o-linear-gradient(left, #49191a 0%,#49191a 30%,#53cbf1 30%,#53cbf1 100%); /* Opera 11.10+ */ 
background: -ms-linear-gradient(left, #49191a 0%,#49191a 30%,#53cbf1 30%,#53cbf1 100%); /* IE10+ */ 
background: linear-gradient(to right, #49191a 0%,#49191a 30%,#53cbf1 30%,#53cbf1 100%); /* W3C */ 
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#49191a', endColorstr='#53cbf1',GradientType=1); /* IE6-9 */ 

}

2

你的问题与特定的bootstrap无关,如Ollie所述。

您的一些选项是使用渐变或条子(1px宽度/高度图像,您在哪个轴上重复该图像)。

我发现使用梯度发生器对于我需要启动的大多数新项目都能很好地工作。我附上了一个例子供您试用。

http://jsfiddle.net/wLw4r/4/

标记

<body> 
     <div class="container"> 
      <div class="row"> 
      <div class="col-md-12"> 
       <h2 style="color: white">Something</h2>  
      </div> 
      </div> 
      <div class="row "> 
      <div class="jumbotron"> 
       <h2>YOLO</h2> 
       <div class="row"> 
       <div class="col-md-4">Something</div> 
       <div class="col-md-3">Something</div> 
       <div class="col-md-3">Something</div> 
       <div class="col-md-2">Something</div> 
       </div> 
      </div> 
      </div> 
     </div> 
    </body> 

CSS

body { 

background: rgb(169,3,41); /* Old browsers */ 
background: -moz-linear-gradient(left, rgb(169,3,41) 0%, rgb(143,2,34) 26%, rgb(143,2,34) 26%, rgb(0,0,0) 26%); /* FF3.6+ */ 
background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgb(169,3,41)), color-stop(26%,rgb(143,2,34)), color-stop(26%,rgb(143,2,34)), color-stop(26%,rgb(0,0,0))); /* Chrome,Safari4+ */ 
background: -webkit-linear-gradient(left, rgb(169,3,41) 0%,rgb(143,2,34) 26%,rgb(143,2,34) 26%,rgb(0,0,0) 26%); /* Chrome10+,Safari5.1+ */ 
background: -o-linear-gradient(left, rgb(169,3,41) 0%,rgb(143,2,34) 26%,rgb(143,2,34) 26%,rgb(0,0,0) 26%); /* Opera 11.10+ */ 
background: -ms-linear-gradient(left, rgb(169,3,41) 0%,rgb(143,2,34) 26%,rgb(143,2,34) 26%,rgb(0,0,0) 26%); /* IE10+ */ 
background: linear-gradient(to right, rgb(169,3,41) 0%,rgb(143,2,34) 26%,rgb(143,2,34) 26%,rgb(0,0,0) 26%); /* W3C */ 
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#a90329', endColorstr='#000000',GradientType=1); /* IE6-9 */ 

}