在css中有两种常用的定位方式:绝对定位、相对定位。这两种定位最大的区别就是是否释放空间元素。
定位方式 | 是否占用空间 |
---|---|
绝对定位 | 释放空间 |
相对定位 | 占用空间 |
定位在Web开发中是不可或缺的,它用来描述元素在界面中的位置。原点相对于屏幕的左上角,横坐标向右为正,向左为负,纵坐标向下为正,向上为负。根据绝对定位和相对定位特有的性质,在实际开发中可以根据需求决定使用什么样的定位方式。
在开发中,经常会将一个组件的父元素的定位方式设置成相对定位,其子元素设置成绝对定位。通常父元素是需要占据元素空间的,否者就会造成元素塌陷,其他元素会‘忽视’这个组件的存在而将其覆盖,或者这个组件会将其他组件覆盖。有些时候我们反而需要这个组件忽视其他元素的存在将其覆盖,例如遮罩层。如果将遮罩层组件设置成相对定位不释放空间,那么遮罩层会遮罩不住其他组件,起不到遮罩的效果,像下面这样:
遮罩层将导航栏组件‘挤’到下面去了
遮罩层应当设置为绝对定位释放元素空间,这样就会“忽视”其他元素的“存在”,将其遮罩住。像下面这个样子: