浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响?
能让元素脱离文档流,进行上下左右的移动和排列。
对于父容器会忽视浮动元素,按着自己的样式进行设置。
对于其他浮动元素,按着float的方式进行排列
对于普通元素,忽视浮动元素,进行排列
对于文字,会认识浮动元素,然后围绕其排列清除浮动指什么? 如何清除浮动? 两种以上方法
2.1 让文本,行框不再围绕浮动元素,让浮动元素不再重叠。
2.2 1.清除浮动的方式:添加空元素,样式为clear:both;来撑开父容器;
2.2 2.使用伪类>.clear:after{content="";clear:both;display:block;};
2.2 3.让父容器也float起来;
2.2 4.或让父容器形成BFC(block format Content)(因为其的特性是不会重叠浮动元素)有几种定位方式,分别是如何实现定位的,参考点是什么,使用场景是什么?
三种定位方式:普通流;相对定位;绝对定位
普通流:static;按照普通文档流进行定位,块级元素从上至下排列,行内元素从左往右排列,不需要考虑使用相对、绝对定位的时候
相对定位:relative;相对于网页中本来占据的位子进行定位的,不过他们在文档流中的位子不发生变化,就是其的表现形式进行了改变。
绝对定位:absolute,fixed;脱离文档流,相对一最近的(非static)的祖先元素进行定位。若没有祖先元素,则相对于html进行定位,你想让一个元素的位子固定的时候进行使用。fixed是固定定位,是相对于浏览器窗口进行决定的定位。z-index 有什么作用? 如何使用?
能让元素形成堆叠展示。元素进行相对定位和绝对定位时,进行使用。>position:absolute;z-index:number;
或者 position:relative ;z-index:number;position:fixed;z-index:number;position:sticky;z-index:number;position:relative和负margin都可以使元素位置发生偏移?二者有什么区别
不都是,position:relative是元素位置不发生改变,它的表现形式发生偏移。而负margin是位置发生改变,则表现形式也随之改变。BFC 是什么?如何生成 BFC?BFC 有什么作用?举例说明
BFC:block format content,块级格式化文本。是盒子的另一种运行规则。四种方式:1.display:inline-block、table-cell、table-caption; 2.float 3.position:absolute、fixed;4.overflow:auto、hidden、scroll;
作用:清除浮动,阻止外边距合并;BFC容器中的元素不会重叠浮动元素;同时可以包含浮动元素。-
在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例
当块状元素设置margin数值时会产生外边距合并。三种情况,相邻元素比大小,谁大用谁;父子元素看谁的margin大就用谁;空元素,其就只有margin-top和margin-bottom时,谁大用谁,一样大用一个
**当两个垂直外边距相遇时。他们的外边距就会合并,其的高度就是其中较大的那个外边距。同时若是外边距为负值时,则合并后的外边距为最大正的外边距加上负的外边距的值(注意:外边距的绝对值为最大)。
** 三种情况:一、相邻的兄弟元素
正:
![WOXPR5{]7NTAQPIN{83ZI12.png](http://upload-images.jianshu.io/upload_images/4858350-d1e0b304b999657d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
负:
二、块级父元素与其第一个/最后一个子元素(其中没有border,padding,);
正:
负:
三、空元素(没有border,padding,inline-content,height,)也会上下边距合并。
使用浮动和绝对定位可以不让相邻元素外边距合并。或者形成BFC;
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>
在这个案例中,.son是.f的子元素,是一个父子的。同时我设置的margin值是不一样的。按照道理,red和green不会上下重叠在一起的,但是由于父子外边距的合并,让red的外边距变成使用了margin=20的效果了