布局(IFE basic day7)

1、定位

1.1 靜態(tài)定位

默認(rèn)行為

1.2 相對(duì)定位

position: relative;
如果想為元素設(shè)置層模型中的相對(duì)定位腹殿,需要設(shè)置position:relative(表示相對(duì)定位)旨枯,它通過left蹬昌、right、top攀隔、bottom屬性確定元素在正常文檔流中的偏移位置皂贩。
相對(duì)于以前的位置移動(dòng),偏移前的位置保留不動(dòng)昆汹。在使用相對(duì)定位時(shí)明刷,就算元素被偏移了,但是他仍然占據(jù)著它沒偏移前的空間满粗。

1.3 絕對(duì)定位

配合使用top辈末,bottom,left和right
被設(shè)置了絕對(duì)定位的元素映皆,在文檔流中是不占據(jù)空間的本冲,如果某元素設(shè)置了絕對(duì)定位,那么它在文檔流中的位置會(huì)被刪除劫扒。
注意:絕對(duì)定位是相對(duì)于設(shè)置有display:relative的祖先元素,如果沒有狸膏,最終會(huì)相對(duì)于<html>元素沟饥。

1.4 固定定位

position:fixed
固定定位元素不會(huì)隨瀏覽器窗口的滾動(dòng)條滾動(dòng)而變化,除非你在屏幕中移動(dòng)瀏覽器窗口的屏幕位置湾戳,或改變?yōu)g覽器窗口的顯示大小贤旷,因此固定定位的元素會(huì)始終位于瀏覽器窗口內(nèi)視圖的某個(gè)位置,不會(huì)受文檔流動(dòng)影響砾脑。

1.5 堆疊順序

z-index:1;
z-index值較大的元素將疊加在z-index值較小的元素之上幼驶。對(duì)于未指定此屬性的定位對(duì)象,z-index 值為正數(shù)的對(duì)象會(huì)在其之上韧衣,而 z-index 值為負(fù)數(shù)的對(duì)象在其之下盅藻。z-index屬性適用于定位元素(position屬性值為 relative 或 absolute 或 fixed的對(duì)象),如果元素是沒有定位的畅铭,對(duì)其設(shè)置的z-index會(huì)是無效的氏淑。
查看例子

2、彈性盒子

使用彈性盒子可以方便且靈活地實(shí)現(xiàn)
1)在父內(nèi)容里面垂直居中一個(gè)塊內(nèi)容硕噩。
2)使容器的所有子項(xiàng)占用等量的可用寬度/高度假残,而不管有多少寬度/高度可用。
3)使多列布局中的所有列采用相同的高度炉擅,即使它們包含的內(nèi)容量不同辉懒。

3 阳惹、對(duì)齊方式

3.1 水平居中

1)行內(nèi)元素的水平居中
如果被設(shè)置元素為文本、圖片等行內(nèi)元素時(shí)眶俩,在父元素中設(shè)置text-align:center實(shí)現(xiàn)行內(nèi)元素水平居中莹汤,將子元素的display設(shè)置為inline-block,使子元素變成行內(nèi)元素
2)塊狀元素的水平居中(定寬)
當(dāng)被設(shè)置元素為定寬塊級(jí)元素時(shí)用 text-align:center 就不起作用了仿便√鍐可以通過設(shè)置“左右margin”值為“auto”來實(shí)現(xiàn)居中的。
3)塊狀元素的水平居中(不定定寬)
可以直接給不定寬的塊級(jí)元素設(shè)置text-align:center來實(shí)現(xiàn)嗽仪,也可以給父元素加text-align:center 來實(shí)現(xiàn)居中效果荒勇。當(dāng)不定寬塊級(jí)元素的寬度不要占一行時(shí),可以設(shè)置display 為 inline 類型或inline-block(設(shè)置為 行內(nèi)元素 顯示或行內(nèi)塊元素)

<div class="container">
    <ul>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
    </ul>
</div>

css代碼:

.container{text-align:center;background: beige}
.container ul{list-style:none;margin:0;padding:0;display:inline-block;}
.container li{margin-right:8px;display:inline-block;}

3.2 垂直居中

<div class="wrap line-height">
    <span class="span">111111</span>
</div>

首先設(shè)定兩個(gè)條件即父元素是盒子容器且高度已經(jīng)設(shè)定闻坚。
1)子元素是行內(nèi)元素沽翔,高度是由其內(nèi)容撐開的。
這種情況下窿凤,需要通過設(shè)定父元素的line-height為其高度來使得子元素垂直居中:
css代碼:

.wrap{
            width:200px ;
            height: 300px;
            line-height: 300px;
            border: 2px solid #ccc;
        }
.span{
            background: red;
        }

2)子元素是塊級(jí)元素但是子元素高度沒有設(shè)定
通過給父元素設(shè)定display:table-cell;vertical-align:middle來解決:
css代碼:

.wrap{
       width:200px ;
       height: 300px;
       border: 2px solid #ccc;
    display: table-cell;
    vertical-align: middle;
}
 .non-height{
       background: green;
        }

3)子元素是塊級(jí)元素且高度已經(jīng)設(shè)定
計(jì)算子元素的margin-top或margin-bottom仅偎,計(jì)算方法為父(元素高度-子元素高度)/2:
css代碼:

  .wrap{
            width:200px ;
            height: 300px;
            border: 2px solid #ccc;
        }
.div1{
            width:100px ;
            height: 100px;
            margin-top: 100px;
            background: darkblue;
        } 

3.3 水平垂直居中

1)水平對(duì)齊+行高
text-align + line-height實(shí)現(xiàn)單行文本水平垂直居中

<div class="test" style="background-color: lightblue;width: 200px;">測試文字</div> 

css代碼:

.test{
    text-align: center;
    line-height: 100px;
}

2)水平+垂直對(duì)齊

  1. text-align + vertical-align  
    在父元素設(shè)置text-align和vertical-align,并將父元素設(shè)置為table-cell元素雳殊,子元素設(shè)置為inline-block元素橘沥。
<div class="parent" style="background-color: gray; width:200px; height:100px;">
  <div class="child" style="background-color: lightblue;">測試文字</div>
</div> 

css代碼:

.parent{
    display: table-cell;
    text-align: center;
    vertical-align: middle;
}
.child{
    display: inline-block;
}

2.若子元素是圖像,可不使用table-cell夯秃,而是其父元素用行高替代高度座咆,且字體大小設(shè)為0。子元素本身設(shè)置vertical-align:middle

<div class="parent" style="background-color: gray; width:200px; ">
  <img class="child" src="http://sandbox.runjs.cn/uploads/rs/26/ddzmgynp/img1.gif" width="50%" alt="test">
</div>  

css代碼:

.parent{
    text-align: center;
    line-height: 100px;
    font-size: 0;
}
.child{
    vertical-align: middle;
}

七種實(shí)現(xiàn)左側(cè)固定仓洼,右側(cè)自適應(yīng)兩欄布局的方法

4介陶、圣杯布局

圣杯布局允許:
)有一個(gè)固定寬度側(cè)邊欄的流體中心,
2)允許中心列首先出現(xiàn)在源代碼中色建,
3)允許任何列成為最高哺呜,
4)只需要一個(gè)額外div的標(biāo)記
5)需要非常簡單的CSS,最少代碼兼容

5箕戳、雙飛翼布局

雙飛翼布局某残,為了中間div內(nèi)容不被遮擋,直接在中間div內(nèi)部創(chuàng)建子div用于放置內(nèi)容漂羊,在該子div里用margin-left和margin-right為左右兩欄div留出位置驾锰。

6、元素的BFC特性與自適應(yīng)布局

BFC:塊級(jí)格式化上下文走越,常見觸發(fā)BFC的條件:
1)float的值不為none椭豫。
2)overflow的值為auto,scroll或hidden。
3)display的值為table-cell, table-caption, inline-block中的任何一個(gè)。
4)position的值不為relative和static赏酥。
自適應(yīng)布局實(shí)現(xiàn)的CSS代碼:
1)overflow:auto/hidden IE7+
2)display:inline-block IE6/IE7
3)display:table-cell IE8+
清除浮動(dòng)的通用類語句:

.clearfix {
    *zoom: 1;
}
.clearfix:after {
    content: ''; display: table; clear: both;
}

兩欄或多欄自適應(yīng)布局的通用類語句是(block水平標(biāo)簽喳整,需配合浮動(dòng)):

.cell {
    display: table-cell; width: 9999px;
    *display: inline-block; *width: auto;
}

網(wǎng)頁寬度自適應(yīng)布局三種方法:
1)絕對(duì)定位法
左右兩欄采用絕對(duì)定位,分別固定于頁面的左右兩側(cè)裸扶,中間的主體欄用左右margin值撐開距離框都。于是實(shí)現(xiàn)了三欄自適應(yīng)布局。

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

css代碼:

html,body{margin:0; height:100%;}
#left,#right{position:absolute; top:0; width:200px; height:100%;}
#left{left:0; background:#a0b3d6;}
#right{right:0; background:#a0b3d6;}
#main{margin:0 210px; background:#ffe6b8; height:100%;}

2)margin負(fù)值法
首先呵晨,中間的主體要使用雙層標(biāo)簽魏保。外層div寬度100%顯示,并且浮動(dòng)(例子為左浮動(dòng))摸屠,內(nèi)層div為真正的主體內(nèi)容谓罗,含有左右210像素的margin值。左欄與右欄都是采用margin負(fù)值定位的季二,左欄左浮動(dòng)檩咱,margin-left為-100%,由于前面的div寬度100%與瀏覽器胯舷,所以這里的-100% margin值正好使左欄div定位到了頁面的左側(cè)刻蚯;右側(cè)欄也是左浮動(dòng),其margin-left也是負(fù)值桑嘶,大小為其本身的寬度即200像素炊汹。

<div id="main">
    <div id="body"></div>
</div>
<div id="left"></div>
<div id="right"></div>

css代碼:

html,body{margin:0; height:100%;}
#main{width:100%; height:100%; float:left;}
#main #body{margin:0 210px; background:#ffe6b8; height:100%;}
#left,#right{width:200px; height:100%; float:left; background:#a0b3d6;}
#left{margin-left:-100%;}
#right{margin-left:-200px;}

3)自身浮動(dòng)法
左欄左浮動(dòng),右欄右浮動(dòng)逃顶,主體直接放后面兵扬,就實(shí)現(xiàn)了自適應(yīng)。

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

css代碼:

html,body{margin:0; height:100%;}
#main{height:100%; margin:0 210px; background:#ffe6b8;}
#left,#right{width:200px; height:100%; background:#a0b3d6;}
#left{float:left;}
#right{float:right;}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末口蝠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子津坑,更是在濱河造成了極大的恐慌妙蔗,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疆瑰,死亡現(xiàn)場離奇詭異眉反,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)穆役,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門寸五,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人耿币,你說我怎么就攤上這事梳杏。” “怎么了?”我有些...
    開封第一講書人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵十性,是天一觀的道長叛溢。 經(jīng)常有香客問我,道長劲适,這世上最難降的妖魔是什么楷掉? 我笑而不...
    開封第一講書人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮霞势,結(jié)果婚禮上烹植,老公的妹妹穿的比我還像新娘。我一直安慰自己愕贡,他們只是感情好草雕,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著颂鸿,像睡著了一般促绵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嘴纺,一...
    開封第一講書人閱讀 49,985評(píng)論 1 291
  • 那天败晴,我揣著相機(jī)與錄音,去河邊找鬼栽渴。 笑死尖坤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的闲擦。 我是一名探鬼主播慢味,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼墅冷!你這毒婦竟也來了纯路?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤寞忿,失蹤者是張志新(化名)和其女友劉穎驰唬,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腔彰,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡叫编,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了霹抛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搓逾。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖杯拐,靈堂內(nèi)的尸體忽然破棺而出霞篡,到底是詐尸還是另有隱情世蔗,我是刑警寧澤,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布寇损,位于F島的核電站凸郑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏矛市。R本人自食惡果不足惜芙沥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望浊吏。 院中可真熱鬧而昨,春花似錦惠昔、人聲如沸陪踩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至弧呐,卻和暖如春剪况,著一層夾襖步出監(jiān)牢的瞬間钥星,已是汗流浹背漆改。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來泰國打工心铃, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人挫剑。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓去扣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親樊破。 傳聞我的和親對(duì)象是個(gè)殘疾皇子愉棱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,737評(píng)論 1 92
  • 1. 前言 前端圈有個(gè)“拐芷荩”:在面試時(shí)奔滑,問個(gè)css的position屬性能刷掉一半人,其中不乏工作四五年的同學(xué)顺少。在...
    YjWorld閱讀 4,428評(píng)論 5 15
  • CSS 是什么 css(Cascading Style Sheets)档押,層疊樣式表,選擇器{屬性:值祈纯;屬性:值}h...
    崔敏嫣閱讀 1,475評(píng)論 0 5
  • 《青絲》 ---無念 青青嫩葉柳梢爬, 淺淺枝干隨風(fēng)刮叼耙。 若問今夏何日至腕窥, 待到此樹滿青發(fā)。
    無念兒閱讀 148評(píng)論 0 0
  • 大學(xué)本科的時(shí)候筛婉,有同學(xué)參加了商務(wù)英語的等級(jí)考試簇爆●桑考試結(jié)束之后自我感覺發(fā)揮不好,向我抱怨入蛆,大意是為準(zhǔn)備考試付出了...
    皆末閱讀 394評(píng)論 0 1