CSS

时间:2017-06-23 08:13:51

标签: javascript jquery html css

Image of a horizontal timeline. There is a grey line at the top with a large blue dot above the caption "Awaiting Response". To the right of it is a smaller, grey dot with the caption "Site Owner Assigned".

我在图像中需要这样的东西。此外,它应该有导航按钮,在单击导航按钮时水平滚动,以便列表是动态的。 我在下面用CSS和HTML插入代码。它必须只用CSS完成,但对于导航图标,我们可以使用JavaScript。而<li>元素文本也不应重叠,即使它太长了。

.timeline {
  white-space: nowrap;
  overflow-x: hidden;
}

.timeline ol {
  font-size: 0;
  width: 100vw;
  padding: 250px 0;
  transition: all 1s;
}

.timeline ol li {
  position: relative;
  display: inline-block;
  list-style-type: none;
  width: 160px;
  height: 3px;
  background: #e1e2e3;
}

.timeline ol li:last-child {
  width: 280px;
}

.timeline ol li:not(:first-child) {
  margin-left: 14px;
}

.timeline ol li:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 50%;
  left: calc(100% + 1px);
  bottom: 0;
  width: 12px;
  height: 12px;
  transform: translateY(-50%);
  border-radius: 50%;
  background: #e1e2e3;
}
<div class="timeline">
    <ol>
      <li>abc</li>
      <li>hello welcome</li>
      <li>cool summer</li>
      <li>hi there</li>
      <li>whats up</li>
    </ol>
</div>

1 个答案:

答案 0 :(得分:1)

试试这个:

.timeline {
  overflow-x: hidden;
  padding: 20px 0;
}

.timeline ol {
  width: 100%;
  transition: all 1s;
  margin:0;
  padding:0;
  display:flex;
  justify-content: space-between;
}

.timeline ol li {
  list-style:none;
  position: relative;
  text-align:center;
  flex-grow: 1;
  flex-basis: 0;
  padding: 0 5px;
}

.timeline ol li:before {
  content:"";
  width:10px;
  height:10px;
  display:block;
  border-radius:50%;
  background: #ccc;
  margin:0 auto 5px auto;
}
.timeline ol li:not(:last-child)::after {
    content: "";
    width: calc(100% - 14px);
    height: 2px;
    display: block;
    background: #ccc;
    margin: 0;
    position: absolute;
    top: 4px;
    left: calc(50% + 7px);
}

https://jsfiddle.net/uer3gxeo/1/