【发布时间】:2021-05-08 17:50:13
【问题描述】:
我想在 CSS 3 中用圆弧画一个圆,这样我就有 5 个点,每个点都可以是一个链接。我想用弧线做的原因是因为我想在用户悬停在一个点上时为弧线设置动画。例如,如果用户将鼠标悬停在第二个点上,则连接第一个和第二个点的线/弧具有填充动画。 有没有办法使用 CSS 或使用 SVG 更好?
.circle {
position: relative;
width: 530px;
}
.dot {
position: absolute;
width: 10px;
height: 10px;
border-radius: 50%;
background: #ccc;
}
.dot1 {
top: 0;
left: 50%;
transform: translate(-50%, -50%);
}
.dot2 {
top: 34.5%;
left: 2%;
transform: translate(-50%, -50%);
}
.dot3 {
top: 34.5%;
left: 98%;
transform: translate(-50%, -50%);
}
.dot4 {
top: 90%;
left: 21%;
transform: translate(-50%, -50%);
}
.dot5 {
top: 90%;
left: 79%;
transform: translate(-50%, -50%);
}
<div class="circle">
<svg width="530" height="530" viewBox="0 0 530 530" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M265 529C410.803 529 529 410.803 529 265C529 119.197 410.803 1 265 1C119.197 1 1 119.197 1 265C1 410.803 119.197 529 265 529Z" stroke="#DDD7E3" />
<path d="M265 1L13.96 183.4" stroke="#DDD7E3" stroke-miterlimit="10"/>
<path d="M265 1L109.84 478.6" stroke="#DDD7E3" stroke-miterlimit="10"/>
<path d="M265 1L420.16 478.6" stroke="#DDD7E3" stroke-miterlimit="10"/>
<path d="M109.84 478.6L13.96 183.4" stroke="#DDD7E3" stroke-miterlimit="10"/>
<path d="M265 1L516.04 183.4" stroke="#DDD7E3" stroke-miterlimit="10"/>
<path d="M420.16 478.6L516.04 183.4" stroke="#DDD7E3" stroke-miterlimit="10"/>
<path d="M420.16 478.6L13.96 183.4" stroke="#DDD7E3" stroke-miterlimit="10"/>
<path d="M516.04 183.4H13.96" stroke="#DDD7E3" stroke-miterlimit="10"/>
<path d="M516.04 183.4L109.84 478.6" stroke="#DDD7E3" stroke-miterlimit="10"/>
<path d="M420.16 478.6H109.84" stroke="#DDD7E3" stroke-miterlimit="10"/>
</svg>
<div class="dot dot1"></div>
<div class="dot dot2"></div>
<div class="dot dot3"></div>
<div class="dot dot4"></div>
<div class="dot dot5"></div>
</div>
【问题讨论】: