How can i create a custom column in css or bootstrap

Viewed 1196

I usually work with the bootstrap columns and grids, but just today i tried to do something quite different and realised I wasn't so good with bootstrap

i'm trying to achieve a column like in the picture below one full height by the left and 2 half height by the right

enter image description here

<div class="container-fluid col-md-12">
    <div class="col-md-6">
    </div>
    <div class="col-md-6">
    </div>
</div>

so i have something like in the code above, we all know that gives us two equal height and width columns side by side, but how can i manipulate this to give what is desired in the image?

NB: I'm going to put images in all three columns

4 Answers

Just add two block divs in your second col-md-6 div - the rest is css

<div class="container-fluid col-md-12">
    <div class="col-md-6">
    </div>
    <div class="col-md-6">
        <div class="block">
        </div>
        <div class="block">
        </div>
    </div>
</div>

Check out fiddle here

If you are using Bootstrap4, you need to add a .row div then use the flexbox utility classes on the column.

.col-sm-6 {
  border: 1px solid grey;
}

.col-sm-6 div {
  border: 1px solid red;
  flex: 1;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container">
  <div class="row">
    <div class="col-sm-6">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Quia, quisquam. In unde sint dolor. Suscipit accusantium accusamus nemo minima Lorem ipsum dolor sit amet consectetur adipisicing elit. Optio quam ipsam labore neque maxime reiciendis iste,
      commodi aut cumque perferendis quaerat sed nisi, minus vero doloribus, quis iure? Quasi commodi nisi quos dicta pariatur voluptatem delectus facere tempore expedita blanditiis ducimus eaque iste reprehenderit voluptatum, natus reiciendis suscipit
      tempora voluptas?
    </div>
    <div class="col-sm-6 d-flex flex-column">
      <div>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Impedit, deleniti?
      </div>
      <div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum, inventore.
      </div>
    </div>
  </div>
</div>

I'd suggest splitting the second column into another two sections.

.container-fluid {
  background: #7F3300;
  padding: 35px;
}

div {
  border: 1px solid black;
  padding: 0;
}

.column-1 {
  background: #808080;
  padding: 35px;
}

.column-2 {
  background: #007F7F;
  padding: 35px;
}

.column-3 {
  background: #FF7F7F;
  padding: 35px;
}

img {
  width: 100%;
}
<link rel="stylesheet" type="text/css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css">

<div class="container-fluid col-md-12">
  <div class="row">
    <div class="col-6 column-1">

      <img src="//via.placeholder.com/350x150">

    </div>
    <div class="col-6">

      <div class="col-md-12 column-2">
        <img src="//via.placeholder.com/350x150">
      </div>
      <div class="col-md-12 column-3"> <img src="//via.placeholder.com/350x150">
      </div>

    </div>
  </div>
</div>

Edit: I've added in some images to show you how you could do the same.

try it with css

.container-fluid .col-md-12{
       width:100%;
       height:100px;
       background-color:brown;
       background-border:none;
}
.col-md-6{
       width:40px;
       height:50px;
       background-color:green;
       background-border:none;
       float:right;
}
.col-md-6.1{
      background-color:green;
}
.col-md-6.2{
      background-color:pink;
}
.col-md-7{
       width:80px;
       height:100px;
       background-border:none;
       float:left; 
       padding-right:30px;
}

Edit your HTML code like this

<div class="container-fluid col-md-12">
    <div class="col-md-7">
    </div>
    <div class="col-md-6 col-md-6.1">
    </div>
    <div class="col-md-6 col-md-6.2">
    </div>
</div>
Related