gpt4 book ai didi

css - CSS 定位和 CSS 边距之间的区别

转载 作者:行者123 更新时间:2023-11-28 09:18:35 26 4
gpt4 key购买 nike

今天我学习了 CSS 中的两个概念,一个是 CSS 定位(静态、相对、绝对、固定),另一个是 CSS Margin,它定义了元素之间的空间。

假设我想移动一个元素,这是最好的方法吗?因为这两个概念似乎都可以做同样的事情。一个例子可能如下:

代码(CSS定位):

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Haha</title>

<style type="text/css">
//Using CSS positioning
h2{position:relative;top:-80px}
</style>
</head>

<body>
<h1>hahahaha</h1>
<h2>hehehehe</h2>
</body>
</html>

代码(CSS边距):

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Haha</title>

<style type="text/css">
//Using CSS Margin
h2{margin-top:-80px}
</style>
</head>

<body>
<h1>hahahaha</h1>
<h2>hehehehe</h2>
</body>
</html>

问题:

1.)如您所见,上面的两个代码通过将第二个标题移动到第一个标题的顶部来完成相同的操作。所以我只是想知道哪种方法实际上是排列元素的正确方法?

最佳答案

不,它们不一样,使用position: relative;保持元素在流中,它只是移动元素 position但实际上它在使用 margin 时保留了流中的空间它移动整个元素,影响使用 margin 移动的元素周围的元素,这在某些情况下也会导致利润率下降......

Demo ( position: relative; )

Demo (与 margin )

CSS 定位如何工作?我刚刚解释了here几分钟后


此外,margin和定位完全是两个不同的东西,定位是一个巨大的概念,其中margin完全不同,定位不会影响您的盒子模型,其中 margin确实,边距用于分隔元素,比如 inline-block元素,或者说你需要在段落上方和下方留出一些空间,它们并不意味着 position元素等...

如果你看到这个

enter image description here

边距占据元素周围的区域,即如果元素是 50pxwidth然后你使用 margin10px , 它需要 10px在所有方面,所以它实际上会让你的元素占据70px总共50px => width + 10px => left margin + 10px => right margin ,其中使用 position , 它不会扩大或减少元素周围的区域,它只是改变了 position可能会或可能不会影响页面上其他元素的元素取决于 positionmargin改变盒子模型,因此,它也会影响 position其他元素,例如 staticrelative .


此外,margin未垂直应用于 inline元素,所以如果你应用 marginspan或任何其他 inline元素说a , margin将仅水平而非垂直拍摄,为此,您必须将它们设为 inline-blockblock水平元素。

欲了解更多信息,you can read my answer on another question .而您可以申请 position: relative;任何元素,不管 block , inlineinline-block它会position元素以你想要的方式...

关于css - CSS 定位和 CSS 边距之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20719109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com