美文网首页
rem转rpx前端代码

rem转rpx前端代码

作者: 每天进步一点点5454 | 来源:发表于2022-08-09 17:39 被阅读0次

效果


image.png

代码:

<!DOCTYPE html>
<html>
 
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="../layui/jquery-3.2.1.min.js"></script>
        <style>
            div#newCss {
                border: 1px solid #999;
                width: 504px;
                height: 140px;
            }
        </style>
    </head>
 
    <body>
        <h4>rem样式</h4>
        <textarea id="css" cols="60" rows="10"></textarea>
        <br />
        <input type="button" value="rem转换rpx" onclick="rem2rpx()" />
        <h4>转换后的样式</h4>
        <div id="newCss"></div>
        <input id="aaa">
        <input id="bbb">
        <script type="text/javascript">
            function rem2rpx() {
                var oldCss = document.getElementById("css").value.trim(); //".similar_recommend .title{margin:.3rem 0 0;padding-top:.4rem;color:#666;font-size:.28rem;}"
                //对原样式根据rem进行拆分成数组,这样除了最后一个元素,数组前边的几个元素都是以原rem样式数值结尾
                //拆分后的格式:[".similar_recommend{background:#fff;border-radius:.1", ";height:7.4", ";margin-top:-.3", "}"]
                var newCssArr = oldCss.split("rem")
                var newCss = "" //转换后新的样式变量
                for(var i in newCssArr) {
                    if(i < newCssArr.length - 1) {
                        //非最后一个元素,对字符串按照:再次拆分,把rem样式的数值分离出来进行转换
                        var str = newCssArr[i]
                        var idx = str.lastIndexOf(':')
                        var prevStr = str.substring(0, idx + 1)
                        var nextStr = "" //nextStr格式为    -.3 , -3 , 3 , .3
                        if(str.indexOf('-.') > -1) {
                            //nextStr格式为-.3rem或-3rem
                            nextStr = str.substring(str.indexOf(':-') + 2, str.length)
                            //nextStr格式为.3rem或3rem
                            if(nextStr.indexOf('.') > -1) {
                                nextStr = "0" + nextStr
                            }
                            nextStr = "-" + parseInt(nextStr * 100) + "rpx"
                        } else {
                            nextStr = str.substring(idx + 1, str.length)
                            //处理 nextStr="1px .2"的情况
                            var index = nextStr.indexOf(' ')
                            if(index >= 0) {
                                let str1 = nextStr.substring(0, index)
                                let str2 = nextStr.substring(index + 1, nextStr.length)
                                str2 = str2.indexOf('.') > -1 ? "0" + str2 : str2
                                str2 = parseInt(str2 * 100) + "rpx"
                                nextStr = str1 + ' ' + str2
                            } else {
                                nextStr = nextStr.indexOf('.') > -1 ? "0" + nextStr : nextStr
                                nextStr = parseInt(nextStr * 100) + "rpx"
                            }
                        }
 
                        //重组数组内的样式字符串
                        newCss += prevStr + "" + nextStr
                    } else {
                        //追加最后一个数组元素
                        newCss += newCssArr[i]
                    }
                }
                document.getElementById("newCss").innerHTML = newCss
            }
            $("#bbb").keydown(function(event) {
                if(event.which == 13) {
                    console.log("ok")
                }
            });
        </script>
    </body>
 
</html>

相关文章

  • rem转rpx前端代码

    效果 代码:

  • 15.rem转rpx

  • flex+rpx布局+高度自适应(当屏幕分辨率改变,页面自适应分

    1、flex和rpx的布局这里不做赘述(这里的rpx源于网页应用中的rem,是一个意思),可以直接下载代码体验效果...

  • 小程序之WXSS

    WXSS和CSS区别有以下几个方面: 尺寸单位rpx 样式导入 内联样式 选择器 尺寸单位rpx rpx和rem相...

  • rpx和rem

    一、 rpx:全称“response pixel”,即响应式的px,rpx单位是微信小程序中css的尺寸单位,它可...

  • Canvas 在移动端的自适应

    一 前端 这里直接以小程序为例子:因为小程序的自适应单位是rpx,就像我们用Rem去做适配一样,而Canvas的a...

  • 最全的CSS尺寸单位介绍

    前端开发过程中,尺寸单位是我们必须用到的,下面我们对css中常见的几种尺寸单位px,em,rem,rpx进行逐一介...

  • wxss和css的区别

    新增了rpx尺寸单位 css中需要手动进行像素单位换算,ps:rem wxss在底层支持新的尺寸单位rpx,在不同...

  • 浅谈rem与rpx布局

    rem大家或许都比较熟悉,而rpx则是腾讯在公测小程序时所推崇;二者实质并无太大的区别,在很多的小白前端开发阶段会...

  • Taro 学习笔记

    1.Taro.pxTransform(10) // 小程序:rpx,H5:rem(js 中尺寸转换)

网友评论

      本文标题:rem转rpx前端代码

      本文链接:https://www.haomeiwen.com/subject/labnwrtx.html