Style-components 基础版

需求: 通过这种写法实现设置样式

const box = document.getElementsByClassName("box")[0]
box.styles`
    background:${"red"}
    width:${"99px"}
    height:${3000}
`

一、在文档原型挂载styles方法

HTMLElement.prototype.styles=function(){
        let allKey = arguments[0],index=0;
        allKey.forEach(item=>{
            index++;
            const style = item.replace(/ |\n|:/g,"")
            //correct 兼容 属性值
            !!style? this.style[style]=correct(style,arguments[index]):'';
        })
        console.log(allKey);
    };

二、实现值的兼容

function correct(style,value){
        function handlePX(value){
            if(!isNaN(value)){
                value+="px";
            }
            return value;
        }
        switch (style){
            case "width":
            case "height":
                return handlePX(value);break;
            // 有其他需要兼容的 可以在此处添加
            default : return value;
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值