html 定位z_index,绝对定位、固定定位和z-index

#### 绝对定位

* 一旦给元素加上`absolute`或`float`就相当于给元素加上了`display:block`

* `absolute`元素覆盖正常文档流内元素(不用设z-index,自然覆盖)

* 可以减少重绘和回流的开销(如`absolute+ top:-9999em`,或`absolute + visibility:hidden`,将动画效果放到`absolute`元素中)

#### 属性介绍

* `static`,默认值。位置设置为static的元素,它始终会处于文档流给予的位置。

* `inherit`,规定应该从父元素继承 position 属性的值。但是任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 “inherit”。

* `fixed`,生成绝对定位的元素。默认情况下,可定位于相对于浏览器窗口的指定坐标。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。不论窗口滚动与否,元素都会留在那个位置。但当祖先元素具有`transform`属性且不为none时,就会相对于祖先元素指定坐标,而不是浏览器窗口。

* `absolute`,生成绝对定位的元素,相对于距该元素最近的已定位的祖先元素进行定位。此元素的位置可通过 “left”、”top”、”right” 以及 “bottom” 属性来规定。

* `relative`,生成相对定位的元素,相对于该元素在文档中的初始位置进行定位。通过 “left”、”top”、”right” 以及 “bottom” 属性来设置此元素相对于自身位置的偏移。

浮动、绝对定位和固定定位会脱离文档流,相对定位不会脱离文档流,绝对定位相对于该元素最近的已定位的祖先元素,如果没有一个祖先元素设置定位,那么参照物是body层。

绝对定位相对于包含块的起始位置:

* 如果祖先元素是块级元素,包含块则设置为该元素的内边距边界。

* 如果祖先元素是行内元素,包含块则设置为该祖先元素的内容边界。

问答题:

* 定位的元素的起始位置为父包含块的内边距(不会在border里,除非使用负值,会在padding里)

* 定位的元素的margin还是能起作用的

* background属性是会显示在border里的

* z-index是有层叠层级的,需要考虑同一个层叠上下文的层叠优先级

* z-index是负值不会覆盖包含块的背景色(但是如果有内容,会被包含块的内容覆盖)

* z-index的值影响的元素是定位元素以及flex盒子

* 上面一个定位元素,下面一个正常流的元素,定位元素会覆盖在正常流元素之上,除非给z-index是负值

* 页面根元素html天生具有层叠上下文,称之为“根层叠上下文”

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值