How to align 3 boxes in twitter bootstrap horizontally? - css

I need to insert 3 boxes next to each other in wordpress theme. I'm using wp-bootstrap theme.
What I did I create a page and I named it "offers", and I wrote the following code
<div class="col-xs-4 text-center offer-box">
<h1>Offer 1</h1>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. </p>
</div>
<div class="col-xs-4 text-center offer-box">
<h1>Offer 2</h1>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. </p>
</div>
<div class="col-xs-4 text-center offer-box">
<h1>Offer 3</h1>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. </p>
</div>
in css file, I wrote
.offer-box {
background: #f4e759;
height: 300px;
border-radius: 10px;
}
.offer-box h1 {
color: #080808;
}
.offer-box p {
color: #080808;
font-size: 1.2em;
}
It works but the boxes appear without margins. I need to make it with margins left and right for each box.
It should appear like that image exactly

First you should wrap your columns into a row. <div class="row"></div> You should insert another <div> in yor columns for styling purposes because
Columns create gutters (gaps between column content) via padding. That padding is offset in rows for the first and last column via negative margin on .rows.
Try this
<div class="row">
<div class="col-xs-4">
<div class="text-center offer-box">
<h1>Offer 1</h1>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum
tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas
semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien
ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi.
Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac
dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus,
tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi,
tincidunt quis, accumsan porttitor, facilisis luctus, metus</p>
</div>
</div>
<div class="col-xs-4">
<div class="text-center offer-box">
<h1>Offer 2</h1>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum
tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas
semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien
ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi.
Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac
dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus,
tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi,
tincidunt quis, accumsan porttitor, facilisis luctus, metus</p>
</div>
</div>
<div class="col-xs-4">
<div class="text-center offer-box">
<h1>Offer 3</h1>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum
tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas
semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien
ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi.
Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac
dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus,
tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi,
tincidunt quis, accumsan porttitor, facilisis luctus, metus</p>
</div>
</div>
</div>
Check this link too for more examples Bootstrap grid system

You need to set the appropriate variables in your style.less file. I believe the ones you need to look at are
#fluidGridColumnWidth
and
#fluidGridGutterWidth

You didn't follow Bootstrap grid syntax. Your .col-* elements should be inside a .row, which in turn should be in a .container. Apply correct nesting and you'll be fine.

Please check following:
Rows must be placed within a .container (fixed-width) or .container-fluid (full-width) for proper alignment and padding.
Use rows to create horizontal groups of columns.
Content should be placed within columns, and only columns may be immediate children of rows.
Columns create gutters (gaps between column content) via padding. That padding is offset in rows for the first and last column via negative margin on .rows.
read

Related

CSS - Allow image to overflow container but not show a horizontal scrollbar?

I am using the Bootstrap framework and I am absolutely positioning an image in the right column. The idea is to have the image be cut off on the right side on smaller screen sizes and on larger screen sizes the entire image would be visible. This is working correctly except for that on smaller screen sizes there is a horizontal scrollbar due to the overflow. Is it possible to accomplish this without having a horizontal scrollbar while at the same time not cutting the image off where it overflows?
div {
position:relative;
}
.image-container {
position:absolute;
top:50%;
right:-200px;
transform:translateY(-50%);
}
<link href="https://cdn.jsdelivr.net/npm/bootstrap#5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container">
<div class="row">
<div class="col-md-6">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eu venenatis dolor. Duis ornare orci id nulla faucibus, vitae tristique lectus fringilla. Phasellus malesuada sem sit amet nisl maximus, sed accumsan ante suscipit. In aliquam tempor lorem eu aliquam. Donec auctor ut felis tincidunt malesuada. Mauris ut velit a quam tempus ultricies. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur malesuada velit libero, at venenatis metus ultricies a. Cras sit amet blandit ante. Nullam malesuada dignissim mauris, pretium lobortis tellus pellentesque sed.</p>
<p>Proin tristique non mauris eu varius. Etiam dictum mattis eros, sed euismod nisl pulvinar vitae. Suspendisse potenti. Aenean at dui lorem. Donec faucibus arcu sit amet turpis commodo accumsan eget vel arcu. Nulla maximus, lectus eu lobortis laoreet, turpis arcu auctor turpis, a aliquet magna ante at ipsum. Vestibulum eu aliquet augue. Curabitur feugiat metus vel euismod bibendum. Duis non cursus sapien. Suspendisse eget tortor ac velit tristique iaculis at eu lectus. Etiam dapibus justo sed placerat eleifend. Curabitur tincidunt, dui non suscipit tincidunt, est libero faucibus lacus, et fringilla diam urna sit amet dolor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus porttitor erat vel facilisis interdum.</p>
</div>
<div class="d-none d-md-block col-md-6">
<div class="image-container">
<img src="https://via.placeholder.com/600x300" />
</div>
</div>
</div>
</div>
add class img-fluid to your image. That means width: 100% & height: auto. This class is given to the tags like image and video to be responsive.
div {
position: relative;
}
.image-container {
position: absolute;
top: 50%;
right: -200px;
transform: translateY(-50%);
}
<link href="https://cdn.jsdelivr.net/npm/bootstrap#5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
<div class="row">
<div class="col-md-6">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eu venenatis dolor. Duis ornare orci id nulla faucibus, vitae tristique lectus fringilla. Phasellus malesuada sem sit amet nisl maximus, sed accumsan ante suscipit. In aliquam tempor lorem
eu aliquam. Donec auctor ut felis tincidunt malesuada. Mauris ut velit a quam tempus ultricies. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur malesuada velit libero, at venenatis metus
ultricies a. Cras sit amet blandit ante. Nullam malesuada dignissim mauris, pretium lobortis tellus pellentesque sed.</p>
<p>Proin tristique non mauris eu varius. Etiam dictum mattis eros, sed euismod nisl pulvinar vitae. Suspendisse potenti. Aenean at dui lorem. Donec faucibus arcu sit amet turpis commodo accumsan eget vel arcu. Nulla maximus, lectus eu lobortis laoreet,
turpis arcu auctor turpis, a aliquet magna ante at ipsum. Vestibulum eu aliquet augue. Curabitur feugiat metus vel euismod bibendum. Duis non cursus sapien. Suspendisse eget tortor ac velit tristique iaculis at eu lectus. Etiam dapibus justo sed
placerat eleifend. Curabitur tincidunt, dui non suscipit tincidunt, est libero faucibus lacus, et fringilla diam urna sit amet dolor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus porttitor erat
vel facilisis interdum.</p>
</div>
<div class="d-none d-md-block col-md-6">
<div class="image-container">
<img src="https://via.placeholder.com/600x300" class="img-fluid" />
</div>
</div>
</div>
</div>

How can I make the flex box work with a vertical flow?

I like to accomplish the following horizontal layout for the web, where the user will use horizontal scrolling instead of vertical scrolling.
The source code looks similar to the following:
<html>
<head><title>Sample</title></head>
<body>
<main>
<section class="cover"></section>
<section>
<h1>Title</h1>
<div class="content">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc bibendum blandit ex, eget facilisis mauris ullamcorper eget. Aliquam bibendum venenatis augue, eget auctor elit auctor vel. Mauris egestas congue tellus at molestie. Aliquam quis placerat massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam eu dignissim ligula. Aliquam erat volutpat. Pellentesque sed ipsum sit amet sem dapibus tincidunt id a neque. Suspendisse at ipsum eu elit laoreet semper ut placerat eros. </p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc bibendum blandit ex, eget facilisis mauris ullamcorper eget. Aliquam bibendum venenatis augue, eget auctor elit auctor vel. Mauris egestas congue tellus at molestie. Aliquam quis placerat massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam eu dignissim ligula. Aliquam erat volutpat. Pellentesque sed ipsum sit amet sem dapibus tincidunt id a neque. Suspendisse at ipsum eu elit laoreet semper ut placerat eros. </p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc bibendum blandit ex, eget facilisis mauris ullamcorper eget. Aliquam bibendum venenatis augue, eget auctor elit auctor vel. Mauris egestas congue tellus at molestie. Aliquam quis placerat massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam eu dignissim ligula. Aliquam erat volutpat. Pellentesque sed ipsum sit amet sem dapibus tincidunt id a neque. Suspendisse at ipsum eu elit laoreet semper ut placerat eros. </p>
</div>
</section>
<section>
<h2>Page2</h2>
<img src="someimage.jpg" alt="Some Title">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc bibendum blandit ex, eget facilisis mauris ullamcorper eget. Aliquam bibendum venenatis augue, eget auctor elit auctor vel. Mauris egestas congue tellus at molestie. Aliquam quis placerat massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam eu dignissim ligula. Aliquam erat volutpat. Pellentesque sed ipsum sit amet sem dapibus tincidunt id a neque. Suspendisse at ipsum eu elit laoreet semper ut placerat eros. </p>
</section>
</main>
</body>
</html>
I thought it would be easy by settings main to display : flex, and since I don't know how many columns there will be I will only set section p column-width : 600px. I hoped the container of the section would get as much width as it needed, but it doesn't work. Instead of the container getting larger depending on the vertical flow content, it remains small and because it will get under the 600px there will be only one column and the rest of the content flowing down.
I like the container to user as much columns needed to present the content and it's parent container to grow in width as much is needed to hold the content.
You can set fixed height on Flex-container and use flex-direction: column with flex-wrap: wrap
main {
display: flex;
height: 400px;
flex-direction: column;
flex-wrap: wrap;
}
.content {
display: flex;
}
.content p {
flex: 1;
margin: 20px;
}
<main>
<section class="cover"></section>
<section>
<h1>Title</h1>
<div class="content">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc bibendum blandit ex, eget facilisis mauris ullamcorper eget. Aliquam bibendum venenatis augue, eget auctor elit auctor vel. Mauris egestas congue tellus at molestie. Aliquam quis placerat
massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam eu dignissim ligula. Aliquam erat volutpat. Pellentesque sed ipsum sit amet sem dapibus tincidunt id a neque. Suspendisse at ipsum eu elit
laoreet semper ut placerat eros.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc bibendum blandit ex, eget facilisis mauris ullamcorper eget. Aliquam bibendum venenatis augue, eget auctor elit auctor vel. Mauris egestas congue tellus at molestie. Aliquam quis placerat
massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam eu dignissim ligula. Aliquam erat volutpat. Pellentesque sed ipsum sit amet sem dapibus tincidunt id a neque. Suspendisse at ipsum eu elit
laoreet semper ut placerat eros.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc bibendum blandit ex, eget facilisis mauris ullamcorper eget. Aliquam bibendum venenatis augue, eget auctor elit auctor vel. Mauris egestas congue tellus at molestie. Aliquam quis placerat
massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam eu dignissim ligula. Aliquam erat volutpat. Pellentesque sed ipsum sit amet sem dapibus tincidunt id a neque. Suspendisse at ipsum eu elit
laoreet semper ut placerat eros.</p>
</div>
</section>
<section>
<h2>Page2</h2>
<div class="content">
<img src="http://placehold.it/350x350">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc bibendum blandit ex, eget facilisis mauris ullamcorper eget. Aliquam bibendum venenatis augue, eget auctor elit auctor vel. Mauris egestas congue tellus at molestie. Aliquam quis placerat
massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam eu dignissim ligula. Aliquam erat volutpat. Pellentesque sed ipsum sit amet sem dapibus tincidunt id a neque. Suspendisse at ipsum eu elit
laoreet semper ut placerat eros.</p>
</div>
</section>
</main>

Create 2 column flex box with minimum height

I have the following HTML layout:
<div class="parent">
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
</div>
The number of children and their heights can vary. Is it possible to style the parent element to divide the children into two columns, such that the parent takes the minimum possible height?
.parent {
display: flex;
flex-flow: column wrap;
margin: 0 -5px;
width: 500px;
height: 1500px; /* I want to remove this */
}
.child {
margin: 0 5px 10px;
width: 50%;
background: #f2f2f2;
border: 1px #ccc solid;
padding: 20px;
}
<div class="parent">
<div class="child">
<h3>Heading 1</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed et nunc gravida, bibendum magna ut, rutrum dui. Vivamus pulvinar, tellus at tempor imperdiet, elit lectus eleifend dui, in molestie nisi mauris at sem. Nulla varius sapien ipsum, sed semper
nisl lacinia vel. Maecenas aliquet, ante eu feugiat iaculis, massa diam tincidunt est, id ornare nisi massa nec arcu. Nunc porta leo at diam aliquam eleifend. Cras vel diam dignissim, egestas lacus in, egestas ipsum. Aliquam ultricies justo et magna
dignissim auctor.</p>
</div>
<div class="child">
<h3>Heading 2</h3>
<p>Nam scelerisque hendrerit efficitur. Fusce quam mi, viverra ut enim sit amet, viverra dignissim tortor. Quisque laoreet eros sit amet ex rutrum pharetra. </p>
</div>
<div class="child">
<h3>Heading 3</h3>
<p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi tortor orci, hendrerit vel diam et, rhoncus pellentesque quam. Donec nec porttitor urna. Nam interdum a tellus in bibendum. Etiam ac ultricies elit.
</p>
</div>
<div class="child">
<h3>Heading 4</h3>
<p>Morbi quis tortor interdum, ornare nibh interdum, maximus quam. Praesent elit urna, sodales sed mollis in, euismod quis ex. Maecenas nec tellus eu lectus varius placerat sed id eros. Donec imperdiet vulputate neque at varius. Sed nunc mauris, pretium
pretium fringilla ut, consequat sit amet ligula. Aliquam velit odio, pharetra at tincidunt ut, interdum ut augue. Mauris ultrices, mi et congue accumsan, tellus nisl semper justo, ut consectetur purus tellus ut ipsum. Suspendisse a neque eros. Suspendisse
sit amet lacus id tortor porta lobortis. Nam tincidunt, sem id porta congue, lectus dui iaculis enim, ac tristique erat mauris et mauris. Praesent neque mi, semper ornare ullamcorper eget, commodo a mauris. Curabitur sed commodo diam, a ullamcorper
quam.</p>
</div>
<div class="child">
<h3>Heading 5</h3>
<p>Sed sit amet sem metus. Pellentesque id rhoncus felis, nec condimentum ligula. Aliquam porta erat sapien, ac efficitur nisi blandit a. Nulla congue urna ac nisi tempor ultrices. Nunc eget risus ut tortor iaculis facilisis.</p>
</div>
<div class="child">
<h3>Heading 6</h3>
<p>Fusce malesuada et magna eu dapibus. Vivamus aliquam venenatis libero, quis lobortis ante luctus nec. Nullam vel lectus justo. Etiam diam turpis, auctor in finibus eget, eleifend vel ex. Curabitur sit amet neque ex. Nulla dapibus placerat tortor,
ac viverra arcu finibus mattis. Donec vel sem urna. Phasellus pretium ultricies ipsum, eu mollis magna rutrum sed. Mauris varius accumsan diam, a aliquet nibh tincidunt ac. Proin lobortis nunc eget enim pharetra, eu lobortis nisi placerat. Aliquam
enim tortor, viverra non posuere ut, dapibus sed elit.</p>
</div>
<div class="child">
<h3>Heading 7</h3>
<p>Sed molestie congue lacinia. Proin cursus laoreet magna, a pharetra odio consequat et. Donec et ullamcorper massa. Fusce eu dapibus felis. Cras condimentum purus et eros finibus aliquam. In hac habitasse platea dictumst. Sed sit amet sem metus. Pellentesque
id rhoncus felis, nec condimentum ligula. Aliquam porta erat sapien, ac efficitur nisi blandit a. Nulla congue urna ac nisi tempor ultrices. Nunc eget risus ut tortor iaculis facilisis.</p>
</div>
</div>
http://codepen.io/anon/pen/NqLYjE
In the above example, I was able to achieve the two column layout by setting height for the parent element. I want to do it without setting the height. Is it possible?
Setting flex-direction to row is ugly, as there will be whitespace between two vertical child elements when the height of children on a single row are unequal.
I believe you need the column propertie and not the flex model.
forked pen
.parent {
-moz-column-count:2;
column-count:2;
-moz-column-gap:0;
column-gap:0;
margin: 0 -5px;
width: 500px;
}
.child {
margin: 0 5px 10px;
background: #f2f2f2;
border: 1px #ccc solid;
padding: 20px;
}
<div class="parent">
<div class="child">
<h3>Heading 1</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed et nunc gravida, bibendum magna ut, rutrum dui. Vivamus pulvinar, tellus at tempor imperdiet, elit lectus eleifend dui, in molestie nisi mauris at sem. Nulla varius sapien ipsum, sed semper
nisl lacinia vel. Maecenas aliquet, ante eu feugiat iaculis, massa diam tincidunt est, id ornare nisi massa nec arcu. Nunc porta leo at diam aliquam eleifend. Cras vel diam dignissim, egestas lacus in, egestas ipsum. Aliquam ultricies justo et magna
dignissim auctor.</p>
</div>
<div class="child">
<h3>Heading 2</h3>
<p>Nam scelerisque hendrerit efficitur. Fusce quam mi, viverra ut enim sit amet, viverra dignissim tortor. Quisque laoreet eros sit amet ex rutrum pharetra. </p>
</div>
<div class="child">
<h3>Heading 3</h3>
<p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi tortor orci, hendrerit vel diam et, rhoncus pellentesque quam. Donec nec porttitor urna. Nam interdum a tellus in bibendum. Etiam ac ultricies elit.
</p>
</div>
<div class="child">
<h3>Heading 4</h3>
<p>Morbi quis tortor interdum, ornare nibh interdum, maximus quam. Praesent elit urna, sodales sed mollis in, euismod quis ex. Maecenas nec tellus eu lectus varius placerat sed id eros. Donec imperdiet vulputate neque at varius. Sed nunc mauris, pretium
pretium fringilla ut, consequat sit amet ligula. Aliquam velit odio, pharetra at tincidunt ut, interdum ut augue. Mauris ultrices, mi et congue accumsan, tellus nisl semper justo, ut consectetur purus tellus ut ipsum. Suspendisse a neque eros. Suspendisse
sit amet lacus id tortor porta lobortis. Nam tincidunt, sem id porta congue, lectus dui iaculis enim, ac tristique erat mauris et mauris. Praesent neque mi, semper ornare ullamcorper eget, commodo a mauris. Curabitur sed commodo diam, a ullamcorper
quam.</p>
</div>
<div class="child">
<h3>Heading 5</h3>
<p>Sed sit amet sem metus. Pellentesque id rhoncus felis, nec condimentum ligula. Aliquam porta erat sapien, ac efficitur nisi blandit a. Nulla congue urna ac nisi tempor ultrices. Nunc eget risus ut tortor iaculis facilisis.</p>
</div>
<div class="child">
<h3>Heading 6</h3>
<p>Fusce malesuada et magna eu dapibus. Vivamus aliquam venenatis libero, quis lobortis ante luctus nec. Nullam vel lectus justo. Etiam diam turpis, auctor in finibus eget, eleifend vel ex. Curabitur sit amet neque ex. Nulla dapibus placerat tortor,
ac viverra arcu finibus mattis. Donec vel sem urna. Phasellus pretium ultricies ipsum, eu mollis magna rutrum sed. Mauris varius accumsan diam, a aliquet nibh tincidunt ac. Proin lobortis nunc eget enim pharetra, eu lobortis nisi placerat. Aliquam
enim tortor, viverra non posuere ut, dapibus sed elit.</p>
</div>
<div class="child">
<h3>Heading 7</h3>
<p>Sed molestie congue lacinia. Proin cursus laoreet magna, a pharetra odio consequat et. Donec et ullamcorper massa. Fusce eu dapibus felis. Cras condimentum purus et eros finibus aliquam. In hac habitasse platea dictumst. Sed sit amet sem metus. Pellentesque
id rhoncus felis, nec condimentum ligula. Aliquam porta erat sapien, ac efficitur nisi blandit a. Nulla congue urna ac nisi tempor ultrices. Nunc eget risus ut tortor iaculis facilisis.</p>
</div>
</div>

Bootstrap 3 - Re-ordering 2 column layout for mobile (content not vertically aligned)

I've created a quick demo of the problem I'm having here: http://www.bootply.com/Nb2PUnwINT
The behaviour for small screens and below is perfect here, but on medium/large screens the yellow column I want to be along side the green one.
Is this possible? Hopefully I've provided enough detail here.
Please check with the below code
<div class="row">
<div class="col-sm-12 col-md-9 col-lg-9">
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12" style="background-color:green">
Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque porta felis a ex egestas ultrices. Duis vel lorem nulla. Vestibulum eget risus nec felis hendrerit aliquet. Sed et tempus tellus. Curabitur congue magna lacus, facilisis rhoncus neque finibus hendrerit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
Nunc sed viverra nunc. Ut venenatis dapibus odio vel viverra. Nullam sem justo, scelerisque et fringilla quis, ullamcorper id diam. Suspendisse vitae justo porta, molestie diam vitae, pulvinar nunc. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam ut felis lacus. Etiam quis pretium dolor. Nulla eu rutrum erat. Ut hendrerit et diam ac eleifend. Suspendisse mollis elit lorem, ultrices fermentum erat convallis mattis. Duis congue mattis magna non elementum. Ut ultricies vitae ante sit amet tempor.
</div>
</div>
</div>
<div class="col-sm-12 col-md-3 col-lg-3">
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12" style="background-color:red">
Lorem ipsum dolor sit a
</div>
</div>
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12" style="background-color:yellow">
met, consectetur adipiscing elit. Vestibulum eget odio ut lectus dignissim varius. Praesent volutpat, dui quis ultricies pellentesque, sem ipsum volutpat libero, in fermentum leo nisl a orci. Praesent gravida elit ac felis interdum, at elementum lacus tristique. Curabitur dignissim metus tristique vehicula iaculis. Quisque mattis tincidunt tellus, et aliquet arcu aliquet ut. Vestibulum vel metus nec ipsum sagittis aliquet in sit amet erat. Praesent pellentesque sit amet massa sed lobortis. Proin blandit consectetur egestas. Nulla cursus tortor turpis, nec tempor metus viverra et. Quisque id auctor arcu, ac posuere eros. Curabitur ac tincidunt purus. Integer scelerisque quis ex vitae volutpat. Donec non pretium turpis.
Duis dolor felis, convallis non venenatis ut, vulputate in ipsum. Etiam nisi tortor, finibus sit amet tellus non, bibendum sollicitudin enim. Proin in mollis neque, id faucibus felis. Proin cursus tristique mollis. Proin eget aliquam orci. Suspendisse egestas consequat magna quis ornare. Duis maximus dui sit amet neque fermentum aliquam.
</div>
</div>
</div>
</div>

Restrict div width to single child element's width

I'd like to use image captions and since the figure tag is not supported in IE8 or below, I thought a <div> containing <img> and a caption would help out.
However, when my caption is wider than my <img>, the containing <div> width expands to the caption width. This causes ugly whitespace next to the <img>. Instead I'd like the caption to break over lines.
I could manually set the <div> width equal to the <img> width. Or manually insert a <br /> in the caption where needed. But I was hoping there would be a more elegant solution.
For an example, please see this jsfiddle
Working Fiddle: http://jsfiddle.net/uNDRx/3/
CSS:
div.rimg {
display:table;
width:1px;
float:right;
border:1px solid #aaa;
border-radius:5px;
overflow:hidden;
margin:10px;
}
div.rimg img {
}
div.rimg span {
margin:10px;
}
HTML:
<body>
<h2>Pellentesque habitant morbi tristique senectus et netus</h2>
<div class="wrapper">
<div class='rimg'>
<img src='https://dl.dropboxusercontent.com/u/116120595/tree_1_200_200.jpg' alt=''><span>What an exceptionally beautiful tree</span>
</div>et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus</div>
</div>
</body>

Resources