A parte de los medias queries tambien es importante trabajar con unidades dinámicas, como el % y vh/vw (virtual height y width que basicamente es el alto y ancho de la pantalla, no del elemento).
Para poder trabajar con vh y vw hay que configurar el viewport en el html:
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
Tambien puedes usar calc() para todavía conseguir un nivel más dinámico, por ejemplo: quieres que un div tenga el 100% del padre pero este tiene 10px de padding:
div.child { width: calc(100% - 20px) }
Te dejo un ejemplo de como usar % y calc():
https://jsfiddle.net/y5x3jyc9/Edito: Te dejo también el ejemplo que acaba de crear para la otra pregunta:
https://jsfiddle.net/y5x3jyc9/2/