线CSS实现对比效果,CSS对比效果,传统大家都是用图片来实现对比效果,其实这个对比效果用的理上下两个三角形来做出一个斜体对比效果。
实现的效果是兼容uniapp、微信小程序等不同端的代码
<template> <view class="container container23285"> <view class="flex diygw-col-24 items-stretch flex-nowrap flex48-clz"> <view class="diygw-col-12 text42-clz"> 看涨 </view> <view class="flex diygw-col-0 items-stretch flex-wrap flex57-clz"> <view class="diygw-col-0 text53-clz"> </view> <view class="diygw-col-0 text54-clz"> </view> </view> <view class="diygw-col-12 text43-clz"> 看跌 </view> </view> <view class="flex flex-wrap diygw-col-24 flex-direction-column flex41-clz"> <view class="flex flex-wrap diygw-col-24 justify-between flex42-clz"> <view class="diygw-col-0 text36-clz"> 60% </view> <view class="diygw-col-0 text37-clz"> 40% </view> </view> <view class="flex diygw-col-24 items-stretch flex-nowrap flex43-clz"> <view class="diygw-col-14 text38-clz"> </view> <view class="flex diygw-col-0 items-stretch flex-wrap flex44-clz"> <view class="diygw-col-0 text39-clz"> </view> <view class="diygw-col-0 text40-clz"> </view> </view> <view class="diygw-col-12 text41-clz"> </view> </view> <view class="flex flex-wrap diygw-col-24 justify-between flex45-clz"> <view class="flex flex-wrap diygw-col-0 items-center flex46-clz"> <text class="flex icon2 diygw-col-0 icon2-clz diy-icon-appreciate"></text> <view class="diygw-col-0 text44-clz"> 看涨 </view> </view> <view class="flex flex-wrap diygw-col-0 items-center flex47-clz"> <text class="flex icon3 diygw-col-0 icon3-clz diy-icon-appreciate"></text> <view class="diygw-col-0 text45-clz"> 看跌 </view> </view> </view> </view> <view class="clearfix"></view> </view> </template> <script> export default { data() { return { //用户全局信息 userInfo: {}, //页面传参 globalOption: {}, //自定义全局变量 globalData: {} }; }, onShow() { this.setCurrentPage(this); }, onLoad(option) { this.setCurrentPage(this); if (option) { this.setData({ globalOption: this.getOption(option) }); } this.init(); }, methods: { async init() {} } }; </script> <style lang="scss" scoped> .flex48-clz { margin-left: 20rpx; border-bottom-left-radius: 12rpx; overflow: hidden; width: calc(100% - 20rpx - 20rpx) !important; border-top-left-radius: 12rpx; margin-top: 20rpx; border-top-right-radius: 12rpx; border-bottom-right-radius: 12rpx; margin-bottom: 20rpx; margin-right: 20rpx; } .text42-clz { background-color: #ff2600; padding-top: 10rpx; color: #ffffff; padding-left: 10rpx; font-size: 28rpx !important; padding-bottom: 10rpx; text-align: center; padding-right: 10rpx; } .flex57-clz { flex-shrink: 0; width: 100rpx !important; } .text53-clz { flex-shrink: 0; color: #ffffff; top: 0rpx; left: 0rpx; flex: 1; border-left: 80rpx solid #ff2600; width: 0rpx !important; font-size: 28rpx !important; position: absolute; border-bottom: 60rpx solid rgba(255, 255, 255, 0); height: 0rpx !important; text-align: center; } .text54-clz { border-top: 60rpx solid rgba(255, 255, 255, 0); flex-shrink: 0; border-right: 80rpx solid #07c160; color: #ffffff; flex: 1; bottom: 0rpx; width: 0rpx !important; font-size: 28rpx !important; position: absolute; right: 0rpx; height: 0rpx !important; text-align: center; } .text43-clz { background-color: #07c160; padding-top: 10rpx; color: #ffffff; padding-left: 10rpx; font-size: 28rpx !important; padding-bottom: 10rpx; text-align: center; padding-right: 10rpx; } .flex41-clz { padding-top: 10rpx; border-bottom-left-radius: 12rpx; padding-left: 10rpx; padding-bottom: 10rpx; border-top-right-radius: 12rpx; margin-right: 20rpx; margin-left: 20rpx; box-shadow: 0rpx 2rpx 14rpx rgba(31, 31, 31, 0.09); overflow: hidden; width: calc(100% - 20rpx - 20rpx) !important; border-top-left-radius: 12rpx; margin-top: 20rpx; border-bottom-right-radius: 12rpx; background-image: linear-gradient(180deg, rgba(255, 228, 228, 1) 0%, rgba(255, 255, 255, 0) 39%); margin-bottom: 20rpx; padding-right: 10rpx; } .flex42-clz { margin-left: 10rpx; width: calc(100% - 10rpx - 10rpx) !important; font-size: 28rpx !important; margin-top: 10rpx; margin-bottom: 10rpx; margin-right: 10rpx; } .text36-clz { color: #ff2600; } .text37-clz { color: #07c160; } .flex43-clz { margin-left: 10rpx; border-bottom-left-radius: 12rpx; overflow: hidden; width: calc(100% - 10rpx - 10rpx) !important; border-top-left-radius: 12rpx; margin-top: 10rpx; border-top-right-radius: 12rpx; border-bottom-right-radius: 12rpx; margin-bottom: 10rpx; margin-right: 10rpx; } .text38-clz { background-color: #ff2600; padding-top: 10rpx; color: #ffffff; padding-left: 10rpx; font-size: 28rpx !important; padding-bottom: 10rpx; text-align: center; padding-right: 10rpx; } .flex44-clz { flex-shrink: 0; width: 44rpx !important; height: 20rpx !important; } .text39-clz { flex-shrink: 0; color: #ffffff; top: 0rpx; left: 0rpx; flex: 1; border-left: 30rpx solid #ff2600; width: 0rpx !important; font-size: 28rpx !important; position: absolute; border-bottom: 20rpx solid rgba(255, 255, 255, 0); height: 0rpx !important; text-align: center; } .text40-clz { border-top: 20rpx solid rgba(255, 255, 255, 0); flex-shrink: 0; border-right: 30rpx solid #07c160; color: #ffffff; flex: 1; bottom: 0rpx; width: 0rpx !important; font-size: 28rpx !important; position: absolute; right: 0rpx; height: 0rpx !important; text-align: center; } .text41-clz { background-color: #07c160; padding-top: 10rpx; color: #ffffff; padding-left: 10rpx; font-size: 28rpx !important; padding-bottom: 10rpx; text-align: center; padding-right: 10rpx; } .flex45-clz { margin-left: 10rpx; width: calc(100% - 10rpx - 10rpx) !important; font-size: 28rpx !important; margin-top: 10rpx; margin-bottom: 10rpx; margin-right: 10rpx; } .flex46-clz { background-color: #ffe4e4; padding-top: 6rpx; border-bottom-left-radius: 120rpx; overflow: hidden; color: #ff2600; padding-left: 30rpx; padding-bottom: 6rpx; border-top-left-radius: 120rpx; border-top-right-radius: 120rpx; border-bottom-right-radius: 120rpx; padding-right: 30rpx; } .icon2 { font-size: 36rpx; } .text44-clz { font-weight: bold; font-size: 28rpx !important; } .flex47-clz { background-color: #e1fff4; padding-top: 6rpx; border-bottom-left-radius: 120rpx; overflow: hidden; color: #07c160; padding-left: 30rpx; padding-bottom: 6rpx; border-top-left-radius: 120rpx; border-top-right-radius: 120rpx; border-bottom-right-radius: 120rpx; padding-right: 30rpx; } .icon3-clz { transform: translate(0rpx, 0rpx) rotate(180deg); } .icon3 { font-size: 36rpx; } .text45-clz { font-weight: bold; font-size: 28rpx !important; } .container23285 { padding-left: 0px; padding-right: 0px; } .container23285 { } </style>