css浮動及定位

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

浮動元素的特征:
1、脫離普通文檔流;
2、可以向左或向右浮動(根據(jù)float屬性值而定),直到它的外邊緣碰到包含框或者另一個浮動元素的框的邊緣;
3、如果同時存在多個浮動元素水平排列,且浮動元素寬度的總和大于容器的寬度,則多出的元素會自動向下一行移動,直到有足夠的空間排列;
4、如果浮動元素的后面有一個文檔流中的元素,那么這個元素的框會表現(xiàn)得像浮動元素不存在,但是框內(nèi)的文本內(nèi)容會受到浮動元素的影響而移動以留出空間。
5. 一個浮動元素未設置width,則會自動收縮為文字寬度。
浮動元素的影響:
1、對父容器:由于浮動元素脫離了普通文檔流,因此無法撐開父容器,可能導致父容器的塌陷;
2、對其它浮動元素:對同向的浮動元素,會依次緊貼排列,當父容器寬度不足時換行;對不同向的浮動元素,在父容器寬度足夠時互不影響,寬度不足時換行;
3、對普通元素:普通元素會忽視浮動元素的存在而處于浮動元素的下層;
4、對文字:文字元素會自動圍繞浮動元素進行排列。

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

元素浮動可能造成父容器塌陷、相鄰或嵌套的兩個元素發(fā)生垂直margin重疊等現(xiàn)象,為了避免此類現(xiàn)象對布局產(chǎn)生的影響,我們需要對浮動元素周圍的元素進行清除浮動,從而使頁面布局和浮動前一樣。
通常我們采用的清除浮動的兩種方法如下:
1、利用 clear屬性清除浮動;
2、使父容器形成BFC。
  1. 有幾種定位方式,分別是如何實現(xiàn)定位的,參考點是什么,使用場景是什么?
有三種定位方式,分別是:普通流,浮動,絕對定位(absolute、fixed)。
1、普通流是默認的定位方式。在普通流中,元素的位置由元素在Html中的位置決定;
2、浮動定位,即利用float屬性來給元素定位。浮動的元素會脫離普通文檔流,沿其容器的左側(cè)或右側(cè)放置,外邊緣碰到包含框或另一浮動元素的邊緣時會停下。普通元素察覺不到浮動元素的存在,會占用它原本的空間,文本和內(nèi)聯(lián)元素則會自動圍繞它進行排列;
3、絕對定位,即通過position屬性設置元素的定位。position的值有以下幾種:
inherit:規(guī)定應該從父元素繼承 position 屬性的值;
static:默認值,沒有定位,元素出現(xiàn)在正常的流中;
relative:生成相對定位的元素,相對于元素本身正常位置進行定位;
absolute:生成絕對定位的元素,相對于static定位以外的第一個祖先元素(offset parent)進行定位,元素的位置通過 left, top, right 以及 bottom 屬性進行規(guī)定;
fixed:生成絕對定位的元素,相對于瀏覽器窗口進行定位,元素的位置通過 left, top, right 以及 bottom 屬性進行規(guī)定;
sticky:相當于relative和fixed的合體,隨頁面滾動,是CSS3中新增屬性,兼容性差,當目標區(qū)域在屏幕中可見時,等同于position:relative;而當頁面滾動超出目標區(qū)域時,則等同于position:fixed,它會固定在目標位置。

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

z-index設置了層疊的順序。就是元素離我們的遠近是在一個立體空間里。垂直于屏幕的是z軸,而屏幕的長寬為x,y軸。z-index設置的是z軸的值,當position屬性值為absoulte和fixed的時候z-index才有作用,屬性參數(shù)值越大,則被層疊在最上面。

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

position:relative:相對于自身原有的位置發(fā)生偏移,但元素占據(jù)的依然是原有的空間,只是看上去發(fā)生了移動,不會影響其它元素的布局,且可能產(chǎn)生元素間的重疊;
負margin:使元素直接產(chǎn)生移動,改變了元素占據(jù)的位置,會對其它元素造成布局上的影響。
  1. BFC 是什么?如何生成 BFC?BFC 有什么作用?舉例說明
BFC,即Block Formatting Context塊級格式化上下文。
生成BFC的條件:
1、float為 left|right;
2、overflow為 hidden|auto|scroll;
3、display為 table-cell|table-caption|inline-block;
4、position為 absolute|fixed;
BFC的作用:
1、清除浮動
2、消除外邊距合并
  1. 在什么場景下會出現(xiàn)外邊距合并?如何合并?如何不讓相鄰元素外邊距合并?
    外邊距合并場景
同一個BFC內(nèi),且同處于文檔流中的垂直相鄰元素外邊距會合并。
父元素與子元素的外邊距會合并。
空元素的外邊距合并。
合并方式:
兩個margin都是正值的時候,取兩者的最大值;
當 margin 都是負值的時候,取的是其中絕對值較大的,然后,從0位置,負向位移;
當有正有負的時候,先取出負 margin 中絕對值中最大的,然后,和正 margin 值中最大的 margin 相加。
所有相鄰的margin要一起參與運算,不能分步進行。
如何阻止合并:
被非空內(nèi)容、padding、border 或 clear 分隔開;
不在一個普通流中或一個BFC中;
margin在垂直方向上不相鄰。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,199評論 1 92
  • 一,浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響? 浮動模型是一種可視化格式模型,浮動...
    DeeJay_Y閱讀 1,011評論 0 4
  • 1.浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響? 何謂浮動元素?有什么特征?所謂浮動...
    草鞋弟閱讀 939評論 0 1
  • APP體驗報告,是通過熟悉了解市場上眾多APP,撰寫個人對于APP體驗的一種方式。 目的在于通過體驗眾多產(chǎn)品,分析...
    根叔分享閱讀 465評論 0 2
  • 此時此刻坐在電腦前,又到寫寫寫的時候,腦袋一片漿糊,不知道該如何下手。 我是有多么的不愛寫作? 自從開始寫作,每天...
    藍精靈的生活閱讀 453評論 5 2

友情鏈接更多精彩內(nèi)容