Dcheng103 2023-07-26 20:48 采纳率: 70%
浏览 10
已结题

css圆形布局内容居中

img


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

  • 写回答

2条回答 默认 最新

  • ZionHH 2023-07-27 11:09
    关注

    使用旋转,只需计算角度

    img

    <!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>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月10日
  • 已采纳回答 8月2日
  • 修改了问题 7月26日
  • 修改了问题 7月26日
  • 展开全部