我有一个flex父元素下的5个内联正方形,当点击按钮时,将删除第一个正方形。每次删除第一个正方形时,其后面的方块会被向左推回一个方块宽度(预期的行为)。是否可能使其他正方形在发生这种情况时保持其位置(即它们停留在先前的位置而不是向左移动)?
我能想到的一种方法是通过绝对定位每个正方形元素来实现。但是这是防止正方形移动的唯一方法吗? 注意: 如果我也删除了最后一个正方形,我希望正方形仍然保持它们的位置; 因此,像
请参见Fiddle以获取示例。
我能想到的一种方法是通过绝对定位每个正方形元素来实现。但是这是防止正方形移动的唯一方法吗? 注意: 如果我也删除了最后一个正方形,我希望正方形仍然保持它们的位置; 因此,像
justify-content: flex-end
这样的东西对我的需求不起作用,因为它不能同时适用于两种情况。
注意2: visibility: hidden
或opacity: 0
也不能满足我的需求,因为我确实需要删除方块元素。我还计划稍后附加另一个正方形元素,不希望布局发生变化。这可行吗?请参见Fiddle以获取示例。
$('.click-me').on('click', function() {
// Remove the first square.
$('.main').children().first().remove();
});
.main {
position: relative;
display: flex;
margin-top: 20px;
}
.main span {
width: 35px;
height: 35px;
background-color: #2e852e;
border: 1px solid #000;
}
.main .square1,
.main .square5 {
background-color: #a5a551;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="click-me">Click Me!</button>
<div class="main">
<span class="square1"></span>
<span class="square2"></span>
<span class="square3"></span>
<span class="square4"></span>
<span class="square5"></span>
</div>