Мне нужно спроектировать навигацию, динамически отображаемую CMS (поэтому я не контролирую разметку HTML).В меню есть неизвестное, переменное количество элементов, а все элементы имеют переменную, неизвестную ширину.Мне нужно расположить эти пункты меню в одну строку с равноудаленным интервалом между ними (это легко сделать с помощью flexbox) и с визуальным разделителем точно в середине интервала (это моя нерешенная проблема).
Нижекод, который я получил до сих пор.HTML - это просто пример вывода, и я не могу его изменить.Мне также не разрешено использовать JS.CSS от меня, и я могу полностью контролировать его.
.mainnav {
width: 100%;
display: flex;
justify-content: space-between;
list-style-type: none;
margin: 0;
padding: 0;
border: 1px solid black;
}
.mainnav__item {
flex: 0 0 auto;
background-color: yellow;
position: relative;
white-space: nowrap;
}
.mainnav__item + .mainnav__item::before {
content: '';
width: 1px;
height: 100%;
background-color: red;
position: absolute;
left: -50%;
top: 0;
}
<ul class="mainnav">
<li class="mainnav__item">
<a class="mainnav__link" href="#">Short</a>
</li>
<li class="mainnav__item">
<a class="mainnav__link" href="#">Looooooooooooooong</a>
</li>
<li class="mainnav__item">
<a class="mainnav__link" href="#">Mediuuum</a>
</li>
<li class="mainnav__item">
<a class="mainnav__link" href="#">whatever else</a>
</li>
</ul>
Моя проблема - красная разделительная линия.Оно должно быть точно посередине, но я не знаю, как рассчитать горизонтальное положение.
Кто-нибудь может мне сказать, что решение для размещения разделителя только на CSS?
Решение должно работатьв распространенных современных браузерах (текущая версия [Android | Win] Chrome, [macOs | iOs] Safari, Firefox, Edge), а также в IE11