I am using Twitter Bootstrap v3.3.7 framework for the desiging.
I am trying to create a layout just like this attached image.
Exact colors need not be necessary but the layout needs to be same along with arrows,markers,content etc. So far what I have tried to is below code:
HTML
<div class="implementation-section-dynamics">
<div class="abs-box-1">
<div class="box-content-1 box-content">
evaluate current business practices to identify which processes
</div>
<div class="vline-first vline"></div>
</div>
<div class="abs-box-2">
<div class="box-content-2">
ERP solution and identify proficiencies and skill gaps
</div>
<div class="vline-2"></div>
</div>
<div class="abs-box-3">
<div class="box-content-3">
Existing data will need to be converted to the new system
</div>
<div class="vline-3"></div>
</div>
<div class="abs-box-4">
<div class="box-content-4">
project team practice with a test database populated
</div>
<div class="vline-4"></div>
</div>
<div class="abs-box-5">
<div class="box-content-5">
System testing post-go-live.
</div>
<div class="vline-5"></div>
</div>
<img src="img/implementation.svg" alt="" width="60%" class="relative">
</div>
CSS
.abs-box-1 {
position: absolute;
bottom: 280px;
left: 20%;
}
.box-content {
color: white;
width: 120px;
}
.vline {
border-left: 2px dotted white;
height: 50px;
position:relative !important;
width: 10px !important;
margin-left: 50%;
}
.vline-first {
left: 26%;
bottom: -18px;
}
.box-content-1 {
margin-left: 21%;
bottom: 50px;
}
.box-content-2 {
width: 100px;
color: white;
position: absolute;
left: 32%;
bottom: -110px;
}
.vline-2 {
border-left: 2px dotted white;
height: 50px;
position: absolute !important;
width: 10px !important;
margin-left: 36%;
bottom: 50px;
}
.box-content-3 {
width: 100px;
color: white;
position: absolute;
left: 44%;
top: -220px;
}
.vline-3 {
border-left: 2px dotted white;
height: 50px;
position: absolute !important;
width: 10px !important;
margin-left: 48%;
top: -58px;
}
.box-content-4 {
width: 100px;
color: white;
position: absolute;
left: 54%;
bottom: -110px;
}
.vline-4 {
border-left: 2px dotted white;
height: 50px;
position: absolute !important;
width: 10px !important;
margin-left: 58%;
bottom: 49px;
}
.box-content-5 {
width: 100px;
color: white;
position: absolute;
left: 65%;
top: -167px;
}
.vline-5 {
border-left: 2px dotted white;
height: 50px;
position: absolute !important;
width: 10px !important;
left: 69%;
top: -60px;
}
.implementation-section-dynamics {
position: relative;
height: 260px !important;
margin-bottom: 100px !important;
margin-top: 250px;
}
With above code, the result I achieved is as below image:
The issue is that it doesn’t look accurate and Its not responsive across devices. Not only on mobile but it looks bad even on different size laptops and desktops.
Can anyone please help in this how to achieve this kind of layout in responsive way, with/without twitter bootstrap and I am open to any jquery plugin as well for this, If that helps…
3
Answers
i think you must use bootstrap class in your code for become a responsive
https://getbootstrap.com/docs/4.1/layout/grid/
check this and get some idea
If you need to make it responsive, the usage of the bootstrap 3.3.4 classes for grid layouts are needed. The code example you show, does not use any bootstrap classes, as far as I can tell.
The first step would be to start with a grid completely based on bootstrap. Then modifying the appearance. So the arrow elements and its labels look like you already did with the
.vline-
classes together with the bootstrap classes.Regarding responsive behavior, you need to define what should happen on smartphones and tablets: should the blocks appear vertical with arrows turning downwards?
This is not clarified in your question. The suggested approach with bootstrap grid would break the elements vertically, if that is what you intend.
for the fun and from my comment awaiting feedback, also i won’t be here next days.
Here is a possible approach via flex & grid and mediaquerie without bs3.
see if you can do something out of it (that’s partially a fork from another snippet of mine) :
snippet to run full page, break point set at 860px of width avalaible.
codepen to play with : https://codepen.io/gc-nomade/pen/zYreJBQ