CSS深度操作(1)

一杈抢、浮動(dòng)

  • 塊元素在文檔流中默認(rèn)垂直排列印叁,所以這個(gè)三個(gè)div自上至下依次排開
  • 如果希望塊元素在頁面中水平排列曹仗,可以使塊元素脫離文檔流使用float來使元素浮動(dòng)榨汤,從而脫離文檔流
  • 可選值:
    1 none,默認(rèn)值怎茫,元素默認(rèn)在文檔流中排列
    2 left收壕,元素會(huì)立即脫離文檔流,向頁面的左側(cè)浮動(dòng)
    3 right,元素會(huì)立即脫離文檔流蜜宪,向頁面的右側(cè)浮動(dòng)
  • 當(dāng)為一個(gè)元素設(shè)置浮動(dòng)以后(float屬性是一個(gè)非none的值)虫埂,元素會(huì)立即脫離文檔流,元素脫離文檔流以后圃验,它下邊的元素會(huì)立即向上移動(dòng)元素浮動(dòng)以后掉伏,會(huì)盡量向頁面的左上或這是右上漂浮,直到遇到父元素的邊框或者其他的浮動(dòng)元素
  • 如果浮動(dòng)元素上邊是一個(gè)沒有浮動(dòng)的塊元素损谦,則浮動(dòng)元素不會(huì)超過塊元素
<style type="text/css">
    .box1{
            width: 600px;
            height: 200px;
            background-color: red;
            float: left;
}
</style>

二岖免、文字繞圖

浮動(dòng)的元素不會(huì)蓋住文字岳颇,文字會(huì)自動(dòng)環(huán)繞在浮動(dòng)元素的周圍照捡,所以我們可以通過浮動(dòng)來設(shè)置文字環(huán)繞圖片的效果

<style type="text/css">
    .box1{
            width: 600px;
            height: 200px;
            background-color: red;
            float: left;
}
    .p1{
            /*height: 200px;*/
            background-color: yellow;
}
</style>

三、內(nèi)聯(lián)元素的浮動(dòng)

  • 在文檔流中话侧,子元素的寬度默認(rèn)占父元素的全部
  • 當(dāng)元素這只浮動(dòng)以后栗精,會(huì)完全脫離文檔流
  • 塊元素脫離文檔流后,寬度和高度都會(huì)被內(nèi)容撐開
  • 內(nèi)聯(lián)元素脫離文檔流后會(huì)成為塊元素
<style type="text/css">
p{
           float: left;
           width: 100px;
           height: 100px;
           background-color: yellow;
</style>

四瞻鹏、高度塌陷及解決辦法

導(dǎo)讀塌陷:在文檔流中悲立,父元素的高度默認(rèn)是被子元素?fù)伍_的,也就是子元素多高新博,父元素就多高但是當(dāng)為子元素設(shè)置浮動(dòng)以后薪夕,子元素會(huì)完全脫離文檔流,此時(shí)將會(huì)導(dǎo)致子元素?zé)o法撐起父元素的高度赫悄,導(dǎo)致父元素的高度塌陷由于父元素的高度塌陷了原献,則父元素下的所有元素都會(huì)向上移動(dòng),這樣將會(huì)導(dǎo)致頁面布局混亂所以在開發(fā)中一定要避免出現(xiàn)高度塌陷的問題,

  • 解決辦法1
    我們可以將父元素的高度寫死埂淮,以避免塌陷的問題出現(xiàn)姑隅,但是一旦高度寫死,父元素的高度將不能自動(dòng)適應(yīng)子元素的高度倔撞,所以這種方案是不推薦使用的
<style type="text/css">
.box1{
         /*為box1設(shè)置一個(gè)邊框*/
            border: 10px red solid;
            height: 100px;}
.box2{
            width: 100px;
            height: 100px;
            background-color: blue;
            float: left;}
</style>
  • 解決方法2
    根據(jù)W3C的標(biāo)準(zhǔn)讲仰,在頁面中元素都一個(gè)隱含的屬性叫做Block Formatting Context(塊的格式化環(huán)境)簡稱BFC,該屬性可以設(shè)置打開或者關(guān)閉痪蝇,默認(rèn)是關(guān)閉的
    當(dāng)開啟元素的BFC以后鄙陡,元素將會(huì)具有如下的特性:
    1.父元素的垂直外邊距不會(huì)和子元素重疊
    2.開啟BFC的元素不會(huì)被浮動(dòng)元素所覆蓋
    3.開啟BFC的元素可以包含浮動(dòng)的子元素
    如何開啟元素的BFC
    1.設(shè)置元素浮動(dòng)
    - 使用這種方式開啟,雖然可以撐開父元素躏啰,但是會(huì)導(dǎo)致父元素的寬度丟失柔吼,而且使用這種方式也會(huì)導(dǎo)致下邊的元素上移,不能解決問題
    2.設(shè)置元素絕對(duì)定位
    3.設(shè)置元素為inline-block
    - 可以解決問題丙唧,但是會(huì)導(dǎo)致寬度丟失愈魏,不推薦使用這種方式
    4.將元素的overflow設(shè)置為一個(gè)非visible的值
    推薦方式:將overflow設(shè)置為hidden是副作用最小的開啟BFC的方式
<style type="text/css">
.box1{
        overflow: hidden;}
</style>
  • 解決方法3
    可以直接在高度塌陷的父元素的最后,添加一個(gè)空白的div,由于這個(gè)div并沒有浮動(dòng)培漏,所以他是可以撐開父元素的高度的然后再對(duì)其進(jìn)行清除浮動(dòng)溪厘,這樣可以通過這個(gè)空白的div來撐開父元素的高度,基本沒有副作用使用這種方式雖然可以解決問題牌柄,但是會(huì)在頁面中添加多余的結(jié)構(gòu)
<style type="text/css">
.box1{
        clear: both;} 這里還可以寫left和right單清除一邊 bonth是兩邊同時(shí)清除
</style>
<div class="box1"><div>
  • 解決方法4
    通過after偽類畸悬,選中box1的后邊可以通過after偽類向元素的最后添加一個(gè)空白的塊元素,然后對(duì)其清除浮動(dòng)珊佣,這樣做和添加一個(gè)div的原理一樣蹋宦,可以達(dá)到一個(gè)相同的效果,而且不會(huì)在頁面中添加多余的div咒锻,這是我們最推薦使用的方式冷冗,幾乎沒有副作用
<style type="text/css">
.box1:after{
      /*添加一個(gè)內(nèi)容*/
            content: "";
            /*轉(zhuǎn)換為一個(gè)塊元素*/
            display: block;
            /*清除兩側(cè)的浮動(dòng)*/
            clear: both;
}
</style>
<div class="box1"><div>

五、定位

定位指的就是將指定的元素?cái)[放到頁面的任意位置通過定位可以任意的擺放元素通過position屬性來設(shè)置元素的定位
可選值:
static:默認(rèn)值惑艇,元素沒有開啟定位
relative:開啟元素的相對(duì)定位
absolute:開啟元素的絕對(duì)定位
fixed:開啟元素的固定定位(也是絕對(duì)定位的一種)

  • 相對(duì)定位
    1.當(dāng)開啟了元素的相對(duì)定位以后蒿辙,而不設(shè)置偏移量時(shí),元素不會(huì)發(fā)生任何變化
    2.相對(duì)定位是相對(duì)于元素在文檔流中原來的位置進(jìn)行定位
    3.相對(duì)定位的元素不會(huì)脫離文檔流
    4.相對(duì)定位會(huì)使元素提升一個(gè)層級(jí)
    5.相對(duì)定位不會(huì)改變?cè)氐男再|(zhì)滨巴,塊還是塊思灌,內(nèi)聯(lián)還是內(nèi)聯(lián)
<style type="text/css">
當(dāng)開啟了元素的定位(position屬性值是一個(gè)非static的值)時(shí),可以通過left right top bottom四個(gè)屬性來設(shè)置元素的偏移量
一般選擇水平方向的一個(gè)偏移量和垂直方向的偏移量來為一個(gè)元素進(jìn)行定位
.box1{
         position: relative;
        left: 100px;
        top: 200px;
}
</style>
<div class="box1"><div>
  • 絕對(duì)定位
    1.開啟絕對(duì)定位恭取,會(huì)使元素脫離文檔流
    2.開啟絕對(duì)定位以后泰偿,如果不設(shè)置偏移量,則元素的位置不會(huì)發(fā)生變化
    3.絕對(duì)定位是相對(duì)于離他最近的蜈垮、開啟了定位的祖先元素進(jìn)行定位的(一般情況耗跛,開啟了子元素的絕對(duì)定位,都會(huì)同時(shí)開啟父元素的相對(duì)定位窃款,如果所有的祖先元素都沒有開啟定位课兄,則會(huì)相對(duì)于瀏覽器窗口進(jìn)行定位
    4.絕對(duì)定位會(huì)使元素提升一個(gè)層級(jí)
    5.絕對(duì)定位會(huì)改變?cè)氐男再|(zhì):內(nèi)聯(lián)元素變成塊元素,塊元素的寬度和高度默認(rèn)都被內(nèi)容撐開
<style type="text/css">
.box{width: 200px;
    height: 200px;
    background-color: yellow;
    position: absolute;
}
.box1{
      position: absolute;
      left: 100px;
      top: 100px;
}
</style>
<div class ="box"></div>
<div class="box1"><div>
  • 固定定位
    當(dāng)元素的position屬性設(shè)置fixed時(shí)晨继,則開啟了元素的固定定位固定定位也是一種絕對(duì)定位烟阐,它的大部分特點(diǎn)都和絕對(duì)定位一樣
    不同的是:固定定位永遠(yuǎn)都會(huì)相對(duì)于瀏覽器窗口進(jìn)行定位
    固定定位會(huì)固定在瀏覽器窗口某個(gè)位置,不會(huì)隨滾動(dòng)條滾動(dòng)
    IE6不支持固定定位
<style type="text/css">
.box{width: 200px;
    height: 200px;
    background-color: yellow;
    position: fixed;
    left: 0px;
    top: 0px;
}
</style>
<div class ="box"></div>
<div class="box1"><div
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末紊扬,一起剝皮案震驚了整個(gè)濱河市蜒茄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌餐屎,老刑警劉巖檀葛,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異腹缩,居然都是意外死亡屿聋,警方通過查閱死者的電腦和手機(jī)空扎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來润讥,“玉大人转锈,你說我怎么就攤上這事〕睿” “怎么了撮慨?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長脆粥。 經(jīng)常有香客問我砌溺,道長,這世上最難降的妖魔是什么变隔? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任规伐,我火速辦了婚禮,結(jié)果婚禮上弟胀,老公的妹妹穿的比我還像新娘楷力。我一直安慰自己喊式,他們只是感情好孵户,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著岔留,像睡著了一般夏哭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上献联,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天竖配,我揣著相機(jī)與錄音,去河邊找鬼里逆。 笑死进胯,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的原押。 我是一名探鬼主播胁镐,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼诸衔!你這毒婦竟也來了盯漂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤笨农,失蹤者是張志新(化名)和其女友劉穎就缆,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谒亦,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡竭宰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年空郊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片切揭。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡渣淳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出伴箩,到底是詐尸還是另有隱情入愧,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布嗤谚,位于F島的核電站棺蛛,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏巩步。R本人自食惡果不足惜旁赊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望椅野。 院中可真熱鬧终畅,春花似錦、人聲如沸竟闪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽炼蛤。三九已至妖爷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間理朋,已是汗流浹背絮识。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嗽上,地道東北人次舌。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像兽愤,于是被迫代替她去往敵國和親彼念。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348