CSS - 为什么有这么多的定位方式,哪种方式正确?

时间:2016-07-29 07:36:33

标签: html css

这是一个哲学而不是100%严格的代码导向问题,但它与编程标准有关,我希望它符合规则。

在学习网页开发的过程中,我一直对定位很感兴趣。我的第一个noob网站看起来像这样:

<body>
    <h1> Welcome to my website. </h1>
    <br> <br> <br> <br> <br> <br> <br> <br> <br><br> <br> <br>
    <p> Copyright 2016 </p>
</body>

然而,我总是感到不安这样做 - 毕竟,这个标签几乎从未在我看过的任何专业网站上使用过,在询问this question之后我明白它不允许任何额外的标记而且不是语义。

我寻找其他方法,然后偶然发现position: absolute。我基本上通过为我页面上的每个元素设置手动位置来使用它,因为我不知道使用position: absolute的任何其他方式而不是这样做。 网站在我的屏幕上看起来很好,但最轻微的调整会破坏它们。

寻找另一种解决方案,我只想到用margin定位所有内容。例如,我会<br><br>而不是margin-top: 5%。我现在仍然这样做,感觉非常错误。

所以我只是在寻找一般建议 - 多数人是如何做到的?什么是最佳做法?显然有数百种方法可以做到这一点,我看了很多指南和教程,但我只是没有得到CSS定位。

5 个答案:

答案 0 :(得分:2)

四个最常用的位置值是Django

initial, relative, absolute and fixed.值用于将元素定位在主屏幕上的固定位置。

fixed用于将元素放在相对于父元素的固定位置。您需要将元素定义为absolute and relative,将其父元素定义为absolute

然后你可以这样做:

relative

For more information see w3schools

答案 1 :(得分:1)

如果您使用position: absolute;您的页面永远无法调整大小,那就是真的。如果你用它来保证它是好的。它比<br>标签好得多。如果你在一行中有三个你可以浮动:左;每个<div>。它会很完美。如果你缩小,那么新行上的第四个<div>可能会出现,或者如果你在一行,那么一行上可能只有两个div。

TL;博士 使用float: left;进行响应式设计。

答案 2 :(得分:1)

无论你想选择哪种方式,问题是它应该在大多数设备上使用Material DesignBootstrap这样的框架很好地呈现,这将帮助你实现这一点,但我通常会使用边距和边框div是大多数专业网站的基石。

答案 3 :(得分:0)

positon:absolute;表示元素相对于其第一个定位(非静态)祖先元素定位。

我同意@Blue表示可以使用保证金而不是<br>。您可以使用float:进行响应式设计。

答案 4 :(得分:0)

我认为好的做法是使用边距定位块。但是当我们遇到一些特殊情况时 - 页面上的某些元素会出现在流中,因此必须使用绝对定位。但是,如果我的工作可能,我会尽量避免使用