Задолбался гуглить, все какую-то фигню советуют. Проблема: Есть кнопка при нажатии на которую должно выпадать меню, это меню хочется выровнять так чтобы правая граница его совпадала с правой границей кнопки. Для этого нужно получить ширину меню чтобы сдвинуть его влево от кнопки. Получить ширину не получается ни через menu.offsetWidth ни через menu.style.width , оба эти свойства почему-то возвращают пустое значение. Все остальные функции работают нормально, меню располагается справа от кнопки. function showMenu(obj, id) { if (CurrMenu != null) CurrMenu.style.display = "none"; var menu = document.getElementById(id); var width = menu.offsetWidth; menu.style.left = (getAbsX(obj) - width + 16) + 'px'; menu.style.top = (getAbsY(obj) + 16) + 'px'; //alert(width); menu.style.display = ''; CurrMenu = menu; } <div id="ContextMenu1" style="padding: 5px; border: 1px solid #999999; position: absolute; background: white; display: none; z-index: 100;" onMouseOut="HideMenu()"> <table cellpadding="3"> <tr><td class="MenuItem">Edit record</td></tr> <tr><td class="MenuItem">Copy key to clipboard</td></tr> <tr><td class="MenuItem">Copy HardwareID to clipboard</td></tr> </table> </div>