css布局

https://blog.csdn.net/sunshine_zcc/article/details/51622599

第一次寫博客,語言組織不好炼蹦,請大家諒解!

相信很多人都搜過圣杯布局和雙飛翼布局,也知道他們的由來,在這里我就不一一贅述了悄窃,今天主要講的是當我遇到兩個布局時,我是怎樣一步一步從開始到實現(xiàn)的過程蹂窖,例如:剛開始我也不懂為什么圣杯布局和雙飛翼布局的區(qū)別轧抗,不懂圣杯布局為什么會有相對定位等一些問題,在這里給大家講下我的理解瞬测,如有錯誤横媚,歡迎批評指正。

好了月趟,接下來開始今天的寫文章之旅灯蝴!

圣杯布局和雙飛翼布局實現(xiàn)的問題都是三列布局,兩邊定寬孝宗,中間自適應(yīng)布局穷躁,要注意的是中間欄(重要的東西)要在放在文檔流前面以優(yōu)先渲染。

圣杯布局

1因妇、首先定義三列折砸,為它們設(shè)置簡單的css樣式,代碼如下:

<!-- 圣杯布局 --><!DOCTYPE html><html><head><style>             .left{            background: #E79F6D;            width:150px;            float:left;        }        .main{            background: #D6D6D6;            width:100%;            float:left;          }        .right{            background: #77BBDD;            width:190px;            float:left;        }</style></head>    <body>   <div class="con">           <div class="main">Main</div>        <div class="left">Left</div>            <div class="right">Right</div>  </div>    </body></html>

實現(xiàn)效果圖:[圖片上傳失敗...(image-d3f8b5-1537022698948)]

這就是普通的讓三個div左浮動顯示出來的效果沙峻;

2、我們讓Left和Right與main在同一排两芳,這里需要用到margin-left的負值摔寨,這里如果margin-left是負值,我理解的是在此基礎(chǔ)上往左邊移怖辆,設(shè)置Left的margin-left:-100%是复,也就是往左移main的整個寬度,這時Left的左邊緣跟main的左邊緣重疊竖螃,即Left的150px寬覆蓋住了main的150px寬淑廊;[圖片上傳失敗...(image-b17713-1537022698948)]

這時Right跑到左邊了,再對Right設(shè)置margin-left:-190px;即right也跑到上面去了特咆,Right的右邊緣和main的右邊緣對齊季惩,Right的寬度覆蓋了main的右邊的寬度;現(xiàn)在Left和Right都跑上面去了,但是需要注意的是main的值不見了画拾,因為它被覆蓋了啥繁,設(shè)置left和right的margin值只是改變Left和Right的位置,對于main來說還是在以前的位置上青抛,接下來要考慮的問題就是如何定位main的位置旗闽?[圖片上傳失敗...(image-9342a2-1537022698948)]

3、需要給con容器加padding值蜜另,padding值的作用是給這整個容器均移動padding值适室,如在剛開始Left和Right沒上移的時候,給con加padding值的效果如下:

[圖片上傳失敗...(image-e7f9c-1537022698948)]

現(xiàn)在在Left和Right以及main都在同一排的情況下举瑰,加padding的值捣辆,就把main的定位到合適的位置了,但是這時的問題是:Left和Right也跟著一起縮了嘶居,所以要把Left和Right定位帶之前的位置罪帖,該怎么定位呢?

4邮屁、這時Left和Right需要用到css 的left屬性了整袁,left 屬性規(guī)定元素的左邊緣,該屬性定義了定位元素左外邊距邊界與其包含塊左邊界之間的偏移。注意使用屬性left的時候要給這個元素定位佑吝,絕對定位和相對定位都可以坐昙,如果不使用定位的話沒有效果,具體為什么我也不知道芋忿,大家可以自行百度炸客。

Left的css樣式加上:position:relative;left:-150px; 同理css的right屬性也是如此,position:relative;right:-190px; Left和Right回到它們各自的位置上戈钢,OK痹仙,完成圣杯的布局,效果圖貼上:

[圖片上傳失敗...(image-8a9ea6-1537022698948)]

[圖片上傳失敗...(image-3b1bf5-1537022698948)]

完整代碼:

<!-- 圣杯布局 -->
<!DOCTYPE html>
<html>
<head>
<style>      
        .con {
            padding-left: 150px;
        padding-right: 190px;
        }
        .left{
            background: #E79F6D;
            width:150px;
            float:left;
            margin-left: -100%;
            position: relative;
            left:-150px;
        }
        .main{
            background: #D6D6D6;
            width:100%;
            float:left; 
        }
        .right{
            background: #77BBDD;
            width:190px;
            float:left;
            margin-right: -190px;
            position: relative;//ls的理解這句可以不用
            right: -190px;//ls的理解這句可以不用
        }
 
</style>
 
</head>
    <body>
    <div class="con">
            <div class="main">Main</div>
        <div class="left">Left</div>
            <div class="right">Right</div>
    </div>
    </body>
</html>

雙飛翼布局

雙飛翼布局可以看成是對圣杯布局的改進殉了,因為圣杯布局用到的標簽屬性較多开仰,用著也較麻煩,所以淘寶玉伯大大就提出來雙飛翼的布局薪铜,雙飛翼是把三列布局比作鳥众弓,中間欄是鳥身,兩邊寬是鳥的兩翼隔箍,重要的是鳥的身體擺好谓娃,再安兩翼。思路和圣杯布局一樣蜒滩,這里我還是以上一個作例子滨达,用到main奶稠,left,right(其實用main sub extra更形象)弦悉。前兩步都是一樣的窒典,重要的是第三步,在前兩步的完成后已經(jīng)形成同行排列稽莉,只不過main值被覆蓋了瀑志,圣杯布局的第三步是給con容器添加padding屬性,而雙飛翼布局是為main里面的內(nèi)容再加一個div污秆,讓main的內(nèi)容包含在內(nèi)層div里劈猪,

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

這時,只要設(shè)置mc的margin屬性就可以實現(xiàn)三列布局了良拼,而且main也正常顯示战得;這里,不用設(shè)置con容器的padding屬性庸推,也不用給Left和Right運用left常侦,right屬性,因為設(shè)置padding屬性就是為了不覆蓋main的值贬媒,現(xiàn)在將main里的內(nèi)容放在一個div里聋亡,再為它設(shè)置margin屬性,也就實現(xiàn)了不遮擋main里面的內(nèi)容值际乘,因此雙飛翼布局使用屬性個數(shù)減少坡倔,看著更簡便。代碼如下:

<!-- 雙飛翼布局 --><!DOCTYPE html><html><head><style>              .left{            background: #E79F6D;            width:150px;            float:left;            margin-left: -100%;        }        .main{            background: #D6D6D6;            width:100%;            float:left;         }        .mc {            margin-left: 150px;        }        .right{            background: #77BBDD;            width:190px;            float:left;            margin-right: -190px;        } </style> </head>    <body>    <div class="con">            <div class="main">                <div class="mc">Main</div>            </div>            <div class="left">Left</div>            <div class="right">Right</div>    </div>    </body></html>

OK脖含,兩個布局的過程講解結(jié)束罪塔,謝謝大家,歡迎大家批評指正养葵!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末征堪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子关拒,更是在濱河造成了極大的恐慌请契,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夏醉,死亡現(xiàn)場離奇詭異,居然都是意外死亡涌韩,警方通過查閱死者的電腦和手機畔柔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來臣樱,“玉大人靶擦,你說我怎么就攤上這事腮考。” “怎么了玄捕?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵踩蔚,是天一觀的道長。 經(jīng)常有香客問我枚粘,道長馅闽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任馍迄,我火速辦了婚禮福也,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘攀圈。我一直安慰自己暴凑,他們只是感情好,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布赘来。 她就那樣靜靜地躺著现喳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪犬辰。 梳的紋絲不亂的頭發(fā)上嗦篱,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天,我揣著相機與錄音忧风,去河邊找鬼默色。 笑死,一個胖子當著我的面吹牛狮腿,可吹牛的內(nèi)容都是我干的腿宰。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼缘厢,長吁一口氣:“原來是場噩夢啊……” “哼吃度!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起贴硫,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤椿每,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后英遭,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體间护,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年挖诸,在試婚紗的時候發(fā)現(xiàn)自己被綠了汁尺。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡多律,死狀恐怖痴突,靈堂內(nèi)的尸體忽然破棺而出搂蜓,到底是詐尸還是另有隱情,我是刑警寧澤辽装,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布帮碰,位于F島的核電站,受9級特大地震影響拾积,放射性物質(zhì)發(fā)生泄漏殉挽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一殷勘、第九天 我趴在偏房一處隱蔽的房頂上張望此再。 院中可真熱鬧,春花似錦玲销、人聲如沸输拇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽策吠。三九已至,卻和暖如春瘩绒,著一層夾襖步出監(jiān)牢的瞬間猴抹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工锁荔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蟀给,地道東北人。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓阳堕,卻偏偏與公主長得像跋理,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子恬总,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案前普? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 13,761評論 1 92
  • 1. 負邊距在讓元素偏移時和position: relative有什么區(qū)別拭卿? 通過負邊距進行偏移的元素,它會放棄原...
    Timmmmmmm閱讀 396評論 0 0
  • 前言 溫馨提示:本文較長贱纠,圖片較多峻厚,本來是想寫一篇 CSS 布局方式的,但是奈何 CSS 布局方式種類太多并且實現(xiàn)...
    sunshine小小倩閱讀 3,142評論 0 59
  • 碎碎念 CSS的中文名是層疊樣式表谆焊,他的作用只有一個目木,那就是美化網(wǎng)頁。 由于坎坷的發(fā)展歷程,css一直為人詬病的地...
    愛吃薯片的內(nèi)存條閱讀 1,045評論 0 1
  • 練功與練拳刽射, 兩者要兼修。 功夫把根扎剃执, 拳法枝葉展誓禁。 練拳不練功, 老來一場空肾档。 練功不練拳摹恰, 猶如無舵船。 功...
    若水Dewlight閱讀 129評論 0 1