浮動(dòng)元素有什么特征?對(duì)父容器、其他浮動(dòng)元素、普通元素、文字分別有什么影響?
能讓元素脫離文檔流,進(jìn)行上下左右的移動(dòng)和排列。
對(duì)于父容器會(huì)忽視浮動(dòng)元素,按著自己的樣式進(jìn)行設(shè)置。
對(duì)于其他浮動(dòng)元素,按著float的方式進(jìn)行排列
對(duì)于普通元素,忽視浮動(dòng)元素,進(jìn)行排列
對(duì)于文字,會(huì)認(rèn)識(shí)浮動(dòng)元素,然后圍繞其排列清除浮動(dòng)指什么? 如何清除浮動(dòng)? 兩種以上方法
2.1 讓文本,行框不再圍繞浮動(dòng)元素,讓浮動(dòng)元素不再重疊。
2.2 1.清除浮動(dòng)的方式:添加空元素,樣式為clear:both;來(lái)?yè)伍_父容器;
2.2 2.使用偽類>.clear:after{content="";clear:both;display:block;};
2.2 3.讓父容器也float起來(lái);
2.2 4.或讓父容器形成BFC(block format Content)(因?yàn)槠涞奶匦允遣粫?huì)重疊浮動(dòng)元素)有幾種定位方式,分別是如何實(shí)現(xiàn)定位的,參考點(diǎn)是什么,使用場(chǎng)景是什么?
三種定位方式:普通流;相對(duì)定位;絕對(duì)定位
普通流:static;按照普通文檔流進(jìn)行定位,塊級(jí)元素從上至下排列,行內(nèi)元素從左往右排列,不需要考慮使用相對(duì)、絕對(duì)定位的時(shí)候
相對(duì)定位:relative;相對(duì)于網(wǎng)頁(yè)中本來(lái)占據(jù)的位子進(jìn)行定位的,不過(guò)他們?cè)谖臋n流中的位子不發(fā)生變化,就是其的表現(xiàn)形式進(jìn)行了改變。
絕對(duì)定位:absolute,fixed;脫離文檔流,相對(duì)一最近的(非static)的祖先元素進(jìn)行定位。若沒(méi)有祖先元素,則相對(duì)于html進(jìn)行定位,你想讓一個(gè)元素的位子固定的時(shí)候進(jìn)行使用。fixed是固定定位,是相對(duì)于瀏覽器窗口進(jìn)行決定的定位。z-index 有什么作用? 如何使用?
能讓元素形成堆疊展示。元素進(jìn)行相對(duì)定位和絕對(duì)定位時(shí),進(jìn)行使用。>position:absolute;z-index:number;
或者 position:relative ;z-index:number;position:fixed;z-index:number;position:sticky;z-index:number;position:relative和負(fù)margin都可以使元素位置發(fā)生偏移?二者有什么區(qū)別
不都是,position:relative是元素位置不發(fā)生改變,它的表現(xiàn)形式發(fā)生偏移。而負(fù)margin是位置發(fā)生改變,則表現(xiàn)形式也隨之改變。BFC 是什么?如何生成 BFC?BFC 有什么作用?舉例說(shuō)明
BFC:block format content,塊級(jí)格式化文本。是盒子的另一種運(yùn)行規(guī)則。四種方式:1.display:inline-block、table-cell、table-caption; 2.float 3.position:absolute、fixed;4.overflow:auto、hidden、scroll;
作用:清除浮動(dòng),阻止外邊距合并;BFC容器中的元素不會(huì)重疊浮動(dòng)元素;同時(shí)可以包含浮動(dòng)元素。-
在什么場(chǎng)景下會(huì)出現(xiàn)外邊距合并?如何合并?如何不讓相鄰元素外邊距合并?給個(gè)父子外邊距合并的范例
當(dāng)塊狀元素設(shè)置margin數(shù)值時(shí)會(huì)產(chǎn)生外邊距合并。三種情況,相鄰元素比大小,誰(shuí)大用誰(shuí);父子元素看誰(shuí)的margin大就用誰(shuí);空元素,其就只有margin-top和margin-bottom時(shí),誰(shuí)大用誰(shuí),一樣大用一個(gè)
**當(dāng)兩個(gè)垂直外邊距相遇時(shí)。他們的外邊距就會(huì)合并,其的高度就是其中較大的那個(gè)外邊距。同時(shí)若是外邊距為負(fù)值時(shí),則合并后的外邊距為最大正的外邊距加上負(fù)的外邊距的值(注意:外邊距的絕對(duì)值為最大)。
** 三種情況:一、相鄰的兄弟元素
正:
![WOXPR5{]7NTAQPIN{83ZI12.png](http://upload-images.jianshu.io/upload_images/4858350-d1e0b304b999657d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
負(fù):
}8@6E3SCTV%5ULNIC11X7CJ.png
二、塊級(jí)父元素與其第一個(gè)/最后一個(gè)子元素(其中沒(méi)有border,padding,);
正:
負(fù):
三、空元素(沒(méi)有border,padding,inline-content,height,)也會(huì)上下邊距合并。
使用浮動(dòng)和絕對(duì)定位可以不讓相鄰元素外邊距合并?;蛘咝纬葿FC;
demo http://js.jirengu.com/woqa/3/edit
案例:
<style>
.f{
margin: 10px;
width: 100px;
height: 200px;
background: red;
}
.son{
margin: 20px;
width: 100px;
height: 200px;
background: green;
}
</style>
<div class="f">
<div class="son">
</div>
</div>
在這個(gè)案例中,.son是.f的子元素,是一個(gè)父子的。同時(shí)我設(shè)置的margin值是不一樣的。按照道理,red和green不會(huì)上下重疊在一起的,但是由于父子外邊距的合并,讓red的外邊距變成使用了margin=20的效果了