这种步骤条该怎么实现

213 阅读2分钟

需求desc:

与常规步骤条不同的是 各个步骤之间没间隔 连在一起

image.png

image.png

需求分析

  • 常规样式实现
  • hover样式实现
    • 当第一个元素的时候 hover需要高亮 当第二个元素的时候 hover前后边框高亮 这里会有一个问题 相邻元素之间占据有相同边框 点击样式同
  • 点击样式实现

我的实现

  • 对于折线的处理 我是使用菱形拼接 对于一个Item 使用伪元素在前后都拼接一个菱形 (起初想使用三角形 实现折线 但是如果使用三角形的话 好像无法在伪元素中使用 就实现不了hover样式了)
  height: 35px;
	width: 35.5px;
	border: 1px solid #e5e5e5;
	transform: rotateZ(45deg) skew(15deg, 15deg);
	background-color: transparent;
	border-left: none;
	border-bottom: none;
	content: "";
	position: absolute;
	top: 13px;
	left: -18px;
  • 使用菱形 同样会遇到与边框连接处有突出问题 做的时候我细调了两种方式
    • 1是给菱形圆角
    • 2是细调 宽高和定位 这种方式对我效果更好 所以选择了这种
  • 对于hover和点击效果 就是不同情况下给不同的样式

最终实现

  • 总共使用了100多行的css代码
  • 对于这个需求 觉得比较麻烦 自己的实现方式应该很笨重
  • 想问问大家 有没有更好的实现方式
    • 对于不确定角度的折线怎么实现?
    • 对于hover和点击样式怎么更方便的控制?
    • 目前还有手机端 如果放到手机端 还是采用这种定位的方式拼接菱形 恐怕会因为兼容而无法达到统一效果

image.png

总之 就是想得到一种更好的实现方式 自己实在是太局限 欢迎大家给予指导