CSS position属性用于指定一个元素在文档中的定位方式。top,right,bottom和left属性则决定了该元素的最终位置。

常见语法

static | relative | absolute | sticky | fixed

static

默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。

relative

生成相对定位的元素,相对于其正常位置进行定位(不改变页面布局,因此会在此元素未添加定位时所在位置留下空白)。

absolute

生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。脱离了文档流,不为元素预留空间,通过指定元素相对于最近的非 static 定位祖先元素的偏移,来确定元素位置。绝对定位的元素可以设置外边距(margins),且不会与其他边距合并。

fixed

生成绝对定位的元素,相对于浏览器窗口进行定位。

inherit

规定应该从父元素继承 position 属性的值。

可继承的属性:

  • 所有元素可继承:visibility、cursor
  • 内联元素可继承:letter-spacing、word-spacing、white-space、line-height、color、font、 font-family、font-size、font-style、font-variant、font-weight、text- decoration、text-transform、direction
  • 块状元素可继承:text-indent和text-align
  • 列表元素可继承:list-style、list-style-type、list-style-position、list-style-image
  • 表格元素可继承:border-collapse

不可继承的属性:

  • background-color...

initial

设置 CSS 属性为它的默认值,可作用于任何 CSS 样式。(IE 不支持该关键字)

unset

不设置

sticky

  • 盒位置根据正常流计算(这称为正常流动中的位置),然后相对于该元素在流中的 flow root(BFC)和 containing block(最近的块级祖先元素)定位。在所有情况下(即便被定位元素为 table 时),该元素定位均不对后续元素造成影响。当元素 B 被粘性定位时,后续元素的位置仍按照 B 未定位时的位置来确定。position: sticky 对 table 元素的效果与 position: relative 相同。
  • 元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。
  • 这个特定阈值指的是 top, right, bottom 或 left 之一,换言之,指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。

生效规则

  • 须指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。

  • 并且 top 和 bottom 同时设置时,top 生效的优先级高,left 和 right 同时设置时,left 的优先级高。

  • 设定为 position:sticky 元素的任意父节点的 overflow 属性必须是 visible,否则 position:sticky 不会生效。这里需要解释一下:

  • 如果 position:sticky 元素的任意父节点定位设置为 overflow:hidden,则父容器无法进行滚动,所以 position:sticky 元素也不会有滚动然后固定的情况。

  • 如果 position:sticky 元素的任意父节点定位设置为 position:relative | absolute | fixed,则元素相对父元素进行定位,而不会相对 viewprot 定位。

由于兼容性不好而不被重用,火狐和IOS有很好的支持性。

应用场景:电话薄和微信通讯录的字母吸顶条。

现在只需要一个属性:

position:sticky;top:0;

最新文章

  1. Git在Windows环境下配置Diff以及Merge工具---DiffMerge
  2. iOS之 FBMemoryProfiler FB的循环引用检测工具
  3. javaSE第二十四天
  4. Python:如何得到Popen的输出?
  5. Bzoj 1598: [Usaco2008 Mar]牛跑步 dijkstra,堆,K短路,A*
  6. MYSQL 专家 ----zhaiwx_yinfeng
  7. C#中的线程(下)-多线程
  8. cat和tac的用法
  9. bjtu 1819 二哥求和(前缀和)
  10. monkey----log分析要求
  11. 文件操作命令(TYPE)
  12. python之tkinter使用-Grid(网格)布局管理器
  13. OpenCV 学习笔记 06 图像检索以及基于图像描述符的搜索
  14. 【Hive学习之六】Hive Lateral View &视图&索引
  15. 在eclpse中 一个web project 引用多个 java project 的方法
  16. Java8 Map的遍历方式
  17. 11-hdfs-NameNode-HA-wtihQJM解决单点故障问题
  18. python基础学习1-装饰器在登陆模块应用
  19. scala中:: , +:, :+, :::, +++的区别
  20. Sublime text3学习小记(macOS系统下的安装使用)

热门文章

  1. 打印thinkphp中的sql语句
  2. Chrome 声音自动播放抱错问题【play() failed】
  3. JS 面向对象之继承---多种组合继承
  4. Java jdbc入门
  5. C# 获取窗口句柄并且关闭应用程序
  6. ANN神经网络——Sigmoid 激活函数编程练习 (Python实现)
  7. MongoDB安装步骤
  8. Windows10 IIS配置PHP运行环境(原创)
  9. UIButton的titleLabel
  10. vagrant安装centos7