入門任務 10

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

浮動模型也是一種可視化格式模型,浮動的框可以左右移動(根據(jù)float屬性值而定),直到它的外邊緣碰到包含框或者另一個浮動元素的框的邊緣。浮動元素不在文檔的普通流中,文檔的普通流中的元素表現(xiàn)的就像浮動元素不存在一樣.

  • 對父容器影響:如果父容器中的元素都是浮動元素,那么父容器會失去它的高度,在瀏覽器的表現(xiàn)為,父元素并未包裹住子元素。
  • 對其他浮動元素的影響:浮動元素會按照順序排列下去,若父容器剩余的寬度不夠放下下一個浮動元素,那么它將向下移動,若是高度不同,在下移的過程中,浮動元素還有可能會被卡住。
  • 對普通元素的影響:普通元素無法感知到浮動元素,會被浮動元素遮擋
  • 對文字的影響:文字可以感知浮動元素,會環(huán)繞浮動元素排列

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

清除浮動是指解決浮動父容器高度塌陷問題
如何清除浮動:

  • 在浮動元素的后面添加一個空的元素,并設置其樣式為 clear: both;,但是會使HTML多出一個無意義的標簽,影響結(jié)構(gòu);
  • 在浮動元素的后面添加一個偽元素,通過設置 :after來清除浮動
.clearfix{
    *zoom:1;
  }
  .clearfix:after{
    content:"";
      display:block;
      clear:both;
  }
  • 讓浮動元素的父元素形成BFC,消除浮動對后續(xù)元素的影響。

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

CSS有三種基本的定位機制:普通流,相對定位和絕對定位

  • 普通流是默認定位方式,在普通流中元素框的位置由元素在html中的位置決定,元素position屬性為static或繼承來的static時就會按照普通流定位,這也是我們最常見的方式
  • 相對定位比較簡單,對應position屬性的relative值,如果對一個元素進行相對定位,它將出現(xiàn)在他所在的位置上,然后可以通過設置垂直或水平位置,讓這個元素相對于它自己移動,在使用相對定位時,無論元素是否移動,元素在文檔流中占據(jù)原來空間,只是表現(xiàn)出來的位置會改變
  • 絕對定位是通過absolute和fixed實現(xiàn),absolute的參考點是絕對定位元素相對于距離最近的非static元素祖先元素決定的;如果沒有已定位的祖先元素,則是由html決定;fixed參考點是視口;絕對定位更多是使用在相對于其它元素進行定位的時候,脫離文檔流。

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

因為絕對定位的元素脫離了文檔流,可以覆蓋在頁面上其他元素的上方,z-index屬性設置元素的堆疊順序。擁有更高堆疊順序的元素總是會處于堆疊順序較低的元素的前面

  • z-index值可為負數(shù)
  • z-index 僅能在定位元素上奏效(非 position: static;)

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

  • 使用負margin,使元素位置發(fā)生了偏移,原位置會被其他后續(xù)元素占據(jù),影響其他元素的位置。
  • 使用position: relative,元素在文檔中的位置還是保留的,不會影響其他元素的位置,只是視覺上的偏移

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

BFC,塊級格式化上下文(Block Format Content),創(chuàng)建了BFC的元素就是一個獨立的盒子,盒子里布局不受外部影響,也不影響外部元素的布局
如何生成BFC

  • float為 left|right
  • overflow為 hidden|auto|scroll
  • display為 table-cell|table-caption|inline-block
  • position為 absolute|fixed
    作用
  • BFC會阻止垂直外邊距(margin-top、margin-bottom)折疊
    只要讓它們不在同一個BFC就行了,但是對于兩個相鄰元素來說,意義不大,沒有必要給它們加個外殼,但是對于嵌套元素來說就很有必要了,只要把父元素設為BFC就可以了。這樣子元素的margin就不會和父元素的margin發(fā)生重疊 示例
  • BFC不會重疊浮動元素 示例
  • BFC可以包含浮動 示例

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

  • 兩個在普通文檔流中相鄰的元素外邊距相遇的時候發(fā)生合并。這個相鄰可以是父子關系相鄰,兄弟關系相鄰,一個元素內(nèi)部沒有東西,自身的上下邊距相遇時也會發(fā)生外邊距合并。只有普通文檔流中塊級元素的垂直外邊距才會發(fā)生外邊距合并。內(nèi)聯(lián)元素、浮動元素或絕對定位元素之間的外邊距不會合并。
  • 如何合并:會選取較大值進行合并. 合并的結(jié)果: 兩個外邊距都是正數(shù),取兩者之中的較大者;兩個外邊距都是負數(shù),取兩者之間絕對值較大者;當兩個外邊距一正一負時,取兩者的和。
  • 不讓相鄰元素外邊距合并的方法
    1.被非空內(nèi)容、padding、border 或 clear 分隔開。
    2.不在一個普通流中或一個BFC中。
    3.margin在垂直方向上不毗鄰。
    父子外邊距合并范例

代碼

1.alert效果
2.表單效果
3.模態(tài)框效果
4.導航欄效果

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

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,801評論 1 92
  • 浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響?## 特征:浮動模型也是一種可視化格式模...
    饑人谷_zhangfan閱讀 290評論 0 0
  • 1、浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響? 2、清除浮動指什么? 如何清除浮動...
  • 浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響? 浮動元素可以向左或者向右移動,直到它的...
    Tuuu閱讀 192評論 0 0
  • 浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響?一個元素應沿其容器的左側(cè)或右側(cè)放置,允許...
    _小黑閱讀 243評論 0 0