CSS 定位

定位

为什么需要定位

很多效果浮动做不了

定位的组成

定位∶将盒子定在某一个位置,所以定位也是在摆放盒子,按照定位的方式移动盒子。

定位 = 定位模式 + 边偏移

定位模式

定位模式决定元素的定位方式,它通过CSS的position属性来设置,其值可以分为四个:

语义
static 静态定位
relative 相对定位
absolute 绝对定位
fixed 固定定位

边偏移

边偏移就是定位的盒子移动到最终位置。有top、bottom、left和right 4个属性。

语义
static 静态定位
relative 相对定位
absolute 绝对定位
fixed 固定定位

定位详解

静态定位static

静态定位是元素的默认定位方式,无定位的意思。
语法︰

选择器{ position: static; }

静态定位按照标准流特性摆放位置,它没有边偏移

很少使用!!!

相对定位relative(重点)

相对定位是元素在移动位置的时候,是相对于它原来的位置来说的(自恋型)。

语法︰

选择器{ position: relative; }

相对定位的特点∶(务必记住)

  1. 它是相对于自己原来的位置来移动的(移动位置的时候参照点是自己原来的位置)。
  2. 原来在标准流的位置继续占有,后面的盒子仍然以标准流的方式对待它。(不脱标,继续保留原来位置)

绝对定位absolute(重要)

绝对定位是元素在移动位置的时候,是相对于它祖先元素来说的(拼爹型)。

语法∶

选择器 { position: absolute; }
  1. 如果没有祖先元素或者祖先元素没有定位,则以浏览器为准定位(Document文档)。
  2. 如果祖先元素有定位(相对、绝对、固定定位),则以最近一级的有定位祖先元素为参考点移动
  3. 绝对定位,不占用位置

固定定位fixed(重要)

固定定位是元素固定于浏览器可视区的位置。主要使用场景︰可以在浏览器页面滚动时元素的位置不会改变。

语法∶

选择器{ position: fixed; }

固定定位的特点∶(务必记住)

  1. 以浏览器的可视窗口为参照点移动元素。
    跟父元素没有任何关系
    不随滚动条滚动。
  2. 固定定位不在占有原先的位置。

小算法︰

  1. 让固定定位的盒子left:50%。走到浏览器可视区(也可以看做版心)的一半位置。
  2. 让固定定位的盒子margin-left:版心宽度的一半距离。多走版心宽度的一半位置就可以让固定定位的盒子贴着版心右侧对齐了。

粘性定位sticky(了解)

粘性定位可以被认为是相对定位和固定定位的混合。Sticky粘性的
语法∶

选择器{ position : sticky; top: 10px; }

粘性定位的特点∶

  1. 以浏览器的可视窗口为参照点移动元素(固定定位特点)
  2. 粘性定位占有原先的位置(相对定位特点)
  3. 必须添加topleftrightbottom其中一个才有效

子绝父相

意思:子级使用绝对定位,父级则需要相对定位

  1. 子级绝对定位,不会占有位置,可以放到父盒子里面的任何一个地方,不会影响其他的兄弟盒子
  2. 父盒子需要加定位限制子盒子在父盒子内显示。
  3. 父盒子布局时,需要占有位置,因此父亲只能是相对定位。

相对定位经常用来作为绝对定位父级

总结︰因为父级需要占有位置,因此是相对定位,子盒子不需要占有位置,则是绝对定位

子绝父相不是永远不变的,如果父元素不需要占有位置,子绝父绝也会遇到。

总结

定位模式 是否脱标 移动位置 是否常用
static静态定位 不能使用边偏移 很少 心
relative相对定位 否(占有位置) 相对于自身位置移 动 常用
absolute绝对定位 是(不占有位置) 带有定位的父级 常用
fixed固定定位 是(不占有位置) 浏览器可视区 常用
sticky粘性定位 否(占有位置) 浏览器可视区 当前阶段少
  1. 相对定位,固定定位,绝对定位的2大特点
    1. 是否占有位置
    2. 以谁为基准点
  2. 子绝父相

定位叠放次序

在使用定位布局时,可能会出现盒子重叠的情况。此时,可以使用z-index来控制盒子的前后次序(z轴)

语法∶

选择器{ z-index: 1; }

数值可以是正整数、负整数或0,默认是auto,数值越大,盒子越靠上

数字不能加单位

只有定位的盒子才有该属性

定位扩展

加了绝对定位absolute的,盒子不能使用margin:0 auto;水平居中

left: 50%;  #让盒子的左侧移动到父级元素的水平中心位置
margin-left:-100px;  #让盒子向左移动自身宽度的一半。

定位的特殊性

待续

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
学习笔记

CSS浮动

2022-6-8 10:14:58

JavaScript学习笔记

如何一次性加载10万条数据(虚拟长列表原理和实现)

2023-7-29 11:18:00

搜索
蜀ICP备2020035005号-1