Учитывая разную ширину иконок меню, под которые нужно центровать выпадающие блоки, единственный вариант - подогнать каждый блок вручную через отрицательный margin.
Можно через js задать расчет ширины экрана и от этого для каждого блока делать отрицательный маржен. Или. Блоки в меню отображать через display:table-cell, настроить им одинаковую ширину, что позволит выставить всплывающий элемент без скриптво по центру в нужном месте для всех сразу.
Вы про media queries слышали? Никакого js! Он уже давно в вёрстке используется только в самых крайних случаях, к которым стилизация под разные устройства не относится.
ну надо вот так сделать но сами категории по ширине другие использую супер меню думал можно отцентрировать в зависимост от категории
Не усложняйте себе жизнь. Сделайте меню выпадающее с выравнивание текста по левому краю, а сам фон растяните на 100%. Туда же в блок добавьте баннер и будет счастье. Тем более текст и предоставление информации для русского населения идет слева направо. А когда все отцентровано, то это хаос какой то.
Вы то ли не читаете, что я пишу, то ли не понимаете. Задаёте для каждого выпадающего блока отдельный отрицательный отступ слева в зависимости от ширины кнопки под которую центрируете и ширины самого блока. И делаете это через media queries, чтоб эти стили работали только для десктопа. Код: @media screen and (min-width: 768px){ /* стили для выпадающих блоков */ }