<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

      CSS實(shí)現(xiàn)三欄布局的四種方法示例

      2017/2/13 8:25:24   閱讀:1784    發(fā)布者:1784

      前言

      其實(shí)不管是三欄布局還是兩欄布局都是我們?cè)谄綍r(shí)項(xiàng)目里經(jīng)常使用的,
      也許你不知道什么事三欄布局什么是兩欄布局但實(shí)際已經(jīng)在用,
      或許你知道三欄布局的一種或兩種方法,但實(shí)際操作中也只會(huì)
      依賴(lài)那某一種方法,本文具體的介紹了三欄布局的四種方法,并介紹了它的使用場(chǎng)景。

      所謂三欄布局就是指頁(yè)面分為左中右三部分然后對(duì)中間一部分做自適應(yīng)的一種布局方式。

      1.絕對(duì)定位法

      HTML代碼如下:

      <div class="left">Left</div> 
      <div class="main">Main</div> 
      <div class="right">Right</div>

       

      CSS代碼如下:
      //簡(jiǎn)單的進(jìn)行CSS reset 
      body,html{ 
          height:100%; 
          padding: 0px; 
          margin:0px; 
      } 
      //左右絕對(duì)定位 
      .left,.right{ 
          position: absolute; 
          top:0px; 
          background: red; 
          height:100%; 
      } 
      .left{ 
          left:0; 
          width:100px; 
      } 
      .right{ 
          right:0px; 
          width:200px; 
      } 
      //中間使用margin空出左右元素所占據(jù)的空間 
      .main{ 
          margin:0px 200px 0px 100px; 
          height:100%; 
          background: blue; 
      }

      該方法有個(gè)明顯的缺點(diǎn),就是如果中間欄含有最小寬度限制,或是含有寬度
      的內(nèi)部元素,當(dāng)瀏覽器寬度小到一定程度,會(huì)發(fā)生層重疊的情況。

      2. 圣杯布局

      HTML代碼如下:

      //注意元素次序 
      <div class="main">Main</div> 
      <div class="left">Left</div> 
      <div class="right">Right</div>

      CSS代碼如下:

      //習(xí)慣性的CSS reset 
      body,html{ 
          height:100%; 
          padding: 0; 
          margin: 0 
      } 
      //父元素body空出左右欄位 
      body { 
          padding-left: 100px; 
          padding-right: 200px; 
      } 
      //左邊元素更改 
      .left { 
          background: red; 
          width: 100px; 
          float: left; 
          margin-left: -100%; 
          position: relative; 
          left: -100px; 
          height: 100%; 
      } 
      //中間部分 
      .main { 
          background: blue; 
          width: 100%; 
          height: 100%; 
          float: left; 
      } 
      //右邊元素定義 
      .right { 
          background: red; 
          width: 200px; 
          height: 100%; 
          float: left; 
          margin-left: -200px; 
          position: relative; 
          right: -200px; 
      }

      相關(guān)解釋如下:

            (1)中間部分需要根據(jù)瀏覽器寬度的變化而變化,所以要用100%,
      這里設(shè)左中右向左浮動(dòng),因?yàn)橹虚g100%,左層和右層根本沒(méi)有位置上去

            (2)把左層margin負(fù)100后,發(fā)現(xiàn)left上去了,因?yàn)樨?fù)到出窗口沒(méi)位置了,只能往上挪

            (3)按第二步這個(gè)方法,可以得出它只要挪動(dòng)窗口寬度那么寬
      就能到最左邊了,利用負(fù)邊距,把左右欄定位

            (4)但由于左右欄遮擋住了中間部分,于是采用相對(duì)定位方法,
      各自相對(duì)于自己把自己挪出去,得到最終結(jié)果

      3. 雙飛翼布局

      HTML代碼如下:

      <div class="main"> 
          <div class="inner"> 
              Main 
          </div> 
      </div> 
      <div class="left">Left</div> 
      <div class="right">Right</div>

      CSS代碼如下:

      //CSS reset 
      body,html { 
          height:100%; 
          padding: 0; 
          margin: 0 
      } 
      body { 
          /*padding-left:100px;*/ 
          /*padding-right:200px;*/ 
      } 
      .left { 
          background: red; 
          width: 100px; 
          float: left; 
          margin-left: -100%; 
          height: 100%; 
          /*position: relative;*/ 
          /*left:-100px;*/ 
      } 
      .main { 
          background: blue; 
          width: 100%; 
          float: left; 
          height: 100%; 
      } 
      .right { 
          background: red; 
          width: 200px; 
          float: left; 
          margin-left: -200px; 
          height: 100%; 
          /*position:relative;*/ 
          /*right:-200px;*/ 
      } 
      //新增inner元素 
      .inner { 
          margin-left: 100px; 
          margin-right: 200px; 
      }

      圣杯布局實(shí)際看起來(lái)是復(fù)雜的后期維護(hù)性也不是很高,在淘寶UED的探討下,
      出來(lái)了一種新的布局方式就是雙飛翼布局,代碼如上。增加多一個(gè)div就可以
      不用相對(duì)布局了,只用到了浮動(dòng)和負(fù)邊距。和圣杯布局差異的地方已經(jīng)被注釋。

      4. 浮動(dòng)

      HTML代碼如下:

      //注意元素次序 
      <div class="left">Left</div> 
      <div class="right">Right</div> 
      <div class="main">Main</div>

      CSS代碼如下:

      //CSS reset 
      body,html { 
          height:100%; 
          padding: 0; 
          margin: 0 
      } 
      //左欄左浮動(dòng) 
      .left { 
          background: red; 
          width: 100px; 
          float: left; 
          height: 100%; 
      } 
      //中間自適應(yīng) 
      .main { 
          background: blue; 
          height: 100%; 
          margin:0px 200px 0px 100px; 
      } 
      //右欄右浮動(dòng) 
      .right { 
          background: red; 
          width: 200px; 
          float: right; 
          height: 100%; 
      }

      這種方式代碼足夠簡(jiǎn)潔與高效,也容易理解

      總結(jié)

      以上就是這篇文章的全部?jī)?nèi)容了,四種方法其實(shí)只有圣杯布局和雙飛翼布局較難理解,
      但實(shí)際上理解了圣杯布局,雙飛翼布局自然就理解了,希望本文的內(nèi)容對(duì)大
      家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如有疑問(wèn)大家可以多多交流。

      亚洲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>

        • 新宁县| 辉南县| 汽车| 如皋市| 建水县| 玉溪市| 大化| 通城县| 哈尔滨市| 乌拉特前旗| 年辖:市辖区| 泰安市| 亚东县| 华阴市| 翁源县| 景宁| 高要市| 鄂尔多斯市| 大埔县| 淮安市| 鸡西市| 榕江县| 通许县| 土默特右旗| 秦皇岛市| 海丰县| 鹤壁市| 兴化市| 南漳县| 隆昌县| 林甸县| 葫芦岛市| 双柏县| 砚山县| 卢龙县| 武穴市| 防城港市| 江安县| 东台市| 永胜县| 合肥市|