1、CSS中存在三种定位机制:标准文档流、浮动、绝对定位。
2、设置了浮动的元素,仍处于标注文档流中,但其尺寸无法像正常div块一样得到扩展,需要额外填充元素或设置宽度高度才可以。
3、清除浮动的方法有两种,对受到浮动元素影响的元素设置:a、clear:both(或left/right);b、width:100%;overflow:hidden;
其中方法a只适用于兄弟元素,不适用于父级;而overflow:hidden可用于受浮动影响的父级元素。
4、相对定位元素仍在标准文档流中,偏移量是相对最开始的位置来讲的;相反,绝对定位则完全脱离标准文档流,是以包含块为基准的定位。
5、已定位元素是指设置了相对/绝对/固定定位的元素。
6、当元素设置了绝对定位之后,其和浮动元素一样,其尺寸无法像正常div块一样得到扩展,需要额外填充元素或设置宽度高度才可以。
7、对于绝对定位元素:
未设置偏移量时:无论是否存在已定位祖先元素,元素都保持在初始位置,即祖先元素是否定位与其无关;
设置了偏移量时:无已定位祖先元素,则以<html>为偏移参照基准;
有已定位祖先元素,则以距离其最近的已定位祖先元素为参照基准。
另外由于绝对定位很不稳定,在实际编程中通常将其嵌套在定位为relative的父元素中。
8、设置了浮动,但仍然不并排的原因可能是两个块的宽度已经超过了父元素的宽度,无法并排放下。
9、当父元素未设置浮动,而子元素设置了浮动,则父元素高度无法自动拓展,受到影响,为了解决这个办法,此时需要对父元素设置:overflow:hidden;
10、使用绝对定位实现横向两列布局,常用于,一列固定宽度,另一列宽度自适应的情况。主要技能是:父元素为relative,自适应宽度元素为绝对定位。要注意的是固定宽度列的高度要大于自适应宽度列的高度!!!
tips:
1、div一般不设置高度。
2、一般我们在设计并排模块时,会将两者间距设置为10~20px,看起来会比较舒服。
课程网址: