css子绝父相是什么意思以及实例代码解析
子绝父相在css中意思是:子级是绝对定位的话, 父级要用相对定位。
其实,子级是绝对定位,父亲只要是定位即可(不管父亲是绝对定位还是相对定位,甚至是固定定位都可以),就是说, 子绝父绝,子绝父相都是正确的。
为什么要是“子绝父相”呢?
因为子级是绝对定位,不会占有位置, 可以放到父盒子里面的任何一个地方。
父盒子布局时,需要占有位置,因此父亲只能是 相对定位。我们用以下实例代码进行详解:
如果div1里面包着div11 div11里面包着div111
子绝父相:给div1设置 相对定位
给div11设置 绝对定位 div11会根据div1的左上角为0点移动 (top left)
如果要移动div111 前面都不用动 给div111设置绝对定位 top left的值 是以他的父元素 div11的左上角为原点移动
如果再有一个与div1同级的元素div2 想移动它 前面几个元素依然还想保留 只需要给div2设置绝对定位 但是此时div2是以页面视口区 也就是body的左上角为起点 用top left移动
其实,子级是绝对定位,父亲只要是定位即可(不管父亲是绝对定位还是相对定位,甚至是固定定位都可以),就是说, 子绝父绝,子绝父相都是正确的。
为什么要是“子绝父相”呢?
因为子级是绝对定位,不会占有位置, 可以放到父盒子里面的任何一个地方。
父盒子布局时,需要占有位置,因此父亲只能是 相对定位。我们用以下实例代码进行详解:
如果div1里面包着div11 div11里面包着div111
子绝父相:给div1设置 相对定位
给div11设置 绝对定位 div11会根据div1的左上角为0点移动 (top left)
如果要移动div111 前面都不用动 给div111设置绝对定位 top left的值 是以他的父元素 div11的左上角为原点移动
如果再有一个与div1同级的元素div2 想移动它 前面几个元素依然还想保留 只需要给div2设置绝对定位 但是此时div2是以页面视口区 也就是body的左上角为起点 用top left移动