相对位置 css 技巧

position relative css tricks

我是一名新的网页设计师,所以我决定分析其他 HTML、CSS 代码。我发现了一件奇怪的事。为什么有些开发人员要使用 position: relative 而没有任何 top,left,right,bottom?

有没有什么技巧?

像这样:

.main {
            position: relative;
            margin: 0;
            overflow-x: hidden;
        }

因为相对意味着.main 继承自其父节点的属性。所以它会拥有和他父亲一样的属性。

Position relative 很有用,因为设置了位置的元素(不是 static)可用于在其中定位其他元素。因为 relative 维护页面流中的东西,所以不需要设置 topleftrightbottom 值。例如,如果你想使用 absolute 定位 inside a box,你给外框 position: relative。这意味着 inside 中的任何元素都将从相对外框的左上角开始定位。如果父元素没有定位设置(或继承),它会将自己定位到 viewport 而不是盒子。因此,未包装在 relative 包装器中的元素将根据页面定位自身,而 relative 包装器意味着它将 相对于 包装器定位。

这就是黑客攻击,这就是为什么您会经常看到它的原因。 简而言之:'relative' 将该元素保持在流中,而具有其他定位的子元素现在将相对于该元素定位。

快速示例

h1 { width: 100%; }
#relative { position: relative; width: 100%; }
.position { position: absolute; top: 20px; left: 20px; border: 1px solid #000;}
<h1>Example:</h1>
<div id="absolute" class="position">Position based on page</div>
<div id="relative"><div class="position">Position based on box</div></div>

真正的意思是"relative to itself"。如果你在一个元素上设置 position: relative; 但没有其他定位属性(顶部、左侧、底部或右侧),它根本不会影响它的定位,它将与你将它保留为位置完全一样: 静态;

但是如果你给它一些其他定位属性,比如 top: 10px;,它会将它的位置从正常位置向下移动 10 像素。

将 HTML 元素设置为 position: relative; 且没有任何特定于像素的方向规则允许您控制元素的 z 轴,从而可以控制您的元素的分层网页。