CSS定位

来源:互联网 发布:ios用什么数据库 编辑:程序博客网 时间:2024/05/13 21:35

CSS定位

定位有三种,分别是相对定位(relative)、绝对定位(absolute)、固定定位(fixed)。

相对定位

  • 相对定位,就是微调元素位置的。让元素相对自己原来的位置,进行位置调整。
  • 相对定位不脱标,真实位置是在老家,只不过影子出去了,可以到处飘。
  • 使用场景:
    • 微调元素
    • 做绝对定位的参考,子绝父相

绝对定位

  • 脱离标准文档流,所有的标准文档流的性质,绝对定位之后都不遵守了。(绝对定位之后,标签就不区分所谓的行内元素、块级元素了,不需要display:block;就可以设置宽、高了)
  • 参考点
    • 绝对定位的参考点,如果用top描述,那么定位参考点就是页面的左上角,而不是浏览器的左上角
    • 如果用bottom描述,那么就是浏览器首屏窗口尺寸,对应的页面的左下角
  • 以盒子为参考点
    • 一个绝对定位的元素,如果父辈元素中出现了也定位了的元素,那么将以父辈这个元素,为参考点。
    • 要听最近的已经定位的祖先元素的,不一定是父亲,可能是爷爷。
    • 不一定是相对定位,任何定位,都可以作为参考点。子绝父绝、子绝父相、子绝父固,都是可以给儿子定位的。但是,工程上子绝、父绝,没有一个盒子在标准流里面了,所以页面就不稳固,没有任何实战用途。工程上,“子绝父相”有意义,父亲没有脱标,儿子脱标在父亲的范围里面移动。
    • 绝对定位的儿子,无视参考的那个盒子的padding。
  • 绝对定位的盒子居中问题
    绝对定位之后,所有标准流的规则,都不适用了。所以margin:0 auto;失效。可使用以下方式使之居中。
    left: 50%;    margin-left: 负的盒子宽度的一半。

固定定位

  • 固定定位,就是相对浏览器窗口定位。页面如何滚动,这个盒子显示的位置不变。
  • 固定定位脱标!
原创粉丝点击