Терминология, которую вы ищете, - «адаптивный дизайн». Он включает в себя обработку всего на странице как ячеек, которые падают одна под другой в столбец по мере уменьшения размера экрана. Это можно сделать разными способами, все css, javascript не требуется. Лучший способ, который я нашел, - использовать flexbox для макетов. Второй вариант и, по сути, запасной вариант для старых браузеров, не поддерживающих flexbox, - это использование display: inline-block. Я обычно игнорирую любые браузеры, которые не поддерживают flexbox или inline-block, но если вам нужно поддерживать очень старые грубые браузеры, вы можете использовать для этой цели float. Следует также упомянуть медиа-запросы, которые позволяют изменять правила css в точках останова. Я стараюсь избегать их, насколько это возможно, потому что они не допускают непрерывного потока при изменении размера страницы, но иногда они необходимы, если вы не можете найти другой способ. Однако flexbox обычно обрабатывает все без необходимости. Также стоит упомянуть сетку Css, хотя я не считаю ее очень полезной для адаптивного дизайна, но ее стоит изучить.
Очень мало случаев, когда я обнаружил, что javascript необходим для верстки. Один из них - если вы хотите, чтобы размер шрифта зависел от размеров контейнера. Обычно я бы просто использовал css для макета.