<!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: 3px 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: translate(-50%, -10px);
transform-origin: center 200px;
}
.shizhen {
width: 12px;
height: 60px;
background: black;
position: absolute;
left: 50%;
top: 50%;
/* margin: -60px 0 0 -6px; */
transform: translate(-50%, -60px);
}
.fenzhen {
width: 10px;
height: 100px;
background: black;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -100px);
/* margin: -100px 0 0 -5px; */
}
.miaozhen {
width: 6px;
height: 180px;
background: black;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -180px);
/* margin: -180px 0 0 -3px; */
}
.yuanxin {
width: 40px;
height: 40px;
border-radius: 50%;
background: red;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
/* #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 class="yuanxin"></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>
两个问题:
上面这段代码中,为什么我用margin就可以平移,但是用被注释起来的transform: translate(-50%, -10px);就无法移动目标?
这段代码中我给时针设置的样式宽度是6px,12点的时针刚好能对准下面的竖直向上的分针,但是如果我将宽度调节到10px,它又无法对准了,如果我将宽度调节到50px,一圈时针都从时钟圆盘中横移出去了?这是为什么?它的宽度变化不应该是由中心向两边扩散吗?
不知道你这个问题是否已经解决, 如果还没有解决的话: