Элементы уровня блока не сворачиваются до ширины содержимого. Возможно, вам удастся обойти это с помощью встроенного блока, но это может оказаться непростым делом.
Лучше всего использовать javascript для вычисления ширины на основе самого широкого LI. Пусть он загружается без определенной ширины, имеет javascript для циклического прохождения каждого <a>
в каждом <li>
, чтобы найти самое широкое, а затем установите UL на эту конкретную ширину.