Let's assume I have a two column page: an article + image. And using flex I want it to be responsive in all screens, i.e. I want it always to keep its proportions.
How do I do it?
Here is the code:
HTML
<section class="example">
<h1>Lorem ipsum</h1>
<section class="example-sides">
<article class="example-text">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non rhoncus quam, ut varius risus.
Donec eu ullamcorper sem, eget sodales lacus. Sed iaculis eros lectus, fringilla sollicitudin nibh viverra
volutpat. Integer dolor est, maximus non nibh eget, cursus commodo lectus. In finibus sagittis lectus. Donec
nec mi dui. Praesent sit amet ullamcorper neque. Nulla id libero vitae dui fringilla volutpat. Suspendisse
lacinia rutrum sem eget fringilla.
Fusce porta orci dui, ac egestas nibh cursus vitae. Sed vel odio venenatis, elementum enim in, malesuada
eros. In dapibus ex vitae leo vestibulum, non lacinia massa varius. Nullam faucibus eros ut maximus dapibus.
Praesent vitae ante vulputate, sagittis lectus eu, egestas massa. Curabitur eget pulvinar nunc. Donec
faucibus libero sed nisi efficitur, sit amet efficitur diam aliquet. Fusce a ultricies neque. Maecenas
fringilla iaculis metus, efficitur faucibus lorem. Etiam nisi orci, hendrerit eu felis ac, interdum laoreet
nisi. Etiam sit amet fermentum odio. Nulla et vehicula purus. Sed lacinia pharetra augue.
</article>
<figure class="example-img">
<img src="https://pbs.twimg.com/profile_images/583353499808829441/PYs1EDZv.png" class="image">
<figcaption>
Lorem Ipsum
</figcaption>
</figure>
</section>
CSS
.image {
width: 300px;
height: 200px;
}
.example {
max-width: 800px;
margin: 0 auto;
font-size: 14px;
padding: 54px 0 0 0;
width: 100%;
position: relative;
}
.example-sides {
display: -webkit-flex;
display: flex;
display: -ms-flexbox;
-webkit-flex-direction: row;
flex-direction: row;
-webkit-align-items: flex-start;
align-items: flex-start;
line-height: 20px;
padding: 45px 0 55px 0;
}
.example-text {
box-sizing: border-box;
float: left;
padding-left: 0 !important;
}
.example-img {
box-sizing: border-box;
margin-left: 20px;
}