html+css 關於transform的scale()縮放產生白邊的問題


首先是沒有進行縮放的圖

                                                        

 進行縮放后

     代碼:

<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>

 一樣的效果(關於兩個方法各有什么缺點還不清楚)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM