云迈博客

您现在的位置是:首页 > 前端技术 > css相关 > 正文

css相关

纯css图标绘制图标

俗人将庸2022-07-28css相关149
css图标绘制图标示例:.IcoPhoto{position:relative;width:calc(var(--size)*100rpx);height:

css图标绘制

图标示例:

<view class="IcoPhoto" :style="{'--color':'#f00','--size':1}"></view>
.IcoPhoto{
    position: relative;
    width:calc(var(--size) * 100rpx);
    height:calc(var(--size) * 70rpx);
    background: var(--color);
    border-radius: calc(var(--size) * 16rpx);
    display: flex;align-items: center;justify-content: center;
    &::before,&::after{
        position: absolute;content: '';z-index: 1;
    }
    &::before{
        width: calc(var(--size) * 30rpx);height: 0;
        border-bottom: calc(var(--size) * 9rpx) solid var(--color);
        border-left: calc(var(--size) * 8rpx) solid transparent;
        border-right: calc(var(--size) * 8rpx) solid transparent;
        top: calc(var(--size) * -9rpx);
    }
    &::after{
        width: calc(var(--size) * 36rpx);
        height: calc(var(--size) * 36rpx);
        border-radius: 100%;
        border: calc(var(--size) * 8rpx) solid #fff;
    }
}

坐标图标

图标示例:

<view class='IcoLoaction' :style="{'--color':'#00f','--size':1.5}"></view>
.IcoLoaction{
    position: relative;
    width: calc(var(--size) * 80rpx);
    height: calc(var(--size) * 100rpx);
    display: flex;
    align-items: center;
    justify-content: center;
    &::before{
        position: relative;
        content: '';
        width: calc(var(--size) * 60rpx);
        height: calc(var(--size) * 60rpx);
        border-radius: 50% 50% 50% 0;
        transform: rotate(-45deg);
        border: calc(var(--size) * 20rpx) solid var(--color);
        box-sizing: border-box;
        top: calc(var(--size) * -10rpx);
        z-index: 1;
    }
    &::after{
        position: absolute;
        content: '';
        width: calc(var(--size) * 50rpx);
        height: calc(var(--size) * 16rpx);
        background: var(--color);
        border-radius: 100%;
        bottom: calc(var(--size) * 6rpx);
        opacity: .16;
    }
}

图标拐弯

图标示例:

<view class="IcoCc"></view>
.IcoCc{
    width: 100px;
    height: 50px;
    border-top:30px solid red;
    border-top-left-radius: 80px 80px;
}

图标录音

图标示例:

<view class="IcoRecord" :style="{'--color':'#f00','--size':1}"></view>
.IcoRecord{
    position:relative;
    display:inline-flex;
    align-items: center;
    justify-content: center;
    width:calc(var(--size) * 80rpx);
    height:calc(var(--size) * 100rpx);
    box-sizing: border-box;
    border-bottom: calc(var(--size) * 6rpx) solid var(--color);
    &::before{
        content:"";
        position:absolute;
        bottom:calc(var(--size) * 12rpx);
        width:calc(var(--size) * 40rpx);
        height:calc(var(--size) * 80rpx);
        border: calc(var(--size) * 6rpx) solid var(--color);
        border-radius: calc(var(--size) * 20rpx);
        box-sizing: border-box;
    }
    &::after{
        content:"";
        position:absolute;
        bottom:0;
        width:calc(var(--size) * 50rpx);
        height:calc(var(--size) * 44rpx);
        border:calc(var(--size) * 6rpx) solid var(--color);
        border-top:0;
        border-radius:0 0 calc(var(--size) * 40rpx) calc(var(--size) * 40rpx);
    }
}

图标刷新

图标示例:

<view class="IcoRefresh" :style="{'--color':'#f00','--size':1.8}">
    <text></text><text></text>
</view>
.IcoRefresh{
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    flex-direction: column;
    position: relative;
    width: calc(var(--size) * 100rpx);
    height: calc(var(--size) * 100rpx);
    transform:rotate(-20deg);
    // animation: ref-rotate 2s infinite linear;//开启旋转动画
    &::before,&::after{
        position: absolute;
        content: '';
        width: 0;
        height: 0;
        z-index: 1;
        border: calc(var(--size) * 15rpx) solid red;
        border-bottom-color: transparent;
        border-left-color: transparent;
        border-right-color: transparent;
    }
    &::before{
        left: calc(var(--size) * 4rpx);
        top: calc(var(--size) * 40rpx);
    }
    &::after{
        right: calc(var(--size) * 4rpx);
        bottom: calc(var(--size) * 40rpx);
        transform:rotate(180deg);
    }
    text{
        position: relative;
        display: inline-flex;
        width: calc(var(--size) * 100rpx);
        height: calc(var(--size) * 42rpx);
        overflow: hidden;
        &:last-child{
            transform:rotate(180deg);
        }
        &::before{
            position: relative;
            content: '';
            margin: calc(var(--size) * 10rpx) auto 0;
            width: calc(var(--size) * 80rpx);
            height: calc(var(--size) * 80rpx);
            border: calc(var(--size) * 12rpx) solid #f00;
            border-radius: 100%;
            box-sizing: border-box;
        }
    }
}

@keyframes ref-rotate {
  0% {transform:rotate(-20deg);}
  100% {transform:rotate(-380deg);}
}

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~