m0_46602893 2021-03-31 19:53 采纳率: 91.5%
浏览 30
已结题

关于CSS时钟的问题

<!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>
            *{margin: 0;padding: 0;}
            ul{list-style: none;}
            #time{width: 400px;height: 400px;border: 10px solid black;border-radius: 50%;margin: 30px auto;position: relative;}
            #time ul{width: 100%;height: 100%;position: relative;}
            #time ul li{width: 4px;height: 10px;background: black;position: absolute;left: 50%;
                        margin: 0 -3px;
                        /* transform: translateX(30px); */
                        transform-origin: center 200px;
            }
            .shizhen{width: 12px;height: 60px;background: black;position: absolute;left: 50%;top: 50%;
                  margin: -60px 0 0 -6px;}
                  
            .fenzhen{width: 10px;height: 100px;background: black;position: absolute;left: 50%;top: 50%;
            /* transform: translateY(-100px) translateX(-5px); */
            margin: -100px 0 0 -5px;
            }
            .miaozhen{width: 6px;height: 180px;background: black;position: absolute;left: 50%;top: 50%;
                  /* transform: translateY(-180px) translateX(-3px); */
                  margin: -180px 0 0 -3px;
            }









            /* #time ul li:nth-child(2){transform: rotateZ(6deg);} */
      </style>
</head>
<body>
      <div id="time">
            <ul>
                  <!-- <li></li>
                  <li></li> -->
            </ul>
            <div class="shizhen"></div>
            <div class="fenzhen"></div>
            <div class="miaozhen"></div>
      </div>
      <script>
           var ul = document.querySelector("ul");
           for(var i=0;i<60;i++){
                 var li= document.createElement("li");
                 li.style.transform = 'rotate('+(i*6) + 'deg)';
                 if( i%5==0){
                       li.style.height='20px'
                       li.style.width='6px'
                 }
                 ul.appendChild(li);

           }

      </script>
</body>
</html>

两个问题:1

#time ul li{width: 4px;height: 10px;background: black;position: absolute;left: 50%;

                        margin: 0 -3px;

                        /* transform: translateX(30px); */

                        transform-origin: center 200px;

            }

这段代码中为什么我用transform无法移动li而用margin可以?

2:如果要将li移动到正中间不是应该向左移动50%后再移动宽度的一半吗?

那么这个宽度的一半应该是-2px,但是我移动-2px无法跟下面的分针对齐,只有移动-3px才能正好对齐?

 

  • 写回答

1条回答 默认 最新

  • 禅思院 前端领域优质创作者 2021-03-31 22:27
    关注
    1. 一个是平移  一个是旋转 性质不一样
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月4日
  • 已采纳回答 8月27日

悬赏问题

  • ¥20 易康econgnition精度验证
  • ¥15 线程问题判断多次进入
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致