首页 > Web开发 > 详细

html+css 关于transform的scale()缩放产生白边的问题

时间:2020-04-26 00:11:26      阅读:826      评论:0      收藏:0      [点我收藏+]

首先是没有进行缩放的图

                                                        技术分享图片

 进行缩放后

     代码:

<style type="text/css">
            * {margin: 0px;padding: 0px;}

            #i {
                width: 300px;
                height: 500px;
                float: left;
                background-color: cornflowerblue;
                transform: scale(0.8);
                -webkit-transform-origin: 0 0;
                
            }
            
            #m {
                float: left;
                background-color: aquamarine;
                width: 300px;
                height: 500px;
            }
        </style>
    </head>
    <body>
        <!-- 第一块 -->
                <p id="i">Margo</p>
        <!-- 第二块 -->
                <p id="m">Margo</p>
    </body>

 

技术分享图片

 

 

  transform布局不会脱离文档流,也不改变文档流的大小和位置。

  所以元素还是占据了定义时的大小

解决方法

  我知道的只有两种方法

方法一:

  把被缩放元素的margin改为负值改的值为: 缩放前的值 - (scale()里面的值*缩放前的值) 即 width = 300-(0.8*300)=60px

margin: 0 -60px 0 0;

技术分享图片

 

 

 

方法二:

  这个方法比方法一复杂,是我在帮其他人布局数据图表时无意间发现的,在网上没找到暂时没找到类似的。

  思路就是在被缩小的外面套一层,并设置外面层的大小为里层缩放后的大小

图示:里面层的实际大小要比外面层大

  • 实线: 为外层,代码中的div标签
  • 虚线: 为里层,对应代码中的p标签

技术分享图片

 

假设最里层为300x500 缩放的值0.8,则缩放后的大小为240x400

再加上: -webkit-transform-origin: 0 0; 把最外层的div的大小设置为缩放后的图像的大小(240x400)

代码:

        <style type="text/css">
            * {margin: 0px;padding: 0px;}

            #one2 {float:left;width: 240px;height: 400px;}
            #two2 {float: left;}
            /* 第一个p标签的css */
            #i {
                width: 300px;
                height: 500px;
                background-color: cornflowerblue;
                transform: scale(0.8);
                -webkit-transform-origin: 0 0;
            }
            /* 第二个p标签的css */
            #m {
                background-color: aquamarine;
                width: 300px;
                height: 500px;
            }
        </style>
    </head>
    <body>
        <!-- 第一块 -->
            <div id="one2">
                <p id="i">Margo</p>
            </div>

        <!-- 第二块 -->
            <div id="two2">
                <p id="m">Margo</p>
            </div>

技术分享图片

 一样的效果(关于两个方法各有什么缺点还不清楚)

html+css 关于transform的scale()缩放产生白边的问题

原文:https://www.cnblogs.com/simpleMirror/p/12776172.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!