Css有三种基本的定位机制:普通流、浮动和定位。
普通流是指元素最基本的排列方式,比如块级元素占一行,行内元素可以在一行中一个个排下去等等,一般可以使用margin和padding来调整元素的位置,也可以使用display来改变元素的属性,inline-block是比较常用的一种。
浮动就是float。
定位是指通过改变元素的positive属性来改变元素的位置,有static、relative、absolute、fixed四种属性值,其中static是默认的。改变了positive属性之后可以使用top、bottom、left和right来确定元素的具体位置,还可以使用z-index来给元素进行层次分级。
1.Relative:相对定位。相对于元素原本的位置进行移动。仍旧保留了原来所占的空间。
2.Absolute:绝对定位。相对于 static 定位以外的第一个父元素进行定位,如果不存在这样的父元素,则依据最初的包含块,根据用户代理的不同,最初的包含块可能是画布或html元素。这种定位中元素不占空间了,和浮动类似。
3.Fixed:固定定位。通俗来说就是相对于浏览器窗口定位。
一般有三种应用场景:
1是制作小弹窗,比如点击某个按钮出现一些选项,其中absolute是弹窗选项的定位方式,而relative给那个按钮,记得按钮是父元素,弹窗选项放在按钮内。
2是回到顶部按钮,京东首页两侧的购物菜单等等这一类相对屏幕定位的。
3是其他场景,一般都是用相对定位。