La mejor forma de hacer eso es con flexbox. Un ejemplo podria ser este:
Codigo HTML:
<main>
<h1>Welcome to FlexWorld</h1>
<p>Flexbox is an incredible technology that allows us align and resize our boxes in new and fantastic ways, never before seen</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illo asperiores provident laudantium, ea commodi, rerum nam veniam exercitationem dolor fugit quibusdam similique earum ipsam fugiat consectetur ab ratione illum harum quaerat, voluptates architecto inventore praesentium totam impedit. Illum labore ex hic, aspernatur sunt assumenda officiis praesentium maiores cumque quidem accusamus recusandae nesciunt, fugit, reiciendis non architecto quibusdam. Dignissimos reprehenderit animi, tempore dolore dolor ut excepturi, consequuntur expedita mollitia pariatur tempora et. Sequi cum molestias, ipsam id beatae, quidem. Similique, illum ducimus rerum atque praesentium illo odit quia ea commodi optio nisi quisquam facilis perspiciatis quaerat, et ad mollitia, neque voluptates.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sequi expedita esse, tempore numquam hic sunt voluptatem. Excepturi dolorem, voluptas error, nesciunt dolor laudantium odio officiis soluta natus corporis, consequuntur quas enim accusantium reprehenderit! Perferendis quisquam ab distinctio, rem necessitatibus voluptates a debitis atque iusto incidunt dolore laudantium eaque perspiciatis iste.</p>
</main>
<footer>
© Flexbox Inc - 2015
</footer>
Codigo CSS:
* {
box-sizing: border-box;
}
body {
margin: 0;
padding: 0;
font-family: sans-serif;
display: flex;
flex-wrap: wrap;
min-height: 100vh;
background: #f0f0f0;
}
main {
padding: 1em;
}
h1 {
color: steelblue;
}
footer {
background: #111;
color: #fff;
width: 100%;
text-align: center;
padding: 1em;
align-self: flex-end;
}
Este ejemplo lo tomé del curso de Flexbox del Canal de youtube de Escuela Digital.