Не найдя ничего подозрительного в коде, даже проверила.
И в Edge и в ИЕ все прекрасно работает.
Другое дело, зачем там флекс для body, но может и нужен, мы не знаем цели.
В вашем коде нет ни слова про position. Да и зачем он там, просто отступы обнулить, максимум relativ'ом сдвинуть, если из-за параметров шрифта не так ложится. (Хотя, вероятно, вы просто забыли выложить скрин с примером, как нужно)
Ваш код сюда: https://jsfiddle.net/q65c0Lnv/
Так видно же, мешает кнопка.
5+ лет назад использовали прием, который назывался clearfix.
Сейчас в верстке используют флексы, а флоаты пишут только по их прямому назначению. https://html5book.ru/css3-flexbox/
Например, поставить небольшую задержку, чтобы меню не сразу исчезало.
Как сделано в конкретном примере можно посмотреть через инструменты разработчика.
Уберите.
Теперь попробуйте навигацию по сайту без мышки, только клавиатурой (табом).
Нравится? Понятно где находитесь? Нет?
Верните обратно или замените на более подходящее по дизайну выделение.