代码之家  ›  专栏  ›  技术社区  ›  user7803115

在较小的父对象中水平居中旋转div

  •  -2
  • user7803115  · 技术社区  · 7 年前

    我想在较小的父对象中水平居中旋转-10度的div。

    我希望这样,旋转div的中点位于父块的中心。(我用一些测试文本标记了中间点。但这只是为了标记它)。

    https://jsfiddle.net/ytL9ybww/3/

    body {
          padding:0 0 0 0;
          margin: 0 0 0 0;
          padding-left:300px;
          overflow:hidden;
        }
        
        nav {
          height:100vh;
          width:300px;
          position:fixed;
          top:0;
          left:0;
          background-color:black;
        }
        
        .block {
          width:100%;
          position:relative;
          overflow:hidden;
        }
        
        .rotated-block {
          position:relative;
          z-index:10;
          top:300px;
          left:0;
          text-align:center;
          width: 5000px;
          height:900px;
          background-color:green;
          transform:rotate(-10deg);
        }
    <div class="block">
      <nav>
    
      </nav>
      <div class="rotated-block">
        test
      </div>
    </div>
    1 回复  |  直到 7 年前
        1
  •  2
  •   Paulie_D    7 年前

    首先将块居中(绝对定位和变换),然后旋转它。

    .parent {
      height: 80vh;
      width: 80vw;
      margin: 1em auto;
      position: relative;
      border: 1px solid grey;
    }
    
    .child {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%) rotate(-10deg);
      background: red;
      width: 110%;
      height: 50px;
    }
    
    .center {
      position: absolute;
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: green;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }
    <div class="parent">
      <div class="child"></div>
      <div class="center"></div>
    </div>