🌙web第五天

一.定位

  1. 定位的组成
    定位 = 定位模式 + 边偏移

定位: 将盒子定在某一个位置(定位就是摆盒子 按照定位方式移动盒子)

定位模式: 指一个元素在文档中的定位方式

边偏移: 决定该元素的最终位置

  1. 定位模式
    定位模式决定元素的定位方式 通过 css 的 position 属性设置

1). static 静态定位

静态定位是元素默认定位方式 无定位的意思

语法:

选择器 { position :  static ; }

特点:

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

    ❷. 静态定位布局不常用

2). relative 相对定位

相对定位是元素在移动位置时 相对于它原来的位置来说

语法:

选择器 { position :  relative ; }

特点:

      ❶. 移动位置时参照自己原来的位置移动

      ❷. 不脱标 继续保留原来的位置

3). absolute 绝对定位

绝对定位是相对于父级元素来移动

语法:

选择器 {  position :  absolute ; } 

特点:

      ❶. 如果没有父级元素或父元素没有定位 则以浏览器为准进行定位

      ❷. 如果父级元素有定位 (相对 绝对 固定) 则以最近一级且有定位的父级元素为参考点移动位置

      ❸. 绝对定位不再占有原来的位置 (脱标)

4). fixed 固定定位

固定定位是元素固定于浏览器可视窗口的位置

使用场景: 浏览器页面滚动时元素的位置不会改变

语法:

选择器 {  position :  fixed ; } 

特点:

        ❶. 以浏览器的可视窗口为参照物移动

            Ⅰ. 跟父级元素没有任何关系

          Ⅱ. 不随滚动条滚动

          ❷. 固定定位不占有原来的位置 (脱标)
  1. 边偏移
    边偏移就是定位盒子移动到最终位置

有 top bottom left right 4个属性

二. 定位拓展

  1. 子绝父相
    含义: 子级元素是绝对定位的话 父级元素要用相对定位

注意:

    ❶. 子级元素绝对定位 不会占有位置 可以放到父级元素里面任何一个地方 不会影响其他兄弟元素

    ❷. 父级元素需要加相对定位限制子级元素在父级元素内显示

    ❸. 父级元素布局时 需要占有位置 因此父级元素只能是相对定位

总结:因为父级元素需要占有位置 因此是相对定位 子级元素不需要占有位置 则是绝对定位

  1. 固定定位小技巧
    ❶. 固定在版心右侧位置

思路:

    Ⅰ. 让固定定位的盒子 left : 50% 移动到浏览器可视窗口 (也可以看做版心) 的一半位置

    Ⅱ. 让固定定位盒子 margin - left :  版心宽度的一半  (多移动版心宽度的一半距离)

这样就可以让固定定位的盒子贴着版心右侧对齐了

  1. 粘性定位 sticky
    粘性定位是相对定位和固定定位的混合

语法:

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

特点:

    ❶. 以浏览器的可视窗口为参照点移动元素 (固定定位特点)

    ❷. 粘性定位占有原先的位置 (相对定位特点)

    ❸. 必须添加 top  bottom  left  right  其中的一个才有效
  1. 定位叠级次序 z - index
    在使用定位布局时 如出现盒子重叠的情况 此时 可以使用 z - index 来控制盒子的前后次序 ( z 表示 z轴)

语法:

  选择器 { z - index : 1 ; }

特点:

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

    ❷. 如果属性相同 则按照书写顺序 后来居上

    ❸. 数字后面不能加单位

    ❹. 只有定位的盒子才有 z - index 属性
  1. 绝对定位的盒子居中
    添加了绝对定位的盒子不能使用 margin : 0 auto ; 水平居中

解决方法:

    ❶. left : 50%  (让盒子向左侧移动到父级元素的水平中心位置)

    ❷. margin - left : 盒子宽度一半  (让盒子向左移动自身宽度的一半)

垂直居中同理 将 left 改成 top 即可

三.定位特殊性
❷. 行内元素添加绝对或固定定位 可以直接设置宽高

❷. 块级元素添加绝对或固定定位 如不给宽高 则默认大小为内容大小

❸. 脱标盒子不会触发外边距塌陷

❹. 绝对 (固定) 定位会压住标准流的使用内容

注意: 浮动元素不会压住标准流的文字 只会压住标准流盒子

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。