Bootstrap 动态添加的元素之间没有间距

wpx232ag  于 2023-04-18  发布在  Bootstrap
关注(0)|答案(1)|浏览(115)

我的标记中有以下模板。

<template id="unsequenced-template">
    <button type="button" class="btn btn-primary railcar"></button>
</template>

然后我把它插入到DOM中,就像这样。

// Inserts a railcar in the unsequenced list before the specified target
function addSequenced(railcar, $target) {
    var $clone = $($('#unsequenced-template').html());
    $clone.attr('data-id', railcar.id);
    $clone.text(railcar.number);
    $clone.insertBefore($target);
    modified = true;
}

这是可行的,但是这样插入的按钮之间的间距为零。我甚至尝试在$clone上添加一个空格,但没有效果。我还尝试在模板中添加空格,但也没有效果。
一些按钮是在开始时添加的。它们是每行一个,并且这些按钮之间显示了一个空格。但是我如何使用JavaScript显示插入的按钮之间的空格呢?

wixjitnu

wixjitnu1#

使用flexbox折叠所有空白,然后添加一个间隙。

#btn-container {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2em;
}
function addSequenced(railcar, $target) {
    var $clone = $($('#unsequenced-template').html());
    $clone.attr('data-id', railcar.id);
    $clone.text(railcar.number);
    $clone.insertBefore($target);
    modified = true;
}

let num = 4;
$("#add-btn").on("click", function(e) {
  addSequenced({
    id: num,
    number: num,
  }, $(this));
  num++;
});
#btn-container {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2em;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
<template id="unsequenced-template">
    <button type="button" class="btn btn-primary railcar"></button>
</template>
<div id="btn-container">
  <button type="button" class="btn btn-primary railcar">1</button>
  <button type="button" class="btn btn-primary railcar">2</button>
  <button type="button" class="btn btn-primary railcar">3</button>
  <button id="add-btn" type="button" class="btn btn-secondary">Add</button>
</div>

相关问题