[前端學習]css部分學習筆記纯续,第八天

清除浮動

清除浮動的本質(zhì)

  • 在標準流的布局中,很多時候父元素是不會設(shè)置高度的灭袁,直接由子元素來撐開高度猬错。但是當你設(shè)置浮動后,因為子元素脫標了茸歧,所以不會再撐開父元素的高度倦炒,這樣下面的標準流就頂上來影響布局。
  • 在之前學習的布局中我們的做法是直接給父元素寫死高度软瞎,讓它有一個占位逢唤,但是實際工作中有些地方是不能設(shè)置高度的,那怎么解決浮動不占位的問題呢涤浇?答案就是清除浮動鳖藕。

清除浮動方法

  • 清除浮動其實也可以叫做閉合浮動,它的核心原理就是只锭,在父元素最后插入一個小盒子著恩,在父元素里把浮動的元素閉合起來,并告訴父盒子清除浮動蜻展。這樣設(shè)置了清除浮動后页滚,父元素就會自動檢測浮動子元素的高度,不用專門給父元素設(shè)置高度了铺呵。格式如下:
    選擇器:{clear:left|right|both}
  • 對應(yīng)的就是左邊裹驰,右邊,兩邊清除浮動片挂,其中最常用的是both

額外標簽法

  • 就是在盒子的最后加一個空標簽(div幻林,br,p等等)音念,并給該標簽設(shè)置清除浮動沪饺。但是這種方法很早的時候會用,現(xiàn)在用得很少了闷愤,也不推薦使用整葡。

overflow清除浮動

  • 語法: overflow:hidden|auto|scroll
  • 給父元素設(shè)置。使用overflow會觸發(fā)BFC方式(后面會講)讥脐,從而達到清除浮動的效果遭居,三個屬性值隨意寫一個都能達到效果啼器。這個方法有一定的弊端,建議謹慎使用俱萍。

after偽元素清除浮動

  • 語法:
    .clearfix:after {
    content:'.';
    display:block;
    clear:both;
    height:0;
    visibility:hidden;
    }
    .clearfix {
    *zoom:1;
    }
  • 解釋:clearfix是一個通用的清除浮動類名端壳,寫好之后只需要調(diào)用這個類名到標簽中即可。大概原理就是:在元素內(nèi)的最后插入一個元素(不用再html結(jié)構(gòu)中寫)枪蘑,放入一個最簡單的內(nèi)容(空也是可以的)损谦,轉(zhuǎn)換為塊級元素,清除浮動岳颇,高度設(shè)為0照捡,并隱藏這個塊級元素的內(nèi)容。
  • 下面的一個是專門給ie6和ie7用的话侧,因為它們不認識偽元素麻敌。*是只有ie6和ie7識別。
  • 這個方法是現(xiàn)在應(yīng)用得比較多的一種方法掂摔。

after偽元素空余字符法

  • 語法:
    .clearfix:after {
    content:'\200B|\0200';
    display:block;
    clear:both;
    height:0;
    }
    .clearfix {
    *zoom:1;
    }
  • 原理和上一個是一樣的,只是寫法做了一些優(yōu)化赢赊。在插入元素后乙漓,不給它設(shè)置值而是放入\200B或者\0200(零寬度空格)。因為是空的內(nèi)容所以就不用在設(shè)置visibility:hidden來隱藏內(nèi)容了释移,節(jié)省了一點代碼量叭披。

雙偽元素清除法

  • 語法:
    clearfix:before, clearfix:after {
    content:"";
    display:table;
    }
    clearfix:after {
    clear:both;
    }
    .clearfix {
    *zoom:1;
    }
  • 這個方法的意思,給父元素一前一后插入一個元素玩讳,完全把里面浮動的盒子閉合起來涩蜘,并在設(shè)置清除浮動。至于為什么要轉(zhuǎn)換為table元素熏纯,現(xiàn)在還不能理解同诫。強烈推薦使用這種方法來清除浮動。

定位

什么是定位

  • 定位在頁面布局中常用于盒子與盒子之間的層疊關(guān)系樟澜。比如误窖,你想一個盒子壓在另一個盒子上面來做一個立體效果的展示,這種效果使用標準流和浮動幾乎是不可能實現(xiàn)的秩贰,只有定位才能勝任霹俺,并且js也和定位配合的最多。

定位的組成

  • 定位是由邊偏移和定位屬性來配合使用的毒费。并且邊偏移只能應(yīng)用在定位中丙唧。

邊偏移

  • 格式:top|bottom|left|right
  • 看名字就能理解,邊偏移就是與上下左右四條邊的距離觅玻,可以設(shè)置數(shù)值想际,也可以設(shè)置百分比培漏。

靜態(tài)定位

  • 格式:position:static
  • 其實靜態(tài)定位就是標準流的特性,讓每個元素都按照順序從上至下從左到右依次來顯示沼琉。設(shè)置了靜態(tài)定位后北苟,邊偏移就沒有效果了。所以一般靜態(tài)定位使用取消的定位的打瘪。

相對定位

  • 格式:postition:relative
  • 相對定位的兩個重要特性:
    • 它是基于自己本身的位置來做移動的
    • 他依然屬于標準流友鼻,雖然移動了位置,但是原來的占位還是會保留
  • 所以闺骚,它后面的盒子不會受到影響彩扔。

絕對定位

  • 格式:position:absolute;
  • 絕對定位的四個重要特性:
    • 它是基于父元素的位置來進行移動的,如果父元素沒有設(shè)置定位僻爽,那么會基于瀏覽器的可視區(qū)來移動
    • 它是完全脫標的虫碉,當移動后原來的位置就不再占位了
    • 它移動完畢后,會固定位置胸梆,隨著頁面的滾動而滾動敦捧。
    • 如果設(shè)置了絕對定位卻不是邊偏移,那么它首先會脫標碰镜,然后以標準流的顯示方式兢卵,與上一個盒子的底邊線對齊。
    • 一般來說想要實現(xiàn)一個盒子在另一個盒子上绪颖,都是用絕對定位秽荤,因為它不占位置。

子絕父相的原理

  • 子絕父相是在網(wǎng)頁布局經(jīng)常用到的一種方法柠横,就是子元素使用絕對定位窃款,父元素使用相對定位。為什么要這么做呢牍氛?
    • 首先要確定一點晨继,如果子元素要使用絕對定位,那么父元素也是必須要使用定位的搬俊,不然子元素就會以瀏覽器來移動了踱稍。
      然后父親定位的方式,首先排除靜態(tài)定位悠抹,因為靜態(tài)定位就是不定位珠月,根本不考慮。
      其次固定定位楔敌,因為固定定位不會隨著頁面滾動而滾動啤挎,這不符合正常布局理念,所以也排除。
      最后就剩絕對定位和相對定位了庆聘,正常情況下網(wǎng)頁都是以標準流的方式來顯示的胜臊,所以一個盒子它上下都會有盒子。當父元素也是用絕對定位伙判,那么它也不占位置了象对,就會影響下面的盒子,這也是不符合要求的宴抚。
      相對定位才能占位置勒魔,所以最后也是最佳的選擇就是父元素使用相對定位,這也就是子絕父相的由來菇曲。

讓絕對定位的盒子垂直水平居中

  • 因為絕對定位的盒子是脫標的冠绢,所以不能使用margin:0 auto;來實現(xiàn)水平居中,更不論垂直居中了常潮。所以要讓絕對定位的盒子垂直水平居中就要使用另一種方法:
    • 水平居中:先給盒子設(shè)置left:50%的左偏移弟胀,這樣盒子的左邊線就對齊父盒子的水平居中線,然后再讓盒子往左走自身一半的距離喊式,就實現(xiàn)了水平居中孵户。給盒子設(shè)置margin-left:自身一半的負值,就能讓盒子往左走自身的一半距離岔留。
    • 垂直居中:同理夏哭,先給盒子設(shè)置top:50%的上偏移,讓盒子的上邊框?qū)R垂直居中想贸诚,然后再讓盒子往上走自身一半的距離,就實現(xiàn)了垂直居中厕吉。給盒子設(shè)置margin-top:自身一半的負值酱固,就能讓盒子往上走自身的一半距離。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末头朱,一起剝皮案震驚了整個濱河市运悲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌项钮,老刑警劉巖班眯,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異烁巫,居然都是意外死亡署隘,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門亚隙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來磁餐,“玉大人,你說我怎么就攤上這事阿弃≌锱” “怎么了羞延?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長脾还。 經(jīng)常有香客問我伴箩,道長,這世上最難降的妖魔是什么鄙漏? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任嗤谚,我火速辦了婚禮,結(jié)果婚禮上泥张,老公的妹妹穿的比我還像新娘呵恢。我一直安慰自己,他們只是感情好媚创,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布渗钉。 她就那樣靜靜地躺著,像睡著了一般钞钙。 火紅的嫁衣襯著肌膚如雪鳄橘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天芒炼,我揣著相機與錄音瘫怜,去河邊找鬼。 笑死本刽,一個胖子當著我的面吹牛鲸湃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播子寓,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼暗挑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了斜友?” 一聲冷哼從身側(cè)響起炸裆,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鲜屏,沒想到半個月后烹看,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡洛史,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年惯殊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片也殖。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡靠胜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情浪漠,我是刑警寧澤陕习,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站址愿,受9級特大地震影響该镣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜响谓,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一损合、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧娘纷,春花似錦嫁审、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至遏插,卻和暖如春捂贿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背胳嘲。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工厂僧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人了牛。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓颜屠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鹰祸。 傳聞我的和親對象是個殘疾皇子甫窟,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,754評論 1 92
  • 1.CSS基本概念 1.1 CSS的定義 CSS(Cascading Style Sheets)層疊樣式表福荸,主要用...
    寥寥十一閱讀 1,835評論 0 6
  • Web前端開發(fā)精品課讀書筆記[toc] HTML與CSS進階教程 小知識 最新HTML標準文檔說明簡化, 大小寫不...
    hi句身閱讀 400評論 0 0
  • 初始蕴坪,我和你因為懵懂的好感在一起肴掷。 從害羞沒勇氣主動找你敬锐,到每天黏在一起你儂我儂,再到互相挑剔爭吵呆瞻,直到最后兩個人...
    清風韶閱讀 254評論 0 0