博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
css定位总结
阅读量:5851 次
发布时间:2019-06-19

本文共 1977 字,大约阅读时间需要 6 分钟。

position:static;//position的默认值,表示元素按照标准文档流定位,设置left,top,right,bottom,z-index无效。

position:relative;//按照标准文档流相对定位,不设置left,top,right,bottom,z-index时,位置和static时一样,设置left,top,right,bottom,z-index时会相对于它在static时的位置定位。其他的元素的位置则不会受该元素的影响发生位置改变来弥补它偏离后剩下的空隙。也就是说其它元素的位置和它是static时一样。代码如下:

效果图:

clipboard.png

div3是relative定位,位置偏移了,但div4的位置仍然和div3为偏移时一样。

position: absolute;脱离文档流的绝对定位。脱离文档流意味着文档流里的元素会当它不存在一样定位。absolute是相对于它的第一个定位不是static的祖先元素定位。如果绝对定位(position属性的值为absolute)的元素没有“positioned”祖先元素,那么它是相对于文档的 body 元素,并且它会随着页面滚动而移动。代码如下:

div2
div3
div4

效果图:

clipboard.png

position:fixed;脱离文档流的固定定位,元素会相对于视窗来定位,这意味着即便页面滚动,它还是会停留在相同的位置。和 relative 一样, top 、 right 、 bottom 和 left 属性都可用。

position:sticky'粘性定位。是一个新的css3属性。

它的表现类似position:relative和position:fixed的合体,在目标区域在屏幕中可见时,它的行为就像position:relative; 而当页面滚动超出目标区域时,它的表现就像position:fixed,它会固定在目标位置。(这是网上的大多数说法,但不完全对,这只适用于sticky定位元素是body的子元素时的情况。如果sticky定位元素的父元素,情况就会不一样。具体的请看下面的代码分析)

但总的来说元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位,只是固定定位相对的对象比较复杂不一定是浏览器窗口。

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

以下是我经过测试后的结果:

position:sticky生效条件:
1、设置了top或bottom,left或right
2、父元素要全部可见,这里的可见是指父元素本身不能被父元素的父级元素的overflow:hidden给盖住,使父元素的最小高度不能全部可见。
3、父元素本身不能设置overflow:hidden。
4、如果父元素的overflow的值为auto、scroll等使得父元素的内容不溢出的属性时,sticky定位的元素的定位是相对于它的父元素的而不是浏览器窗口。如果父元素的内容允许溢出且溢出内容超出浏览器窗口,sticky定位的元素的定位是相对于浏览器窗口的。
下面是测试代码:

    

顶部

  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
底部

转载地址:http://bbdjx.baihongyu.com/

你可能感兴趣的文章
MediaPlayer播放/Data目录下内容失败
查看>>
Debian 安装LAMP
查看>>
安装iftop流量监控工具
查看>>
Oracle存储过程语法
查看>>
c# 利用dynamic反序列化
查看>>
获取应用的签名信息和md5指纹
查看>>
J2SE Socket SSL/TLS C/S模式编程
查看>>
iOS app开发中常用技巧
查看>>
一个快速启动vmware的批处理
查看>>
SparkMLlib Kmeans客户细分
查看>>
effective java读书笔记15:使可变性最小
查看>>
ubuntu修改root密码
查看>>
CentOS 7 Shell脚本编程第十一讲 if 语句和简单练习
查看>>
时钟tick转换为时间戳
查看>>
配置 maven-war-plugin
查看>>
android点击文本框之外的地方隐藏键盘
查看>>
5.Java基础复习----Map
查看>>
Oracle中SYS_CONNECT_BY_PATH函数的妙用
查看>>
ldap 身份验证的通用步骤
查看>>
Android中View和ViewGroup介绍
查看>>