任何人都有使用 css 和 html 创建它的简单方法吗?

Anyone have easy way to create this using css and html?

我已经用下面的代码完成了这个,但我认为这是一个困难的方法,任何人都可以使用 css 和 html 创建它。

.fline {
  width: 2px;
  background-color: black;
  height: 10px;
  margin-left: 30%;
  margin-top: -9px;
}

.fline1 {
  width: 2px;
  background-color: black;
  height: 10px;
  margin-left: 60%;
  margin-top: -10px;
}

.fline2 {
  width: 2px;
  background-color: black;
  height: 10px;
  margin-left: 88.2%;
  margin-top: -11px;
}
<hr style="width: 300px;margin-left: 30%;color:black">
<div class="fline"></div>
<div class="fline1"></div>
<div class="fline2"></div>

这只是一个示例,您可以对其进行修改以满足您的要求

.box {
  display: flex;
  border-top:1px solid #000;
}

.box>div:not(:last-child)
{
border-left:1px solid #000;
}
.box>div:last-child
{
border-right:1px solid #000;
}

.box>div
{
flex: 1 1 auto;
padding:10px;
}
<div class="box">
      <div></div>
      <div></div>
      <div></div>
    </div>

.fline {
  width: 2px;
  background-color: black;
  height: 10px;
  margin-left: 30%;
  margin-top: -9px;
}

.fline1 {
  width: 2px;
  background-color: black;
  height: 10px;
  margin-left: 60%;
  margin-top: -10px;
}

.fline2 {
  width: 2px;
  background-color: black;
  height: 10px;
  margin-left: 88.2%;
  margin-top: -11px;
}
<hr style="width: 300px;margin-left: 30%;color:black">
<div class="fline">Low</div>
<div class="fline1">Average</div>
<div class="fline2">High</div>

.box {
  display: flex;
  border-top:1px solid #000;
}

.box>div:not(:last-child)
{
border-left:1px solid #000;
}
.box>div:last-child
{
border-right:1px solid #000;
}

.box>div
{
flex: 1 1 auto;
padding:10px;
padding-top:40px;
}
<div class="box">
      <div>Low</div>
      <div>Average</div>
      <div>High</div>
    </div>

  • 首先你需要定义一个外包装,然后根据需要定义width
  • position:relative为此。
  • 第一个内部 div 为 float:left;,最后一个为 float:right;
  • 并以 div 和 position:absolute;margin:auto 为中心;从左到右;
  • margin-top 取决于您的 parent div outer-wrap 内部 div 的宽度,例如:fline,fline1,fline2

    .outer-wrap{
    width: 80%;
    height: 1px;
    background-color: #000;
    margin: auto;
    text-align: center;
    position: relative;
}
.fline {
      width: 2px;
    background-color: black;
    height: 10px;
    float: left;
    margin-top: 1px;
}

.fline1 {
      width: 2px;
    background-color: black;
    height: 10px;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
}

.fline2 {
  width: 2px;
    background-color: black;
    height: 10px;
    float: right;
    margin-top: 1px;
}
<div class="outer-wrap">
    <div class="fline"></div>
    <div class="fline1"></div>
    <div class="fline2"></div>
</div>

.grid{width:calc(100% - 20px);max-width:1000px;margin:0 auto;;border-top:3px solid red;display:flex;flex-direction:row;align-items:baseline;justify-content: space-between;}
.fline{position:relative;overflow:hidden;min-height:40px;float: left;padding-top: 20px;}
.fline::before{position:absolute;content:"";top:0;width:2px;height:20px;background:red}
.fline:first-child::before{left:0}
.fline:nth-of-type(2)::before{left:calc(50% - 2px)}
.fline:last-child::before{left:unset;right:0}
<div class="grid">
<div class="fline">Low</div>
<div class="fline">High</div>
<div class="fline">Average</div>
</div>

.scale-container {
  width: 300px;
}

.scale {
  width: 296px;
  height: 20px;
  border: 2px solid black;
  border-bottom: none;
}

.scale>div {
  width: 50%;
  height: 20px;
  border-right: 2px solid black;
}

.label-container {
  width: 100%;
  display: flex;
  justify-content: space-between;
}
<div class="scale-container">
  <div class="scale">
    <div></div>
  </div>
  <div class="label-container">
    <div>Low</div>
    <div>Average</div>
    <div>High</div>
  </div>
</div>

通过这种方式,您可以添加任意数量的项目。

.p {
  display: flex;
  position: relative;
  padding-top: 15px;
  border-top: 2px solid red;
  margin-bottom: 30px;
}

.p div {
  position: relative;
  flex: 1;
  text-align: center;
}

.p div:after {
  content: '';
  position: absolute;
  height: 15px;
  width: 2px;
  background: red;
  top: -15px;
}

.p div:not(:first-child):not(:last-child):after {
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
}

.p div:first-child {
  text-align: left;
}

.p div:first-child:after {
  left: 0;
}

.p div:last-child {
  text-align: right;
}

.p div:last-child:after {
  right: 0;
}
<div class="p">
  <div>
    Low
  </div>
  <div>
    Average
  </div>
  <div>
    High
  </div>
</div>

<div class="p">
  <div>
    Low
  </div>
  <div>
    Average -1
  </div>
  <div>
    Average
  </div>
  <div>
    Average 1
  </div>
  <div>
    High
  </div>
</div>

<div class="p">
  <div>
    Low
  </div>
  <div>
    Average -2
  </div>
  <div>
    Average -1
  </div>
  <div>
    Average
  </div>
  <div>
    Average 1
  </div>
  <div>
    Average 2
  </div>
  <div>
    High
  </div>
</div>

这个是这个问题的正确答案

.scale-container {
  width: 300px;
}

.scale {
  width: 296px;
  height: 20px;
  border: 2px solid black;
  border-bottom: none;
}

.scale>div {
  width: 50%;
  height: 20px;
  border-right: 2px solid black;
}

.label-container {
  width: 100%;
  display: flex;
  justify-content: space-between;
}
<div class="scale-container">
  <div class="scale">
    <div></div>
  </div>
  <div class="label-container">
    <div>Low</div>
    <div>Average</div>
    <div>High</div>
  </div>
</div>