css - 关于 CSS absolute 的基本查询

标签 css css-position

我正在使用以下 HTML/CSS 来理解 CSS 中的“绝对”:

http://jsfiddle.net/x0rp29kx/9/

相关部分如下:

.concentric-rectangle {
    display: block;
    //position: absolute;
    top: 50%;
    display: inline-block;
    width: 150px;
    height: 150px;
}

当“position: absolute”被注释时,它正确地显示了两行,正如预期的那样。但是,当它未被注释时,它会将两者合并为一行。为什么?

我尝试将“myrow”类添加到所有列 (col-md-3) 的父级,并将其位置声明为相对的。我希望在这样做之后,如果我取消注释“position: absolute”,那么两行的渲染将不会重叠。然而,它仍然如此。

是什么导致它们重叠?

编辑:我看到这个 http://i.imgur.com/N9PNj4B.png当 myrow 是相对的而 CR 是绝对的时与此 http://i.imgur.com/ljfKKX5.png当两者都是静态的。有什么想法吗?

最佳答案

理论

position: absolute 实际上将元素定位到最里面的元素(哈哈),而不是 position: static(这是默认设置)。

通常,您在某处使用具有 position: relative 的祖先,没有任何改变其位置的东西(因此没有 topbottomleftright 属性)。这与 position: static 相同(因为这是相对位置的相对位置),除了它为具有绝对位置的元素创建包含 block 。

CSS2 §10.1 Definition of "containing block"

(很棒)Learn CSS Layout教程有一章关于position .

实践

在您的例子中,我看到两行具有以下位置组合:

.myrow { position: relative; }
.concentric-rectangle { position: absolute; }

如果 .myrow 获得静态定位,则所有 .concentric-rectangle 都相对于视口(viewport)而不是它们的行定位。

关于css - 关于 CSS absolute 的基本查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31062956/

相关文章:

html - 使用 HTML 和 CSS 在 float 图像列表项上放置文本?

css绝对位置在相对位置内不重叠

css 在两个 div 中间扩展 div 将它们推到两边

python - 使用 xpath (python) 查找最后一个表列表的链接

jquery - 不同高度的菜单需要放置在其父 div 的垂直居中

类别大于 n 的 CSS 目标元素,与其他类别无关

html - 动态大小块后如何绝对定位?

css - 固定导航菜单在 float 导航栏上的 CSS 定位

css - 固定在位于页脚上的底部的预页脚

css - 一个div不在float : left div的同一行