代码之家  ›  专栏  ›  技术社区  ›  Orkhan Aliyev

考虑到填充物,在两个方向拉伸元素

css
  •  0
  • Orkhan Aliyev  · 技术社区  · 4 年前

    我对CSS很陌生,所以请提前为这个问题道歉。我知道这很容易,但我不能创建一个在两个方向都完全拉伸的元素(请考虑填充)。以下是我的尝试:

    * {
       background-color: lightblue;
    }
    
    body {
      display: flex;
      justify-content: left;
      overflow:hidden;
       height: 100%;
    }
    .timeline {
      width: 85%;
      height: 25%;
      background: #ECF1F524;
      mix-blend-mode: normal;
      backdrop-filter: blur(15px);
      overflow: hidden;
      position: absolute;
      box-shadow: 0px 20px 53px -30px rgba(95, 102, 173, 0.566816);
      border-radius: 30px;
      
      padding-top: 100px;
      padding-right: 100px;
      padding-bottom: 100px;
      padding-left: 100px;
    }
    <html>
    <body>
      <div class="main">
        <div class="timeline"/>
    </div>
    </body>
    </html>
    1 回复  |  直到 4 年前
        1
  •  1
  •   Mirco Bellagamba    4 年前

    在代码中,您混合了不同的技术。实现该结果的一种方法是使用“静态”定位(默认设置),如下所示。我建议你看一下 box sizing 在与填充物斗争时的属性。通常,设置 box-sizing: border-box 适用于所有元素。

    另一个棘手的部分是设置全高。所有父元素都应该有一个 height: 100% 伸展整个宽度。

    * {
      box-sizing: border-box;
    }
    
    html,
    body,
    .main {
      background-color: lightblue;
      height: 100%;
      margin: 0;
      padding: 4px;
    }
    
    .timeline {
      width: 100%;
      height: 100%;
      background: #ECF1F524;
      mix-blend-mode: normal;
      backdrop-filter: blur(15px);
      box-shadow: 0px 20px 53px -30px rgba(95, 102, 173, 0.566816);
      border-radius: 30px;
      padding-top: 100px;
      padding-right: 100px;
      padding-bottom: 100px;
      padding-left: 100px;
    }
    <html>
    
    <body>
      <div class="main">
        <div class="timeline" />
      </div>
    </body>
    
    </html>