Попробуйте теперь заставить блок "бегать" за кнопкой изменяя ее положение различными методами.- это похоже на группировку, если один должен бегать якобы за другим, они должны быть в едином блоке, и перемещать уже не единый блок, а целую группу, что бы казалось что один бегает за другим.
ты хочешь при dropdown отследить элемент какими-то необычными способами.
в 99.99999999999999999999999999999999999999999% - нет той задачи, которая бы требовала отслеживать изменение gap ( стиль )
вообще отслеживание одновременно, стили у контейнера, тот же gap, и всех потомков а точнее все их стили, типа margin, width и т.д ( ну тут до бесконечности можно перечислять )
это невероятно, очень трудозатратная операция для браузера, той же оперативки, у тебя не то что сайт будет лагать, а целый браузер.
ты не верно подходишь к решению задачи, которая стоит перед тобой.
Причем тут gap, свойства и стили всех родителей и потомков???
Что если один из элементов относительно которого происходи позиционирование, не меняя своего размера, меняет положение, будь то transform translate, отрицательный margin или он находится внутри сетки которая, допустим, увеличила gap