我对CSS不是很熟悉,但正在使用它。
通常我使用内联或CSS方法的style
元素来定位元素。
我不知道这是否是正确的问题,但是相对定位和绝对定位哪种方法更适合定位元素?
我使用类似于style="position:relative; left:100px; top:30px"
的方式。
这样定位是否是正确的,能够在所有浏览器和移动设备中完全一致的出现呢?
如果有谁能分享他们的经验和指导,对许多初学者会有很大的帮助!
绝对定位与其父元素无关。
当父元素具有相对定位时,使用绝对定位的子元素会相对于其父元素进行定位。
例如:
对于绝对定位,
<div><div style="position:absolute; top:0; left:0;">Abc</div></div>
<div style="position:relative;"><div style="position:absolute; top:0; left:0;">Abc</div></div>
使用这个网站,这就是我练习CSS的方法
Mozilla的 MDN声明:
relative 将所有元素都按照未被定位的方式进行布局,然后调整元素的位置,而不改变布局(因此留下一个空白区域,该区域是元素在未被定位时所在的位置)。对于table-*-group、table-row、table-column、table-cell和table-caption元素,position:relative的效果是未定义的。
这基本上意味着每个元素都是一个块,紧接在前面的元素之后,并占用屏幕空间-随后的元素将占用其后的下一个可用空间。
absolute 不为元素保留空间。相反,将其相对于最近的已定位祖先或包含块的指定位置定位。绝对定位的框可以具有边距,它们不会与任何其他边距合并。
这意味着元素将出现在指定的位置(相对于其父级或带有position属性的最近的父级),而不考虑其他内容。
关于最佳实践 - 并没有固定的规定,取决于您想要达到的效果,这种情况下最佳实践是使用为此设计的position属性。
关于移动设备,您可能需要查看响应式网页设计,像Twitter Bootstrap这样的框架不仅可以为您处理这个问题,而且提供了一个非常方便快捷的方法来开始构建您的网站。
absolute
定位是最适合需要放置在 精确 坐标的元素。而 relative
定位将会根据元素所处位置加上坐标值。例如,如果我有一个 <p>
元素在一个 <div>
里面,我想要缩进它,我会使用 relative
和 left:15;
。至于在所有浏览器中显示相同;这几乎是不可能的。总会有那么一个浏览器不符合标准。但是,absolute
和 relative
通常都可以工作。
我建议的第一件事是避免使用内联CSS,因为这会影响性能和维护问题;然后我建议您参加CSS在线课程,例如:
#example_2 .parent
的特定性。但是让我们阅读一下OP的第一行,他说“我对CSS不太熟悉”。因此,这对于他来说是很好的信息,前提是他首先足够了解基础知识。感谢@Dre抽出时间提供更多信息。 - Nitesh