<strike id="3tkic"><sup id="3tkic"></sup></strike>

  1. <ul id="3tkic"></ul>
      <b id="3tkic"><legend id="3tkic"></legend></b>
      <b id="3tkic"><meter id="3tkic"></meter></b>

    • <strike id="3tkic"></strike>

      <blockquote id="3tkic"></blockquote>

    • 亚洲AV无码国产在丝袜线观看_亚洲第一页A∨在线_亚洲国产人成在线观看69网站_无码日韩人妻AV一区免费l

      三列自適應(yīng)布局

      2016/11/11 8:50:09   閱讀:1770    發(fā)布者:1770

      分析了兩列自適應(yīng)布局的實現(xiàn)思路后,會覺得三列自適應(yīng)布局的實現(xiàn)原理其實和他一模一樣,
      不過是多了一個盒子而已。

      第一類,浮動在前:

      <div class="left"></div> 
      <div class="right"></div> 
      <div class="main"></div>

      方法一:float+margin

      .main { 
          margin-left: 150px; 
          margin-right: 100px; 
      } 
      .left { 
          float: left; 
          width: 150px; 
      } 
      .right { 
          float: right; 
          width: 100px; 
      }

      方法二:float+BFC

      .main { 
          overflow: hidden; 
      } 
      .left { 
          float: left; 
          width: 150px; 
      } 
      .right { 
          float: right; 
          width: 100px; 
      }

       

      第二類,主要內(nèi)容在前:

      方法三:float+負(fù)邊距+relative

      <div class="main"></div> 
      <div class="left"></div> 
      <div class="right"></div>

      這里和兩列布局有些不同,在兩列布局中,.main只需要右移給.left空出位置就可以了,
      所以給他一個margin-left就能解決。而在三列布局中,他不僅需要給.left騰出空間,還要給.
      right騰出空間,此時margin已經(jīng)無能為力了,所以需要他們?nèi)齻€外面的盒子來做這件事情:

      body { 
          padding-left: 150px; 
          padding-right: 100px; 
      }

      這樣子就會產(chǎn)生一個問題,給body添加了padding之后,.main的寬度就減小了,這就意味著
      .left的margin-left值也會減小,于是,當(dāng).main的寬度減小到小于.left的寬度時,
      .left的負(fù)邊距已經(jīng)不能為他創(chuàng)造足夠的空間到上面一行了,他就會被擠下去。所以,
      為了避免這個問題,需要給包裹盒子設(shè)置一個最小寬度,當(dāng)屏幕寬度小于這個值時,他將不再收縮。

      .main { 
          float: left; 
          width: 100%; 
      } 
      .left { 
          float: left; 
          position: relative; 
          left: -150px; 
          margin-left: -100%; 
          width: 150px; 
      } 
      .right { 
          float: left; 
          position: relative; 
          right: -100px; 
          margin-left: -100px; 
          width: 100px; 
      } 
      body { min-width: 150px; 
          padding-left: 150px; 
          padding-right: 100px; 
      }

       

      方法四:float+負(fù)邊距+新盒子

      <div class="main"> 
          <div class="main-content"></div> 
      </div> 
      <div class="left"></div> 
      <div class="right"></div>

      這時的問題是,當(dāng)屏幕寬度小于.left和.right寬度之和時,.main-content即中間那列
      已經(jīng)完全被擠沒了,所以,同樣需要給他們外面的盒子設(shè)置一個最小寬度:

      .main { 
          float: left; 
          width: 100%; 
      } 
      .left { 
          margin-left: -100%; 
          float: left; 
          width: 150px; 
      } 
      .right { 
          margin-left: -100px; 
          float: left; 
          width: 100px; 
      } 
      .main-content { 
          margin-left: 150px; 
          margin-right: 100px; 
      } 
      body { 
          min-width:500px; 
      }

       

      方法五:flexbox

      <div class="container"> 
          <div class="main"></div> 
          <div class="left"></div> 
          <div class="right"></div> 
      </div>
      .container { 
          min-width: 500px; 
          display: flex; 
      } 
      .main { 
          margin: 0 10px; 
          order: 1; 
          flex: 1; 
      } 
      .left { 
          width: 150px; 
      } 
      .right { 
          order:2; 
          width: 100px; 
      }

       

      亚洲AV无码国产在丝袜线观看_亚洲第一页A∨在线_亚洲国产人成在线观看69网站_无码日韩人妻AV一区免费l
      <strike id="3tkic"><sup id="3tkic"></sup></strike>

      1. <ul id="3tkic"></ul>
          <b id="3tkic"><legend id="3tkic"></legend></b>
          <b id="3tkic"><meter id="3tkic"></meter></b>

        • <strike id="3tkic"></strike>

          <blockquote id="3tkic"></blockquote>

        • 锡林浩特市| 开封市| 中山市| 应城市| 辽源市| 吉隆县| 太仓市| 南平市| 通化市| 西乌珠穆沁旗| 宝应县| 历史| 荃湾区| 句容市| 梁河县| 乐平市| 屏东市| 无为县| 平昌县| 明光市| 乐至县| 江达县| 凤台县| 达州市| 栾城县| 疏勒县| 永州市| 临武县| 巴里| 芒康县| 浦县| 女性| 密山市| 宁南县| 南丹县| 准格尔旗| 张家港市| 沙洋县| 济南市| 彭泽县| 东乌珠穆沁旗|