Если вы верстальщик, то уже должны были столкнуться так сказать с узким горлышком html+css, и часто слышали/подозревали, как такое решается на js. Если нет, то вы начинающий верстальщик, и имеет смысл для начала сверстать пару десятков макетов, понять, в каком моменте возникают трудности, загуглить эти трудности и увидеть как они решаются на js.
Из учебников классика - кантор, you dont know js или носорог.