CSS-仿遥控器按钮

最近做一个控制扫地机器人前进后退向左向右的功能,整理了一个html和css代码。

 

效果图:

HTML:

<div class="control-wrapper">
    <div class="control-btn control-top"></div>
    <div class="control-btn control-left"> </div>
    <div class="control-btn control-bottom"></div>
    <div class="control-btn control-right"></div>
    <div class="control-round">
        <div class="control-round-inner"></div>
    </div>
</div>

CSS: 

        .control-wrapper {
            position: relative;
            width: 50vw;
            height: 50vw;
            max-width: 300px;
            max-height: 300px;
            min-width: 240px;
            min-height: 240px;
            margin: 0 auto;
            border-radius: 50%;
        }
        .control-btn {
            position: absolute;
            width: 38%;
            height: 38%;
            display: flex;
            align-items: center;
            justify-content: center;
            border: 1px solid #78aee4;
            box-sizing: border-box;
            transition: all .3s linear;
        }
        .control-btn:after {
            content: '';
            position: absolute;
            width: 60%;
            height: 60%;
            background: #fff;
            z-index: 2;
        }
        .control-btn:before {
            content: '';
            position: relative;
            display: block;
            width: 16px;
            height: 16px;
            border-top: 3px solid #78aee4;
            border-right: 3px solid #78aee4;
            border-radius: 0 4px 0 0;
            box-sizing: border-box;
            z-index: 2;
        }
        .control-top {
            top: 0;
            left: 50%;
            transform: translateX(-50%) rotate(-45deg);
            border-radius: 4px 100% 4px 4px;
        }
        .control-top:before {
            transform: translate(30%, -25%);
        }
        .control-top:after {
            left: 0;
            bottom: 0;
            border-top: 1px solid #78aee4;
            border-right: 1px solid #78aee4;
            border-radius: 0 100% 0 0;
        }
        .control-bottom {
            left: 50%;
            bottom: 0;
            transform: translateX(-50%) rotate(45deg);
            border-radius: 4px 4px 100% 4px;
        }
        .control-bottom:before {
            transform: translate(25%, 25%) rotate(90deg);
        }
        .control-bottom:after {
            top: 0;
            left: 0;
            border-bottom: 1px solid #78aee4;
            border-right: 1px solid #78aee4;
            border-radius: 0 0 100% 0;
        }
        .control-left {
            top: 50%;
            left: 0;
            transform: translateY(-50%) rotate(45deg);
            border-radius: 4px 4px 4px 100%;
        }
        .control-left:before {
            transform: translate(-25%, 30%) rotate(180deg);
        }
        .control-left:after{
            right: 0;
            top: 0;
            border-bottom: 1px solid #78aee4;
            border-left: 1px solid #78aee4;
            border-radius: 0 0 0 100%;
        }
        .control-right {
            top: 50%;
            right: 0;
            transform: translateY(-50%) rotate(45deg);
            border-radius: 4px 100% 4px 4px;
        }
        .control-right:before {
            transform: translate(30%, -25%);
        }
        .control-right:after {
            left: 0;
            bottom: 0;
            border-top: 1px solid #78aee4;
            border-right: 1px solid #78aee4;
            border-radius: 0 100% 0 0;
        }
        .control-round {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 51.2%;
            height: 51.2%;
            background: #fff;
            border-radius: 50%;
        }
        .control-round-inner {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            display: flex;
            justify-content: center;
            align-items: center;
            width: 66%;
            height: 66%;
            border: 1px solid #78aee4;
            border-radius: 50%;
        }
        .control-round-inner:after {
            content: "| |";
            display: block;
            width: 50px;
            line-height: 50px;
            text-align: center;
            background: #78aee4;
            font-weight: bolder;
            color: #fff;
            border-radius: 50%;
        }

注意:CSS很多重复样式没有提出来

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值