你把事情复杂化了,你不需要一个容器。您只需将所有菜单项绝对定位在圆的中心,然后将每个菜单项旋转所需的角度,将其向外平移圆的半径,然后再次将其旋转相反的角度以使文本再次水平。这样,每个菜单项的中心将位于圆圈上。
HTML:
<ul class='circ-menu'>
<li><a href='#'>aa</a></li>
<li><a href='#'>bb</a></li>
<!-- and so on -->
</ul>
CSS:
.circ-menu {
position: relative;
padding: 0;
width: 10em; height: 10em;
list-style: none;
}
.circ-menu li {
position: absolute;
top: 50%; left: 50%;
margin: -1.5em;
width: 3em; height: 3em;
background: rgba(255, 0, 0, .3);
}
.circ-menu li:first-child {
transform: rotate(-112.5deg) translateY(-5em) rotate(112.5deg);
}
.circ-menu li:nth-child(2) {
transform: rotate(-67.5deg) translateY(-5em) rotate(67.5deg);
}
/* and so on */