• <tbody id="9je1r"></tbody><tbody id="9je1r"><acronym id="9je1r"><rp id="9je1r"></rp></acronym></tbody>
      • <acronym id="9je1r"><acronym id="9je1r"><rp id="9je1r"></rp></acronym></acronym>

        亚洲无码Aⅴ,视频1页精品,欧美系列一区二区,曰韩色999

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

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

        前言

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

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

        1.絕對定位法

        HTML代碼如下:

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

         

        CSS代碼如下:
        //簡單的進(jìn)行CSS reset 
        body,html{ 
            height:100%; 
            padding: 0px; 
            margin:0px; 
        } 
        //左右絕對定位 
        .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%,左層和右層根本沒有位置上去

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

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

              (4)但由于左右欄遮擋住了中間部分,于是采用相對定位方法,
        各自相對于自己把自己挪出去,得到最終結(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í)際看起來是復(fù)雜的后期維護(hù)性也不是很高,在淘寶UED的探討下,
        出來了一種新的布局方式就是雙飛翼布局,代碼如上。增加多一個(gè)div就可以
        不用相對布局了,只用到了浮動(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èi)容了,四種方法其實(shí)只有圣杯布局和雙飛翼布局較難理解,
        但實(shí)際上理解了圣杯布局,雙飛翼布局自然就理解了,希望本文的內(nèi)容對大
        家的學(xué)習(xí)或者工作能帶來一定的幫助,如有疑問大家可以多多交流。

        亚洲无码Aⅴ,视频1页精品,欧美系列一区二区,曰韩色999
            • <tbody id="9je1r"></tbody><tbody id="9je1r"><acronym id="9je1r"><rp id="9je1r"></rp></acronym></tbody>
            • <acronym id="9je1r"><acronym id="9je1r"><rp id="9je1r"></rp></acronym></acronym>
              宁城县| 萨嘎县| 巴马| 武城县| 盈江县| 定边县| 红安县| 开远市| 济源市| 凤冈县| 武宣县| 衡东县| 凌云县| 鄄城县| 陕西省| 凤翔县| 江陵县| 伽师县| 舒兰市| 贞丰县| 海城市| 通辽市| 明溪县| 铅山县| 井冈山市| 桦南县| 彭州市| 宜兰市| 额尔古纳市| 子洲县| 旌德县| 霍山县| 莒南县| 东阿县| 伊宁市| 华宁县| 广水市| 彭山县| 沁源县| 长海县| 巴林左旗|