绝对位置,有人可以解释一下吗
时间:2020-03-06 14:23:53 来源:igfitidea点击:
这是我需要解释的CSS片段:
#section { width: 860px; background: url(/blah.png); position: absolute; top: 0; left: 50%; margin-left: -445px; }
好的,显然,这是图像的绝对位置。
- 顶部就像从顶部填充,对不对?
- 剩下的50%会做什么?
- 为什么左边距为-445px?
更新:
宽度为860像素。
实际图像是否为100x100(如果有所不同?)?
解决方案
当位置为绝对时,top为距父对象的垂直距离(可能是body标签,因此0是浏览器窗口的顶部边缘)。左50%是距左边缘的距离。负边距将其向左移动445像素。至于为什么,你的猜测和我的一样好。
top is like padding from the top right?
是的,页面顶部。
what does left 50% do?
它将内容移动到屏幕的中央(100%将一直向右移动。)
why is the left margin at -445px?
用" left:50%"将其移动后,会将其向左移动445像素。
通过阅读CSS盒子模型,我们会发现所有需要了解的知识
- 顶部是距html元素顶部的距离;如果位于绝对位置的另一个元素之内,则距顶部的距离。
- &3.它取决于图像的宽度,但可能用于使图像水平居中(如果图像的宽度为890px)。但是,还有其他方法可以使图像水平居中。更常见的是,这用于垂直放置已知高度的块(这是垂直放置已知高度的块的最简单方法):
top: 50% margin-top: -(height/2)px;
可能是为了使元素在页面上居中而完成的(使用"死中心"技术)。
它的工作方式是这样的:假设元素的宽度为890px,将其设置为" position:absolute"和" left:50%",将其左侧边缘置于浏览器的中心(嗯,它可能是其他带有position:relative的元素)。
然后,使用负边距将左手边缘向左移动等于元素宽度一半的距离,从而使其居中。
当然,这可能无法准确地居中(这取决于元素的实际宽度,我们粘贴的代码中没有width
,因此无法确定),但是可以肯定地将元素相对于这一页
上面的代码段涉及一个ID为section的元素(可以是div,span,image或者其他)。
元素具有blah.png的背景图像,它将在x和y方向上重复。
如果父元素也绝对定位,则该元素的顶部边缘将从其父元素的顶部开始定位0px(或者任何其他单位)。如果父窗口是窗口,它将在浏览器窗口的顶部。
元素的左边缘距离其父元素的左边缘左侧50%。
然后,该元素将从该50%点左移445px。