html - 在圆角矩形周围附加点
问题描述
如图所示,我正在尝试在火车轨道周围附加 15 个点,但不确定如何/如果可能的话将这些点转换为适合圆形轨道:
在每个点的鼠标悬停时,应该出现站标题。
对于这种情况,SVG 会是更好的解决方案吗?如果是这样,它可以支持每个点的悬停吗?
https://codepen.io/anon/pen/bjodLR
<ul class='track-container'>
<li><span class="station-name">Station 1</span></li>
<li><span class="station-name">Station 2</span></li>
<li><span class="station-name">Station 3</span></li>
<li><span class="station-name">Station 4</span></li>
<li><span class="station-name">Station 5</span></li>
<li><span class="station-name">Station 6</span></li>
<li><span class="station-name">Station 7</span></li>
<li><span class="station-name">Station 8</span></li>
<li><span class="station-name">Station 9</span></li>
<li><span class="station-name">Station 10</span></li>
<li><span class="station-name">Station 11</span></li>
<li><span class="station-name">Station 12</span></li>
<li><span class="station-name">Station 13</span></li>
<li><span class="station-name">Station 14</span></li>
<li><span class="station-name">Station 15</span></li>
</ul>
@import "compass/css3";
@mixin on-track($item-count, $circle-size, $item-size) {
position: relative;
width: $circle-size * 2;
height: $circle-size;
border-radius: 25%/50%;
list-style: none;
> li {
background: #fff;
border: 2px solid #555556;
border-radius: 50%;
display: block;
position: absolute;
top: 50%;
left: 50%;
margin: -($item-size / 2);
width: $item-size;
height: $item-size;
$angle: (360 / $item-count);
$rot: 0;
@for $i from 1 through $item-count {
&:nth-of-type(#{$i}) {
transform: rotate($rot * 1deg) translate($circle-size / 2)
rotate($rot * -1deg);
}
$rot: $rot + $angle;
}
.station-name {
display: none;
position: absolute;
left: -45px;
bottom: 25px;
width: 100px;
text-align: center;
font-weight: bold;
}
&:hover {
cursor: pointer;
.station-name {
display: block;
}
}
}
}
.track-container {
@include on-track($item-count: 15, $circle-size: 20em, $item-size: 1em);
margin: 15em auto 0;
border: 30px solid #555556;
box-shadow: 0 0 0 30px #f60;
}
解决方案
我已经采用了 SVG 方法。我使用 Adobe Illustrator 将上面的图像转换为 SVG,并为站名添加了 SVG 文本锚点。
推荐阅读
- spring - Guava(Spring)中过期后如何刷新缓存中的键和值
- python - Python - matplotlib - 如何从方程中绘制平面?
- c++ - 适用于 Visual Studio 的混合
- laravel - laravel Voyager 多语言如何在需要的语言环境中显示带有翻译的项目
- rest - 使用 JavaDSL 配置到外部 URL 的 apache-camel 路由
- c# - 将数据从 GridView 保存到数据库时输入字符串格式不正确
- c# - 如何在迭代中同时中断和继续?
- json - jq - 根据其中一个值查找 JSON 对象并从中获取另一个值
- elasticsearch - Elasticsearch - 完全插入或部分更新
- javascript - 如何使用php读取本地目录中的图像并将其显示到网页中