position中的四种定位方式
position是CSS中比较重要的一个属性,常用于页面布局,它的值有4个:
????????static:默认文档流
????????relative: 相对定位,相对于自身位置
????????absolute:绝对定位,相对于非static父元素进行定位,脱离文档流
????????fixed:固定定位,脱离文档流
目录
1、position:fixed 固定定位
? ? ? ? 1.介绍
????????fixd:固定定位,相对于浏览器窗口进行定位,脱离原来的文档流
????????元素的位置相对于浏览器窗口是固定位置。即使窗口是滚动的它也不会移动:
? ? ? ? ?相对属性值:Left right top bottom
? ???????2.?特性
????????????1.元素脱离正常文档流,不占位(也脱离文本流,全脱)
????????????2.始终相对于浏览器窗口四个角为原点进行固定定位的
????????????3.不会随页面的内容滚动而滚动
????????????4.能使不能设置宽高的行级元素设置宽高
????????????5.提升层级
????????????6.如果没有定位偏移属性,对元素本身有影响;
? ? ? ? 3. 应用场景
????????????????相对于窗口定位的元素如弹窗、跟随滚动的导航、侧边栏
? ? ? ? ? 4. 注意事项
????????????????子元素设置绝对定位,父元素可以设置相对定位、绝对定位、固定定位, 这三种情况,参照元素都是父元素
?????????绝对定位,参照元素都是父元素
????????????1.子绝父相
????????????????????子元素设置绝对定位,父元素设置相对定位(一般都用这个)
????????????2.子绝父绝
???????????????????子元素设置绝对定位,父元素设置绝对定位
????????????3.子绝父固
????????????????????子元素设置绝对定位,父元素设置固定定位
2、position:static静态定位
? ? ? ? 1.介绍
????????????????static:自动定位(默认定位方式)唯一的用处就是用来取消定位。
????????????????表示“将元素放在文档布局流的默认位置,HTML 元素的默认值,即没有定位,遵循正常的文档流对象。
????????????????常用于重置 定位属性:静态定位的元素不会受到 top, bottom, left, right影响。
????????2. 定位元素的层级顺序? ?层级
????????????????????语法: z-index: n;
???????????????????1、标签添加定位之后,可以覆盖在页面的其他标签上
? ? ? ? ? ? ? ? ? ?2、?后面加载的定位元素默认会覆盖在先加载的定位元素上
? ? ? ? ? ? ? ? ? ?3、?z-index属性:设置定位元素的叠放次序
? ? ? ? ? ?3. 特性:
???????????????????1. z-index的属性值越大,它的层级就越高
???????????????????2. 属性值可以取值为正数,0,负数,没有单位(整数)
? ? ? ? ? ? ? ? ? 3. 属性值取值相同的情况下,按照结构中的顺序排列次序,后来居上
???????????????????4. 正值向上调整层级,负值向下调整层级
???????注意:z-index属性要与定位一起使用才有效,否则无效
3. position:relative? 相对定位
??????1.? 介绍
????????相对定位,相对元素本身的位置进行定位,相对定位不脱离自己原来的文档流,移动的位置是以自己左上角为基点来移动的
????????原来位置指在文档流中默认的位置,若加上了浮动时,那么这个原来位置就是你设定浮动时的位置)的偏移,原来位置依然占据空间。
相对定位
绝对定位。
? ? ? ? 2.特征
????????????????* 相对定位的元素相对于其原始位置进行定位。
????????????????* 元素的边距和填充会影响相对定位的元素。
????????????????* 元素的 z 索引不会影响相对定位的元素。
? ? ? ? 3.? 应用场景
????????????????相对定位常用于微调元素的位置,实现一些简单的布局效果。它可以与其他定位技术结合使用,如绝对定位和固定定位。
4. position:absolute? ?绝对定位
? ? ? ? 1. 介绍
????????????????绝对定位本身与文档流无关,因此不占空间,普通文档流中的元素的布局就当绝对定位的元素不存时一样,所以 它们可以覆盖页面上其他的元素,且可以通过z-index属性来控制这些层的对方顺序。
????????????????absolute:绝对定位,相对于它上一个已经定位的祖先元素进行定位,如果所有祖先元素都没有定位就以当前屏幕进行定位。如果子元素想在父元素上定位而父元素不想挪动位置,那么就为父元素设置相对定位且父元素的top和left为0。(自绝父相)
????????2.特征
????????* 绝对定位的元素相对于其最近的定位父元素进行定位。
????????* 元素的边距和填充不会影响绝对定位的元素。
????????* 元素的 z 索引会影响绝对定位的元素
? ? ? 3.? 应用场景
????????????????绝对定位常用于创建复杂的布局效果和精确控制元素的位置。它可以脱离文档流,不会对其他元素的布局产生影响。
5. 绝对定位和相对定位的区别
????????绝对定位使元素的位置与文档流无关,因此不占据空间。可以理解为绝对定位将元素从原来位置拿走,后面的元素就会占据绝对定位元素的位置。如同排队一样,前面的人走了,后面的人就会前进占去离开的人的位置。
????????相对定位与绝对定位相反,它移动后原本所占的空间仍保留。可理解为它进行定位后,之前的位置后面的元素不可占据。如同私人车库停车一样,车子离开后,别的车不可以停在那个车库。
6. 实现盒子居中的方法
????????方法一:
????????????????实现思路:margin负值配合百分比 ;margin 负间距原理
? ? ? ? ? ? 使用margin属性的负间距实现具有width属性和height属性的绝对定位元素的居中??????????
??????????position: absolute;?
????????????left: 50%;???/* 定位元素盒的宽度的一半 */
????????????top: 50%;??/* 定位元素盒的高度的一半 */
????????????margin-left: -100px;????/* -定位元素本身的宽度的一半 */
????????????margin-top: -100px;???/* -定位元素本身的高度一半 */
方法二:
????????实现思路:left,right,top,bottom并用,配合margin:auto;
????????如果元素的四个边的位置是使用“top”、“right”、“bottom”和“left”来描述的,那么元素的“height”和“width”将隐式地由偏移量决定。
?????????使用margin:auto;实现具有width属性和height属性的绝对定位元素的居中
????????注意:定位并不是一种用来做主要页面布局的方式,主要用于管理和微调页面中的一个特殊项的位置。
7. 定位与浮动的区别对比
????????1、float: left|right;
????????????????脱离了文档流,不脱离文本流,半脱离
????????2、position: absolute|fixed;
????????????????脱离了文档流,脱离文本流,全脱离。
????????????????1.绝对定位和固定定位脱离正常标准流脱离文本流 全脱
????????????????2.浮动只脱离正常标准流不脱离文本流
????????????????3.都可以使行级标签支持宽高
????????????????4.元素设置绝对固定浮动之后,就不在区分标签类型了,类似于行内块标签
8. 什么叫脱离文档流
????????脱离文档流只是对html文档的一种解析方案的说法。脱离文档流是相对正常文档流而言的。
????????正常文档流就是我们没有用css样式去控制的html文档结构,写的界面的顺序就是网页展示的顺序。比如写了3个div块。正常文档流就是依次显示这3个div块。从左往右,自上而下的顺序。
????????脱离文档流就是指它所显示的位置和文档代码就不一定一致了。比如可以用css控制,把最后一个div块显示在第一个div块的地方。只是浏览器的处理方案。
????????dom结构是没有发生变化的。和html文档一样。用js取这个节点可以取到的
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!