我使用的是直接从Docs页面设置的基本引导程序5标签(药丸):
<ul class="nav nav-pills mb-3" id="pills-tab" role="tablist">
<li class="nav-item" role="presentation">
<a class="nav-link active" id="pills-home-tab" data-bs-toggle="pill" href="#pills-home" role="tab" aria-controls="pills-home" aria-selected="true">Home</a>
</li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="pills-profile-tab" data-bs-toggle="pill" href="#pills-profile" role="tab" aria-controls="pills-profile" aria-selected="false">Profile</a>
</li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="pills-contact-tab" data-bs-toggle="pill" href="#pills-contact" role="tab" aria-controls="pills-contact" aria-selected="false">Contact</a>
</li>
</ul>
<div class="tab-content" id="pills-tabContent">
<div class="tab-pane fade show active" id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab">...</div>
<div class="tab-pane fade" id="pills-profile" role="tabpanel" aria-labelledby="pills-profile-tab">...</div>
<div class="tab-pane fade" id="pills-contact" role="tabpanel" aria-labelledby="pills-contact-tab">...</div>
</div>然后我用floating-divs填充tab-panes:
.floating-div {
float: left;
display: block;
height: 100px;
width: 100px;
border: 1px solid #dddddd;
margin: 10px 10px 0 0;
}
.pane-1 {
background-color: green;
}
.pane-2 {
background-color: orange;
}
.pane-3 {
background-color: blue;
}到目前为止,一切都像预期的那样工作- JsFiddle。
然后,我将标准bootstrap的flexbox类应用于tab-pane,以使选项卡内容与我喜欢的d-flex flex-wrap justify-content-between对齐。
这就是整个事情走下坡路的地方- JsFiddle。
第一个tab-pane中的内容布局方式正是我所追求的,但出于某种原因,所有其他tab-pane中的内容都被下移了。不仅如此,仔细观察,似乎每个tab-pane都包含了所有应该分布在3个不同div上的floating-div,其中一些是看不见的……
现在我的问题是:我的CSS或者我使用Bootstrap的flexbox类的方式有问题吗,或者是Bootstrap中的bug?
发布于 2021-02-08 16:38:55
因为".d-flex“属性附带了"display: flex! Important”说明符。
但是".tab-content> .tab-pane“只使用"display: none”格式。在这种情况下,".d-flex“将占主导地位,并且在所有情况下都将保持为"display: flex”。
另一方面,由于"opacity: 0“是看不见的,但它会占用空间。
为了解决这个问题,
方法1:
在".tab-pane“中创建一个新元素。
<div class="tab-pane fade show active" id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab">
<div class="d-flex flex-wrap justify-content-between">
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
</div>
</div>方法二:
编写一个新类。".d-maybe-flex“
.d-maybe-flex
{
display: flex;
}<div class="tab-pane fade show active d-maybe-flex flex-wrap justify-content-between" id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab">
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
</div>示例1
.floating-div {
float: left;
display: block;
height: 100px;
width: 100px;
border: 1px solid #dddddd;
margin: 10px 10px 0 0;
}
.pane-1 {
background-color: green;
}
.pane-2 {
background-color: orange;
}
.pane-3 {
background-color: blue;
}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- CSS only -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous">
<!-- JavaScript Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js" integrity="sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW" crossorigin="anonymous"></script>
<ul class="nav nav-pills mb-3" id="pills-tab" role="tablist">
<li class="nav-item" role="presentation">
<a class="nav-link active" id="pills-home-tab" data-bs-toggle="pill" href="#pills-home" role="tab" aria-controls="pills-home" aria-selected="true">Green</a>
</li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="pills-profile-tab" data-bs-toggle="pill" href="#pills-profile" role="tab" aria-controls="pills-profile" aria-selected="false">Ornage</a>
</li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="pills-contact-tab" data-bs-toggle="pill" href="#pills-contact" role="tab" aria-controls="pills-contact" aria-selected="false">Blue</a>
</li>
</ul>
<div class="tab-content" id="pills-tabContent">
<div class="tab-pane fade show active" id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab">
<div class="d-flex flex-wrap justify-content-between">
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
</div>
</div>
<div class="tab-pane fade" id="pills-profile" role="tabpanel" aria-labelledby="pills-profile-tab">
<div class="d-flex flex-wrap justify-content-between">
<div class="floating-div pane-2"></div>
<div class="floating-div pane-2"></div>
<div class="floating-div pane-2"></div>
<div class="floating-div pane-2"></div>
<div class="floating-div pane-2"></div>
</div>
</div>
<div class="tab-pane fade" id="pills-contact" role="tabpanel" aria-labelledby="pills-contact-tab">
<div class="d-flex flex-wrap justify-content-between">
<div class="floating-div pane-3"></div>
<div class="floating-div pane-3"></div>
<div class="floating-div pane-3"></div>
<div class="floating-div pane-3"></div>
<div class="floating-div pane-3"></div>
<div class="floating-div pane-3"></div>
</div>
</div>
</div>
示例2
.d-maybe-flex {
display: flex
}
.floating-div {
float: left;
display: block;
height: 100px;
width: 100px;
border: 1px solid #dddddd;
margin: 10px 10px 0 0;
}
.pane-1 {
background-color: green;
}
.pane-2 {
background-color: orange;
}
.pane-3 {
background-color: blue;
}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- CSS only -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous">
<!-- JavaScript Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js" integrity="sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW" crossorigin="anonymous"></script>
<ul class="nav nav-pills mb-3" id="pills-tab" role="tablist">
<li class="nav-item" role="presentation">
<a class="nav-link active" id="pills-home-tab" data-bs-toggle="pill" href="#pills-home" role="tab" aria-controls="pills-home" aria-selected="true">Green</a>
</li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="pills-profile-tab" data-bs-toggle="pill" href="#pills-profile" role="tab" aria-controls="pills-profile" aria-selected="false">Ornage</a>
</li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="pills-contact-tab" data-bs-toggle="pill" href="#pills-contact" role="tab" aria-controls="pills-contact" aria-selected="false">Blue</a>
</li>
</ul>
<div class="tab-content" id="pills-tabContent">
<div class="tab-pane fade show active d-maybe-flex flex-wrap justify-content-between" id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab">
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
<div class="floating-div pane-1"></div>
</div>
<div class="tab-pane fade d-maybe-flex flex-wrap justify-content-between" id="pills-profile" role="tabpanel" aria-labelledby="pills-profile-tab">
<div class="floating-div pane-2"></div>
<div class="floating-div pane-2"></div>
<div class="floating-div pane-2"></div>
<div class="floating-div pane-2"></div>
<div class="floating-div pane-2"></div>
</div>
<div class="tab-pane fade d-maybe-flex flex-wrap justify-content-between" id="pills-contact" role="tabpanel" aria-labelledby="pills-contact-tab">
<div class="floating-div pane-3"></div>
<div class="floating-div pane-3"></div>
<div class="floating-div pane-3"></div>
<div class="floating-div pane-3"></div>
<div class="floating-div pane-3"></div>
<div class="floating-div pane-3"></div>
</div>
</div>
https://stackoverflow.com/questions/66066150
复制相似问题