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

如何扩展节宽度:100%使用css

  •  0
  • Husna  · 技术社区  · 7 年前

    我在里面有一部分 width: 1180px; vw 但没有得到,但一些额外的空间来了。有人能推荐我吗?使用CSS还有其他方法吗。

    .wrapper {
      width: 100%;
      position: relative;
      background: #ccc;
    }
    
    .inner {
      width: 1180px;
      margin: 0 auto;
      background: pink;
    }
    
    .box1 {
      height: 50px;
      background: red;
    }
    
    .box2 {
      height: 50px;
      background: green;
      margin-left: calc(-100vw/2 + 100%/2);
      margin-right: calc(-100vw/2 + 100%/2);
      width: 100vw;
    }
    <div class="wrapper">
      <div class="inner">
        <div class="box1"></div>
        <div class="box2"></div>
    
      </div>
    </div>
    4 回复  |  直到 7 年前
        1
  •  0
  •   Pete Irfan TahirKheli    7 年前

    您可以使用负边距-这种方法的唯一问题是,如果页面获得垂直滚动,这将添加一个水平滚动,因为100vw没有考虑垂直滚动导致的20px:

    body {
      margin: 0;
    }
    
    .wrapper {
      width: 100%;
      position: relative;
      background: #ccc;
    }
    
    .inner {
      width: 1180px;
      margin: 0 auto;
      background: pink;
    }
    
    .box1 {
      height: 50px;
      background: red;
    }
    
    .box2 {
      height: 50px;
      background: green;
      width: 100%;
    }
    
    @media screen and (min-width:1180px) {
      .box2 {
        margin: 0 calc(((100vw - 1180px) / 2) * -1);
        width: auto;
      }
    }
    <div class="wrapper">
      <div class="inner">
        <div class="box1"></div>
        <div class="box2"></div>
      </div>
    </div>

        2
  •  2
  •   Temani Afif    7 年前

    width 使用 vw

    .wrapper {
      width: 100%;
      position: relative;
      background: #ccc;
    }
    
    .inner {
      width: 1180px;
      margin: 0 auto;
      background: pink;
    }
    
    .box1 {
      height: 50px;
      background: red;
    }
    
    .box2 {
      height: 50px;
      background: green;
      margin-left: calc(-100vw/2 + 100%/2);
      margin-right: calc(-100vw/2 + 100%/2);
    }
    @media all and (max-width:1180px) {
      .box2 { 
        margin:0;
      }
    }
    <div class="wrapper">
      <div class="inner">
        <div class="box1"></div>
        <div class="box2"></div>
    
      </div>
    </div>
        3
  •  -1
  •   Vedika Basarkar    7 年前

    .wrapper {
      width: 100%;
      position: relative;
      background: #ccc;
    }
    
    .inner {
      width: 1180px;
      margin: 0 auto;
    }
    
    .box1 {
      height: 50px;
      background: red;
    }
    
    .box2 {
      height: 50px;
      background: green;
    }
    <div class="wrapper">
      <div class="inner">
        <div class="box1"></div>
        <div class="box2"></div>
    
      </div>
    </div>
        4
  •  -1
  •   shaghayegh sheykholeslami    7 年前

    试试这个:

    .wrapper {
      width: 100%;
      position: relative;
      background: #ccc;
    }
    
    .inner {
      width: 1180px;
      margin: 0 auto;
      background: pink;
    }
    
    .box1 {
      height: 50px;
      background: red;
    }
    
    .box2 {
      height: 50px;
      background: green;
      width: 100%;
    }
    <div class="wrapper">
      <div class="inner">
        <div class="box1"></div>
        <div class="box2"></div>
    
      </div>
    </div>