代码之家  ›  专栏  ›  技术社区  ›  Kevin Py

删除缩放[复制]后的空白

  •  4
  • Kevin Py  · 技术社区  · 10 年前

    我对规模转换有点问题。我希望调整元素的大小,但当我这样做时,我的旧尺寸占据了空间,而下一个元素将经历这个旧尺寸。 如何删除此约束?

    HTML语言

    <!-- White space with Scale -->
    <div class="scale"></div>
    <div class="scale"></div>
    
    <!-- Whitout Scale -->
    <div></div>
    <div></div>
    

    CSS公司

    div:nth-of-type(even) { background: blue; }
    div:nth-of-type(odd) { background: red; }
    
    div {
      width: 100px;
      height: 100px;
    }
    
    .scale {
      transform: scale(0.5);
      transform-origin: top left;
    }
    

    JS小提琴: https://jsfiddle.net/c7d2s21y/

    感谢您的回复。

    2 回复  |  直到 10 年前
        1
  •  3
  •   wolfitoXtreme    10 年前

    var scaleTo = 0.5,  
      itemWidth = $('.scaleB').width(),
      itemHeight = $('.scaleB').height()
    ;
    
    
    
    function scaleThis(meausure) {
      
      var output = meausure * scaleTo;
          
          
      return output;
      
    }
    
    $('.scaleB').on({
      'mouseover': function(event) {
        
        $(this).css({
          'width' : scaleThis(itemWidth) + 'px',
          'height' : scaleThis(itemHeight) + 'px'
        });
        
      },
      'mouseout': function(event) {
        
        $(this).css({
          'width' : itemWidth + 'px',
          'height' : itemHeight + 'px'
        });
       }
      
    });
    .wrapper {
      background-color: #cccccc;
    }
    .wrapper:after {
      content: "normal";
    }
    .wrapperScale {
      background-color: #dddddd;
    }
    .wrapperScale:after {
      content: "wrapped";
    }
    .wrapper_jQuery:after {
      content: "jQuery";
    }
    .wrapper div:nth-of-type(even),
    .wrapperScale div:nth-of-type(even) { 
      background: blue; 
    }
    
    .wrapper div:nth-of-type(odd),
    .wrapperScale div:nth-of-type(odd) { 
      background: red; 
    }
    
    .scale, .wrapperScale div, .scaleB {
      width: 50px;
      height: 50px;
    }
    
    .scale:hover, .wrapperScale:hover {
      transform: scale(0.5);
      transform-origin: top left;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    
    <div class="wrapper">
    <!-- White space with Scale -->
    <div class="scale"></div>
    <div class="scale"></div>
    </div>
    
    <!-- Whitout Scale -->
    <div class="wrapper wrapperScale">
      <div></div>
      <div></div>
    </div>
    
    <!-- jQuery -->
    <div class="wrapper wrapper_jQuery">
    <div class="scaleB"></div>
    <div class="scaleB"></div>
    </div>

    这就是CSS转换实际上所做的,它不会影响周围的元素,您可以尝试将DIV封装在另一个元素中,并对该元素应用缩放,但它不会影响外部的其他元素,只影响内容,除此之外,您必须通过java Script或js库(如jQuery)操纵DIV的实际大小。

        2
  •  -3
  •   Banti Mathur    10 年前

    你试试这个代码,我希望对你有用:

     <style>
     div:nth-of-type(even) { background: blue; }
     div:nth-of-type(odd) { background: red; }
    
    
     div {
     width: 100px;
     height: 100px;
     }
    
    .scale {
     transform: scale(1);
    transform-origin: top left;
    }
    </style>
    
    推荐文章