
如示意图,需要圆形布局内容居中,需要使用css和jquery,
外圈内容是动态的,也就是说是根据请求获取到再组装的,我的想法是计算出坐标再渲染页面?或者有无其他更好的办法
不知道各位有什么思路可以帮忙提供或者源码参考的吗?谢谢了

使用旋转,只需计算角度

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.wrap {
position: relative;
margin: 200px;
width: 200px;
height: 200px;
}
.wrap .center-wrap {
width: 100%;
height: 100%;
background-color: #4472c4;
border-radius: 50%;
}
.wrap .around-wrap {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
}
.wrap .around-wrap .around-item {
position: absolute;
left: 50%;
top: 50%;
width: 100px;
height: 40px;
background-color: #4472c4;
}
.wrap .around-wrap .around-item:nth-child(1) {
transform: translate(-50%, -50%) rotate(0deg) translateY(-180px) rotateZ(0deg);
}
.wrap .around-wrap .around-item:nth-child(2) {
transform: translate(-50%, -50%) rotate(45deg) translateY(-180px) rotateZ(-45deg);
}
.wrap .around-wrap .around-item:nth-child(3) {
transform: translate(-50%, -50%) rotate(90deg) translateY(-180px) rotateZ(-90deg);
}
.wrap .around-wrap .around-item:nth-child(4) {
transform: translate(-50%, -50%) rotate(135deg) translateY(-180px) rotateZ(-135deg);
}
.wrap .around-wrap .around-item:nth-child(5) {
transform: translate(-50%, -50%) rotate(180deg) translateY(-180px) rotateZ(-180deg);
}
.wrap .around-wrap .around-item:nth-child(6) {
transform: translate(-50%, -50%) rotate(225deg) translateY(-180px) rotateZ(-225deg);
}
.wrap .around-wrap .around-item:nth-child(7) {
transform: translate(-50%, -50%) rotate(270deg) translateY(-180px) rotateZ(-270deg);
}
.wrap .around-wrap .around-item:nth-child(8) {
transform: translate(-50%, -50%) rotate(315deg) translateY(-180px) rotateZ(-315deg);
}
</style>
</head>
<body>
<div class="wrap">
<div class="center-wrap"></div>
<div class="around-wrap">
<div class="around-item"></div>
<div class="around-item"></div>
<div class="around-item"></div>
<div class="around-item"></div>
<div class="around-item"></div>
<div class="around-item"></div>
<div class="around-item"></div>
<div class="around-item"></div>
</div>
</div>
</body>
</html>