当前位置: 首页 > 科技观察

Position属性有哪些取值,它们有什么特点?

时间:2023-03-17 20:29:37 科技观察

本文转载自微信公众号《三分钟学会前端》,作者安姐。转载本文请联系三分钟学习前端公众号。positionon定义和用法:position属性指定元素的定位类型。说明:此属性定义用于建立元素布局的定位机制。任何元素都可以定位,但绝对或固定元素会生成块级框,而不管元素自身的类型如何。相对定位的元素相对于其在正常流中的默认位置有偏移。-来自w3schoolposition有以下可选值:值描述absolute生成一个绝对定位的元素,相对于静态定位以外的第一个父元素定位。元素的位置由“left”、“top”、“right”和“bottom”属性指定。fixed生成绝对定位的元素,相对于浏览器窗口定位。元素的位置由“left”、“top”、“right”和“bottom”属性指定。relative生成??相对定位的元素,相对于其正常位置定位。因此,“left:20”将向元素的左侧位置添加20个像素。stickyCSS3新增,粘性定位,相对于最近的具有“滚动机制”的祖先(当祖先的overflow隐藏时,scroll,auto或overlay,即不可见时)。它的行为类似于position:relative,当页面滚动到目标区域之外时,它的行为类似于position:fixed,它保持固定在目标位置。静态默认。没有定位,元素出现在正常流中(忽略左、上、右、下或z-index声明)。inherit指定位置属性的值应该从父元素继承。其中,CSS定位机制:CSS有三种基本的定位机制:普通流定位、浮动定位和绝对定位。除非另有说明,否则所有框均按正常流程放置。也就是说,元素在正常流中的位置由元素在(X)HTML中的位置确定。块级盒子从上到下依次排列,盒子之间的垂直距离由盒子的垂直边距计算。行内框水平排列成一行。它们可以使用水平填充、边框和边距来隔开。但是,垂直填充、边框和边距不会影响行内框的高度。由一行组成的水平框称为行框,行框的高度总是足够大以容纳它包含的所有行内框。但是,设置行高可以增加这个框的高度。位置:绝对;绝对定位,绝对定位元素的位置是相对于最近定位的父元素,如果该元素没有定位父元素,那么它的位置是相对于:one

div{width:100px;height:100px;}.one{background:red;}.two{background:yellow;position:absolute;top:50px;left:50px;}.three{background:green;}position:fixed;固定定位,类似于绝对定位,但是元素的包含块是viewport视口。这种定位方法通常用于创建在屏幕滚动时保持固定在同一位置的元素。在下面的示例中,“one”元素位于距页面顶部80像素和距页面左侧20像素的位置。一个
两个.an{width:500px;height:300px;overflow:scroll;背景:印度红;}.one{位置:固定;顶部:50px;左:50px;背景:红色;宽度:100px;高度:100px;颜色:白色;}.two{背景:黄色;高度:500px;}位置:相对的;相对定位,相对于其正常位置定位,不影响其他元素的偏移。一个两个三个div{width:100px;height:100px;color:white;}.one{background:red;}.two{background:yellow;position:relative;top:50px;left:50px;}.three{background:green;}position:sticky;粘性定位,可以考虑相对定位和固定定位。元素在越过某个阈值之前相对定位,然后固定。这是一种结合了position:relative和position:fixed两种定位功能的特殊定位。常见的天花板和底部(头部返回条,底部切换条等)的效果都使用该属性:注意:必须指定顶部、右侧、底部和左侧四个阈值之一,才能使粘性定位生效。否则它的行为与相对定位相同。并且同时设置top和bottom时,top优先生效;left和right同时设置时,left优先。任何设置了position:sticky的父节点的overflow属性必须是可见的,否则position:sticky不会生效。如果position:sticky元素的任意一个父节点的定位设置为overflow:hidden,则父容器不能滚动,所以position:sticky元素不会滚动然后固定。如果position:sticky元素的任何父元素将定位设置为position:relative|绝对|fixed,元素相对于父元素定位,而不是视口。达到设定的阈值,即设置position:sticky元素的行为是相对的还是固定的取决于元素是否达到设定的阈值。位置:静态;静态定位,HTML元素默认的定位方式是静态的(static),静态定位的元素不受上下左右属性的影响,它始终按照页面position的正常流向进行定位:继承;inherit值和其他css属性的inherit值一样,即继承父元素的position值。