基本介绍

网页常见布局方式


1. 标准流


1. 块级元素独占一行 → 垂直布局


2. 行内元素/行内块元素一行显示多个 → 水平布局


2. 浮动


1. 可以让原本垂直布局的 块级元素变成水平布局


3. 定位


1. 可以让元素自由的摆放在网页的任意位置


2. 一般用于 盒子之间的层叠情况


定位的常见应用场景

1. 可以解决盒子与盒子之间的层叠问题

定位之后的元素层级最高,可以层叠在其他盒子上面

2. 可以让盒子始终固定在屏幕中的某个位置

使用定位的步骤


1. 设置定位方式


➢ 属性名:position


➢ 常见属性值:


基站定位的java实现_html


 


2. 设置偏移值


➢ 偏移值设置分为两个方向,水平和垂直方向各选一个使用即可



选取的原则一般是就近原则 (离哪边近用哪个)

基站定位的java实现_前端_02


静态定位


介绍:静态定位是默认值,就是之前认识的标准流。


代码:position: static;



注意点:



1. 静态定位就是之前标准流,不能通过方位属性进行移动



2. 之后说的定位不包括静态定位,一般特指后几种:相对、绝对、固定




相对定位




介绍:自恋型定位,相对于自己之前的位置进行移动



代码:position: relative;



特点:



1. 需要配合方位属性实现移动



2. 相对于自己原来位置进行移动



3. 在页面中占位置 → 没有脱标



应用场景:



1. 配合绝对定位组CP(子绝父相)



2. 用于小范围的移动




绝对定位



介绍:拼爹型定位,相对于非静态定位的父元素进行定位移动



代码:position: absolute;



特点:



1. 需要配合方位属性实现移动



2. 默认相对于浏览器可视区域进行移动



3. 在页面中不占位置 → 已经脱标



应用场景:



1. 配合绝对定位组CP(子绝父相)




绝对定位到底相对于谁进行偏移



1. 祖先元素中没有定位 → 默认相对于浏览器进行移动



2. 祖先元素中有定位 → 相对于 最近的 有定位 的祖先元素进行移动




 固定定位



介绍:死心眼型定位,相对于浏览器进行定位移动



代码: position: fixed;



特点:



1. 需要配合方位属性实现移动



2. 相对于浏览器可视区域进行移动



3. 在页面中不占位置 → 已经脱标



应用场景:



1. 让盒子固定在屏幕中的某个位置





基站定位的java实现_基站定位的java实现_03


子绝父相介绍


场景:让子元素相对于父元素进行自由移动


含义:


子元素:绝对定位


父元素:相对定位


子绝父相好处:


父元素是相对定位,则对网页布局影响最小


子绝父绝特殊场景


场景:在使用子绝父相的时候,发现父元素已经有绝对定位了,此时直接子绝即可!


原因:


父元素已经有定位已经满足要求,如果盲目修改父元素定位方式,可能会影响之前写好的布局


子绝父相水平居中案例


需求:使用子绝父相,让子盒子在父盒子中水平居中(父子元素任意宽度下都能实现)


基站定位的java实现_绝对定位_04


子绝父相水平居中案例-解决方法

1. 子绝父相


2. 先让子盒子往右移动父盒子的一半


left:50%


3. 再让子盒子往左移动自己的一半


普通做法:margin-left:负的子盒子宽度的一半


缺点:子盒子宽度变化后需要重新改代码


优化做法:transform:translateX(-50%)


优点:表示沿着X轴负方向(往左)始终移动自己宽度的一半,子盒子宽度变化不需要更改代码


子绝父相水平垂直都居中案例


需求:使用子绝父相,让子盒子在父盒子中水平垂直都居中(父子元素任意宽高下都能实现)


基站定位的java实现_css_05


子绝父相水平垂直都居中案例-解决方法


1. 子绝父相


2. 让子盒子往右走大盒子一半


left:50%


3. 让子盒子往下走大盒子一半


top:50%


4. 让子盒子往左+往上走自己的一半


transform:translate(-50%,-50%);


元素层级问题


不同布局方式元素的层级关系:


标准流 < 浮动 < 定位


不同定位之间的层级关系:


相对、绝对、固定默认层级相同


此时HTML中写在下面的元素层级更高,会覆盖上面的元素


更改定位元素的层级


场景:改变定位元素的层级


属性名:z-index


属性值:数字


数字越大,层级越高