CSS浮動與定位

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

1.特征:浮動元素會脫離正常的文檔流,按照其外邊距指定的位置相對于它的上一個(gè)塊級元素(或父元素)顯示。2.對父容器:浮動元素脫離了普通文檔流,所以將不能撐開父容器,造成父容器塌陷。3.對其他浮動元素:如果浮動方向相同,那么其他浮動元素會按照順序在浮動方向上依次排列。當(dāng)父容器的寬度不夠,浮動元素到下一行排列時(shí),還會被前面較高的浮動元素所阻擋,出現(xiàn)“卡住”的情況,如下圖:

4.對普通元素:普通元素將不能感知到浮動元素的存在而占據(jù)它的位置,且處于浮動元素下層。5.對文字:文字會圍繞浮動元素排列。

清除浮動指什么? 如何清除浮動?

清除浮動就是清楚浮動元素給周圍元素帶來的影響:對浮動元素的兄弟元素來說,清除浮動就是使它們規(guī)定的一邊不能與浮動元素相鄰,用clear:left/right/both;對浮動元素的父元素來說,清除浮動就是解決浮動元素造成的父元素塌陷問題,可以使用的方法有:
1.在父元素中再加一個(gè)空的div,設(shè)置其樣式為clear:both。
2.BFC清理浮動,形成BFC的方法有:float:left/right; overflow:hidden/auto/scroll; display:inline-block; position:absolute/fixed等。

有幾種定位方式,分別是如何實(shí)現(xiàn)定位的,參考點(diǎn)是什么,使用場景是什么?

inherit 規(guī)定應(yīng)該從父元素繼承 position 屬性的值。
static 默認(rèn)值,沒有定位,元素出現(xiàn)在正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明)。
relative 生成相對定位的元素,相對于元素本身正常位置進(jìn)行定位。不會改變其他元素的位置。參考點(diǎn)是該元素原來的位置,應(yīng)用場景例如對圖片位置做細(xì)微調(diào)整。
absolute 生成絕對定位的元素,相對于static定位以外的第一個(gè)祖先元素進(jìn)行定位,元素的位置通過 left, top, right 以及 bottom 屬性進(jìn)行規(guī)定,設(shè)置后會脫離普通文檔流。參考點(diǎn)是最近的已定位祖先元素。絕對定位使用場景例如:設(shè)置上級元素為position:relative,然后可以利用絕對定位使該元素相對于上級元素移動到任意位置。
fixed 生成絕對定位的元素,相對于瀏覽器窗口進(jìn)行定位。元素的位置通過 left, top, right 以及 bottom 屬性進(jìn)行規(guī)定。參考點(diǎn)是瀏覽器窗口,使用場景例如需要使某個(gè)元素在瀏覽器窗口的固定位置顯示。
sticky CSS3新屬性,表現(xiàn)類似position:relative和position:fixed的合體,兼容性差。

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

作用:z-index 屬性設(shè)置元素的堆疊順序。使用:設(shè)置z-index更高的元素會處于z-index較低的元素的前面。

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

使用相對定位不會改變其他元素的位置,而改變margin則會對其他元素的位置造成影響。

BFC 是什么?如何生成 BFC?BFC 有什么作用?舉例說明

BFC的全稱是 Block Format Content,塊級格式化上下文。它是一個(gè)獨(dú)立的渲染區(qū)域,只有Block-level box參與, 它規(guī)定了內(nèi)部的Block-level Box如何布局,并且與這個(gè)區(qū)域外部毫不相干。生成BFC的方法有:float:left/right; overflow:hidden/auto/scroll; display:inline-block; 作用:BFC會阻止垂直外邊距折疊;BFC不會重疊浮動元素;BFC可以包含浮動舉例:因?yàn)锽FC可以包含浮動元素,那么只要讓父容器生成BFC,就可以解決其子元素浮動造成的父元素塌陷問題:

在什么場景下會出現(xiàn)外邊距合并?如何合并?如何不讓相鄰元素外邊距合并?

當(dāng)兩個(gè)垂直外邊距相遇時(shí),它們將形成一個(gè)外邊距。合并后的外邊距的高度等于兩個(gè)發(fā)生合并的外邊距的高度中的較大者。
外邊距合并常見的方式有三種:相鄰元素外邊距合并:兩個(gè)元素都設(shè)置外邊距時(shí),垂直的外邊距是這兩個(gè)外邊距的較大值而不是它們的和(合并);嵌套元素的外邊距合并:父子元素如果沒有邊框和內(nèi)邊距把這兩個(gè)元素分開的話,它們的垂直外邊距會發(fā)生合并;自身外邊距合并:元素內(nèi)部為空,自身的上下外邊距相遇時(shí),也會發(fā)生合并。
阻止相鄰元素外邊距合并的方法:雖然設(shè)置浮動可以阻止相鄰元素外邊距合并,但為了清除外邊距合并而設(shè)置浮動的做法會帶來很多副作用,所以可以在設(shè)置margin值的時(shí)候調(diào)大一些。
父子外邊距合并示例:

Paste_Image.png

效果練習(xí):

alert效果: https://jsbin.com/nobinewego/
表單效果: http://js.jirengu.com/ditibitepo/3
模態(tài)框效果: http://js.jirengu.com/gazodotoka/2/
導(dǎo)航欄效果: http://js.jirengu.com/ducasegumi/2/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,806評論 1 92
  • 1.浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響? 答:浮動模型也是一種可視化格式模型...
    饑人谷_牛牛閱讀 406評論 0 0
  • 問答 1. 浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響? 浮動元素有什么特征floa...
    cheneyzhangch閱讀 317評論 0 0
  • 1.浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響? 浮動模型也是一種可視化格式模型,浮...
    謹(jǐn)言_慎行閱讀 425評論 0 3
  • 浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響? 浮動元素脫離了普通文檔流,文檔的普通流...
    Zzzoecho閱讀 238評論 0 0