css浮動和定位

1. 浮動元素有什么特征鹊汛?對父容器、其他浮動元素并淋、普通元素、文字分別有什么影響?

  • 浮動元素會脫離文檔流(不會對普通元素的布局產(chǎn)生影響)珍昨。
  • 向左/向右浮動县耽,直到碰到父元素或者另一個浮動元素(如果父容器寬度不夠無法容納水平排列的浮動元素,那么其它浮動塊兒向下移動,直到有足夠的空間,如果浮動元素的高度不同,那么向下移動的時候可能被卡住)镣典。
  • 普通流中的元素?zé)o法感知到浮動元素(會出現(xiàn)被浮動元素覆蓋的現(xiàn)象)兔毙,但是框的文本內(nèi)容會受到浮動元素的影響,會移動以留出空間給浮動元素(產(chǎn)生文字環(huán)繞效果)。
  • 浮動會導(dǎo)致父元素高度坍塌兄春。

2. 清除浮動指什么? 如何清除浮動? 兩種以上方法

浮動會導(dǎo)致父元素高度坍塌(因為浮動元素脫離了文檔流澎剥,并不占據(jù)文檔流的位置,自然父元素也就不能被撐開赶舆,所以沒了高度)哑姚,為了解決高度坍塌問題祭饭,就要清除浮動:

  • clear屬性:只要在最后添加一個div,設(shè)置clear=both樣式叙量。缺點是增加了一個無意義的標(biāo)簽倡蝙。
  • 對父容器設(shè)置適合高度,缺點是需要手動計算高度绞佩。
  • 使父容器形成BFC寺鸥,對父容器設(shè)置
float: left/right
overflow: hidden/auto/scroll
display: table-cell/table-caption/inline-block
position: absolute/fixed

但是使用float的時候會使父容器長度縮短,而且還有個重要缺陷——父容器float解決了其塌陷問題品山,那么父容器的父容器怎么辦胆建?overflow屬性會影響滾動條和絕對定位的元素;position會改變元素的定位方式

  • 通用的方法
.clearfix{
     *zoom:1;
 }
 .clearfix:after{
     content:"";
     display:block;
     clear:left;        /*方法1*/
 }
  .clearfix{
   *zoom:1;
 }
 .clearfix:after{
   content:"";
     display:table;
     clear:both;        /*方法2*/
 }

3. 有幾種定位方式谆奥,分別是如何實現(xiàn)定位的眼坏,參考點是什么,使用場景是什么酸些?

普通流
  • position: static是默認(rèn)值宰译,從左到右,從上至下排列
  • position: relative元素位置是相對于它在普通流中的位置發(fā)生變化(元素仍然保持其未定位前的形狀魄懂,它原本所占的空間仍保留,用于對元素的微調(diào)沿侈、配合絕對定位來使用)
絕對定位(應(yīng)用場景:彈窗,滾動圖按鈕等)
  • position: absolute市栗,將該元素從文檔流中刪除缀拭,原來的占位不再存在,相對于距離最近的非static祖先元素位置定位填帽。如果元素沒有已定位的祖先元素蛛淋,那么他的位置就相對于初始包含塊html來定位demo,不論該元素為塊級元素還是內(nèi)聯(lián)級元素篡腌,定位后該元素將以塊級元素的形式顯示褐荷。
  • position: fixd,效果類似absolute只是是相對于當(dāng)前視窗定位。
浮動定位(應(yīng)用場景:讓文字圍繞起來)

浮動的元素可以在左右移動嘹悼,直到它的外邊框邊緣碰到包含塊或另一個浮動元素的邊緣叛甫。浮動的元素離普通流。如果包含塊太窄杨伙,無法容納水平排列的浮動元素其监,那么其他浮動元素向下移動,直到有足夠多的空間限匣。如果浮動元素的高度不同抖苦,那么當(dāng)它們向下移動時可能會被其他浮動元素卡住。行內(nèi)元素會圍繞著浮動框排列

4. z-index 有什么作用? 如何使用?

z-index 屬性設(shè)置元素的堆疊順序。
擁有更高堆疊順序的元素總是會處于堆疊順序較低的元素的前面(元素可擁有負(fù)z-index 屬性值睛约;z-index 僅能在定位元素上奏效鼎俘;非同級關(guān)系和非父子關(guān)系定位元素之間的堆疊順序,要向上追溯到其為兄弟關(guān)系的父元素上辩涝,先比較其z-index值贸伐,只有父輩元素中的z-index值較大的后代子元素才能超過z-index值較小的父輩元素及其子孫元素。

5. position:relative和負(fù)margin都可以使元素位置發(fā)生偏移?二者有什么區(qū)別

position:relative發(fā)生偏移后元素仍然保持其未定位前的形狀怔揩,它原本所占的空間仍保留捉邢,并且不會影響其他元素;而負(fù)margin則會影響其他元素商膊。

6. BFC 是什么伏伐?如何生成 BFC?BFC 有什么作用晕拆?舉例說明

塊級格式化上下文藐翎。
浮動,絕對定位元素实幕,inline-blocks, table-cells, table-captions,和overflow的值不為visible的元素吝镣,(除了這個值已經(jīng)被傳到了視口的時候)將創(chuàng)建一個新的塊級格式化上下文。
元素滿足下列任何一個條件即可生成BFC

  • float的值不為none
  • position的值不為static或者relative
  • display的值為 table-cell, table-caption, inline-block, flex, 或者 inline-flex
  • overflow的值不為visible
    通過創(chuàng)建一個新的BFC我們可以防止外邊距折疊昆庇;使用BFC來包含浮動元素(即清除浮動)末贾;使用BFC來防止文字圍繞浮動元素。

7. 在什么場景下會出現(xiàn)外邊距合并整吆?如何合并拱撵?如何不讓相鄰元素外邊距合并?給個父子外邊距合并的范例

當(dāng)兩個垂直外邊距相遇時表蝙,它們將形成一個外邊距拴测。

合并規(guī)則:
  • 兩個margin都是正值的時候,取兩者的最大值府蛇;
  • 當(dāng) margin 都是負(fù)值的時候昼扛,取的是其中絕對值較大的,然后欲诺,從0位置,負(fù)向位移渺鹦;
  • 當(dāng)有正有負(fù)的時候扰法,先取出負(fù) margin 中絕對值中最大的,然后毅厚,和正 margin 值中最大的 margin 相加塞颁。
  • 所有毗鄰的margin要一起參與運算,不能分步進(jìn)
    被非空內(nèi)容,padding祠锣,border酷窥,clear 分隔開,或使用BFC可以阻止外邊距合并伴网。
    例子
    代碼
    alert
    表單
    模態(tài)框
    導(dǎo)航欄
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蓬推,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子澡腾,更是在濱河造成了極大的恐慌沸伏,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件动分,死亡現(xiàn)場離奇詭異毅糟,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)澜公,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進(jìn)店門姆另,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人坟乾,你說我怎么就攤上這事迹辐。” “怎么了糊渊?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵右核,是天一觀的道長。 經(jīng)常有香客問我渺绒,道長贺喝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任宗兼,我火速辦了婚禮躏鱼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘殷绍。我一直安慰自己染苛,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布主到。 她就那樣靜靜地躺著茶行,像睡著了一般。 火紅的嫁衣襯著肌膚如雪登钥。 梳的紋絲不亂的頭發(fā)上畔师,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機(jī)與錄音牧牢,去河邊找鬼看锉。 笑死姿锭,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伯铣。 我是一名探鬼主播呻此,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼腔寡!你這毒婦竟也來了焚鲜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤蹬蚁,失蹤者是張志新(化名)和其女友劉穎恃泪,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體犀斋,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡贝乎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了叽粹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片览效。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖虫几,靈堂內(nèi)的尸體忽然破棺而出锤灿,到底是詐尸還是另有隱情,我是刑警寧澤辆脸,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布但校,位于F島的核電站,受9級特大地震影響啡氢,放射性物質(zhì)發(fā)生泄漏状囱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一倘是、第九天 我趴在偏房一處隱蔽的房頂上張望亭枷。 院中可真熱鬧,春花似錦搀崭、人聲如沸叨粘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽升敲。三九已至,卻和暖如春轰传,著一層夾襖步出監(jiān)牢的瞬間驴党,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工绸吸, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留鼻弧,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓锦茁,卻偏偏與公主長得像攘轩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子码俩,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,724評論 2 351

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案度帮? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 13,742評論 1 92
  • 浮動元素有什么特征?對父容器稿存、其他浮動元素笨篷、普通元素、文字分別有什么影響?浮動的元素會脫離文檔流瓣履,向左或者向右移動...
    饑人谷_wanpp閱讀 668評論 0 49
  • 浮動元素的特征及影響 特征: 浮動模型也是一種可視化格式模型率翅,浮動的框可以左右移動(根據(jù)float屬性值而定),直...
    Joey的企鵝閱讀 888評論 0 0
  • 1.浮動元素有什么特征袖迎?對父容器冕臭、其他浮動元素、普通元素燕锥、文字分別有什么影響? 浮動元素不在文檔的普通流中辜贵,它可以...
    高進(jìn)哥哥閱讀 375評論 0 0
  • 一,浮動元素有什么特征归形?對父容器托慨、其他浮動元素、普通元素暇榴、文字分別有什么影響? 浮動模型是一種可視化格式模型厚棵,浮動...
    DeeJay_Y閱讀 862評論 0 4