【发布时间】:2015-10-06 14:30:56
【问题描述】:
我有一系列文章
<section>
<article>1</article>
<article>2</article>
<article>3</article>
....
<article>999</article>
<section>
以每行三个的网格排列
section {
position: relative
}
article {
display: inline-block;
width: 33%;
}
并且我希望它们在单击时水平扩展以完全占据其行。
所以我创建了一个expanded 类
.expanded {
position:absolute;
left:0px;
width: 100%;
}
并在点击时应用它
$("article").click(function(){
$(this).toggleClass("expanded");
});
我快到了,你可以在这里看到http://jsfiddle.net/aqw339r0/1/
当我点击任何一篇文章时,它们会扩大到该行的全宽;但问题是,当我单击一行的第一篇文章(第一行除外)时,它“跳转”到正上方的行。
我已尝试更改 article 和 .expanded 的 position 和 display 属性,但我无法获得所需的行为。例如:当我更改.expanded 的position:absolute 时,第5 和第6 块,“跳转”到下面的行。当我删除 display:inline-block 并更改为 float:left 时类似。
您对为什么会发生这种情况以及如何纠正它有任何想法吗?
【问题讨论】:
-
如果您删除
position:absolute会怎样?这似乎解决了它 -
我认为不可能创建行,真的吗?也就是说,将每 3 个元素包装在一个相对位置的框中。可以吗?
-
为什么会发生这种情况很清楚...您正在更改文档流程
-
绝对位置将元素从文档流中取出
标签: javascript jquery html css