Vue手写模拟步骤条

效果图:

如果要使用element的步骤条就需要强行修改样式,参考之前的那篇步骤条。这里我采用手写div

代码:

思路是给最外层的div一个左边框,给里面的step-item设置左边框为图片,通过定位来移动。

javascript 复制代码
 <div class="mock-step">  最外层的div
                    <div class="step-item"> 
                        <span class="item-date">2024-01-21</span>
                        <span class="item-price">¥1,099,000</span>
                    </div>
                    <div class="step-item">
                        <span class="item-date">2024-01-21</span>
                        <span class="item-price">¥1,099,000</span>
                    </div>
                    <div class="step-item">
                        <span class="item-date">2024-01-21</span>
                        <span class="item-price">¥1,099,000</span>
                    </div>
 </div>
样式:

第一步中其实还有个属性叫 background-position也可以移动背景图片,但是我图定位方便;

其他样式属性我删掉了,只留了关键点;

javascript 复制代码
    .mock-step {
            border-left: 1px solid rgb(238, 238, 238);

            .step-item {
                position: relative;   移动div
                left: -4px;
                background-image: url('../../assets/insure/step-icon.png');  圈圈背景图 
                background-repeat: no-repeat;
                background-size: 8px 8px;
                height: 33px;
                display: flex;
                justify-content: space-between;

                .item-date {
                    position: relative;  自行修改
                    top: -4px;
                }

                .item-price {
                    position: relative;
                    top: -4px;
                }

            }
        }

        .mock-step:last-child .step-item:last-child {
            height: auto !important;
        }
方法二:

去掉了用图片做边框。直接将图片放在里面。用grid定位

javascript 复制代码
修改版本
 .step-item {
                position: relative;
                left: -4px;
                // background-image: url('../../assets/insure/step-icon.png');
                // background-position: left;
                background-repeat: no-repeat;
                background-size: 8px 8px;
                // padding-left: 14px;
                padding-right: 12px;
                height: 33px;
                // display: flex;
                // justify-content: space-between;
                display: grid;
                grid-template-columns: repeat(3, 15px 60% 35%);
}
总结:

但是这样会导致最后一个会有一点点超出,虽然做了处理还是比较明显,不知道优化了。有没有建议哦?

相关推荐
菌菇汤1 分钟前
uni-app实现单选,多选也能搜索,勾选,选择,回显
前端·javascript·vue.js·微信小程序·uni-app·app
R-sz4 分钟前
java流式计算 获取全量树形数据,非懒加载树,递归找儿
java·开发语言·windows
Ramos丶9 分钟前
【ABAP】 从无到有 新建一个Webdynpro程序
java·前端·javascript
摸鱼仙人~19 分钟前
如何创建基于 TypeScript 的 React 项目
javascript·react.js·typescript
随意02323 分钟前
Qt 事件
开发语言·qt
qq_4116719828 分钟前
vue3 的模板引用ref和$parent
前端·javascript·vue.js
鸥梨菌Honevid30 分钟前
Qt自定义控件(1)——QPaintEvent
开发语言·qt
Code季风33 分钟前
深入比较 Gin 与 Beego:Go Web 框架的两大选择
开发语言·golang·go·gin·beego
清幽竹客2 小时前
vue-37(模拟依赖项进行隔离测试)
前端·vue.js
vvilkim2 小时前
Nuxt.js 页面与布局系统深度解析:构建高效 Vue 应用的关键
前端·javascript·vue.js