Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Enable bootstrap column backgrounds to bleed to edge of viewport

I'm trying to work out how to achieve the following in Bootstrap 3:

  1. I have a HTML page which is primarily based around bootstrap's fixed container grid.
  2. Half way down the page I want a row with columns of different sizes.
  3. I want the content (text / images) inside these columns to line up with the content inside the columns in the fixed container grid.
  4. I want the background colours of the left and right furthest columns to bleed right to the edge of the page.

It may help if I illustrate what I'm trying to achieve: Bootstrap column backgrounds bleeding to edge of viewport

Any help would be greatly appreciated!

Update: as requested here's some code examples of what I currently have: http://www.bootply.com/ZzOefJGRRq As you can see the text and columns in the fluid container are not lining up correctly.

like image 285
Betjamin Richards Avatar asked Jun 23 '16 07:06

Betjamin Richards


2 Answers

Bootstrap 4

Use position absolute before or after elements with width: 50vw

Codepen

HTML

<div class="container-fluid">
  <div class="row">
    <div class="col-lg-12">
      ...
    </div>
  </div>  
  <div class="row">
    <div class="col-lg-6 c-col-bg--red">
      ...
    </div>
    <div class="col-lg-6 c-col-bg--blue">
      ...
    </div>
  </div>
</div>

CSS

.container-fluid {
    max-width: 1000px;
}

@media (min-width: 992px) {
    div[class*="c-col-bg"] {
        position: relative;
    }

    div[class*="c-col-bg"]:after {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        z-index: -1;
        width: 50vw;
    }

    .c-col-bg--red:after {
        right: 0;
        background: red;
    }

    .c-col-bg--blue:after {
        left: 0;
        background: blue;
    }
}
like image 124
GDW Avatar answered Sep 17 '22 15:09

GDW


You can use :before elements and some classes

https://jsfiddle.net/ex3ntia/wa8myL9v/2/

.bg:before {position:absolute;left:0em; content:'';height:100%;width:800em;z-index:-1}

UPDATE

added media query for small devices https://jsfiddle.net/ex3ntia/wa8myL9v/3/

UPDATE 2

I have added the following line to fix the big horizontal scroll on chrome browsers.

body, html {overflow-x: hidden;margin: 0;padding: 0;}
like image 25
Diego Betto Avatar answered Sep 21 '22 15:09

Diego Betto