垂直线,两端有点

and*_*e91 5 css

我一直在寻找这方面的解决方案,并在谷歌没有成功.

我想创建一个垂直线,其末端有点,沿线有几个.

img例如:

带点的水平线

我怎样才能用css实现这个目标?我可以做一个带间距的虚线,但我也不知道如何创建这条线,如果可能的话?

Ang*_*ris 7

这是一个可以帮助您解决问题的快速代码段:

.bar {
  list-style: none;
}
.bar >li {
  position: relative;
}
.bar>li:before {
  content: '\25CF';
  margin-right: 10px;
  font-size: 20px;
}
.bar>li:after {
  position: absolute;
  left: 0;
  top: 0;
  content: '';
  border-left: 2px solid black;
  margin-left: 5px;
  height: 100%;
}
.bar >li:first-of-type:after {
  top: 50%;
}
.bar >li:last-of-type:after {
  top: -50%;
}
Run Code Online (Sandbox Code Playgroud)
<ul class="bar">
  <li>element 1</li>
  <li>element 2</li>
  <li>element 3</li>
  <li>element 4</li>
  <li>element 5</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

这个想法是你使用一个列表,每个元素的项目:before符号都用Unicode黑色圆圈的符号替换,而:after元素的每个选择器都包含元素在垂直线上的共享.第一个和最后一个列表元素有一个额外的规则来截断它们的边界线,因此它不会超过黑色圆圈.

调整一下,以获得您想要的确切效果!


Ama*_*dan 5

<style>
  svg {
    background-color: black;
  }
  .dotted-line {
    fill: none;
    stroke: orange;
    stroke-width: 2;
    marker: url(#circle-marker);
  }
  #circle-marker circle {
    fill: orange;
    stroke; orange;
  }
</style>
<svg height="40" width="190">
  <polyline class="dotted-line" points="20,20 70,20 120,20 170,20"/>
  <marker id="circle-marker" markerWidth="8" markerHeight="8" refX="5" refY="5">
    <circle class="foreground" cx="5" cy="5" r="3" />
  </marker>
</svg>
Run Code Online (Sandbox Code Playgroud)

(我从表面上看“水平”;使其垂直是微不足道的。)

查找markerSVG 元素、 、marker-startmarker-endSVGmarker-mid属性。marker这里的 attribute 结合了三个属性(为了简洁起见,因为它们都是相同的)。