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

附加多个div并使其响应

  •  0
  • GonzaloPani  · 技术社区  · 6 年前

    该死的家伙们,

    这就是我想要实现的: Loading

    这是我现在的密码。我尝试过附件修复之类的东西,但主要的问题是,当我使用最大高度/宽度时,图像会保持缩放,文本会根据网站的宽度向右移动。

    body {
      background: #111 url("");
      background-size: 25vmin;
      background-repeat: no-repeat;
      background-position: center 40%;
      height: 100vh;
      margin: 0;
    }
    
    .logo {
      background: url("https://openclipart.org/download/256338/whitecircle.svg");
      background-size: 25vmin;
      background-repeat: no-repeat;
      position: absolute;
      left: 28%;
      bottom: 10vh;
      height: 25vh;
      width: 100px;
      max-width: 150px;
    }
    
    h1 {
      color: #fff;
      position: absolute;
      bottom: 20vh;
      left: 35%;
    }
    
    .progress {
      width: 400px;
      max-width: 85vw;
      height: 8px;
      position: absolute;
      bottom: 20vh;
      left: 50%;
      background: rgba(255, 255, 255, 0.5);
      transform: translate(-50%, -50%);
      overflow: hidden;
    }
    
    .progress:after {
      content: '';
      display: block;
      width: 100%;
      height: 8px;
      background: #fff;
      animation: load 5s linear;
    }
    
    @-moz-keyframes load {
      0% {
        width: 0%;
      }
      100% {
        width: 100%;
      }
    }
    
    @-webkit-keyframes load {
      0% {
        width: 0%;
      }
      100% {
        width: 100%;
      }
    }
    
    @-o-keyframes load {
      0% {
        width: 0%;
      }
      100% {
        width: 100%;
      }
    }
    
    @keyframes load {
      0% {
        width: 0%;
      }
      100% {
        width: 100%;
      }
    }
    <div class="logo"> </div>
    <h1 class="title"> Loading </h1>
    <div class="progress"> </div>
    1 回复  |  直到 6 年前
        1
  •  1
  •   Roy Scheffers suresh sunkari    6 年前

    我通常要做的是,创建一个容器,其中包含所有相关的项,以使一个项响应,并且许多部分需要紧密协作。然后在容器中,我使用%对齐项,这样它们可以很好地缩放。主容器(在我的示例中称为 loader )我用vh和vw的宽度和高度。

    有一种方法可以解决这个问题。我还用一个用css做成的圆替换了SVG。这样就不需要加载图像。它将使你的网页资源不那么沉重。如果您特别想使用SVG,请告诉我,我可以更新示例。

    装载机 div,以便在调整窗口大小时可以看到它是如何调整大小的。复制到页面时将其删除。

    body {
      height: 100vh;
      margin: 0;
      background-color: black;
      display: flex;
      justify-content: center;
      align-items: center;
    }
    
    .loader {
      position: relative;
      height: 30vh;
      width: 50vw;
      min-width: 200px;
      min-height: 100px;
      border: 1px solid #444; // added to see the responsiveness
    }
    
    .circle {
      width: 55px;
      height: 55px;
      bottom: calc(40% - 27.5px);
      left: -2px;
      position: absolute;
      border: 5px solid white;
      border-radius: 50%;
    }
    
    h1 {
      color: #fff;
      position: absolute;
      left: 75px;
      bottom: 32%;
    }
    
    .progress {
      position: absolute;
      width: calc(100% - 60px);
      height: 8px;
      bottom: 40%;
      left: 60px;
      background: rgba(255, 255, 255, 0.5);
      overflow: hidden;
    }
    
    .progress:after {
      content: '';
      display: block;
      width: 100%;
      height: 8px;
      background: #fff;
      animation: load 5s linear;
    }
    
    @-moz-keyframes load {
      0% {
        width: 0%;
      }
      100% {
        width: 100%;
      }
    }
    
    @-webkit-keyframes load {
      0% {
        width: 0%;
      }
      100% {
        width: 100%;
      }
    }
    
    @-o-keyframes load {
      0% {
        width: 0%;
      }
      100% {
        width: 100%;
      }
    }
    
    @keyframes load {
      0% {
        width: 0%;
      }
      100% {
        width: 100%;
      }
    }
    <div class="loader">
      <!--<div class="logo"> </div>-->
      <!--<img class="img-logo" src="https://openclipart.org/download/256338/whitecircle.svg">-->
      <div class="circle"></div>
      <h1 class="title">Loading</h1>
      <div class="progress"></div>
    </div>