我原本期望手風琴組件能夠展開以匹配其父元素的寬度,但是當它展開時,它不僅會擴展自身,還會擴展父元素,導致左窗格壓縮很多。需要做什麼才能實現期望的行為?我很感激任何答案。
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script> <div id="container" class="d-flex flex-column align-items-stretch w-100 h-100"> <div class="d-flex align-items-stretch h-100" style="min-height:0"> <div id="left-pane" class="border border-secondary rounded-1 w-25 m-3 me-2 p-2 bg-light overflow-y-auto"> <div class="list-group"> <a href="" class="list-group-item active">An active item</a> </div> </div> <div id="right-pane" class="flex-grow-1 d-flex flex-column border border-secondary rounded-1 m-3 ms-2 p-2 bg-light overflow-y-auto"> <ul class="nav nav-tabs h-auto" id="tabs" role="tablist"> <li class="nav-item" role="presentation"> <button class="nav-link active" id="tab1" data-bs-toggle="tab" data-bs-target="#tab1-pane" type="button" role="tab" aria-controls="tab1-pane" aria-selected="true"> System info </button> </li> <li class="nav-item" role="presentation"> <button class="nav-link" id="tab2" data-bs-toggle="tab" data-bs-target="#tab2-pane" type="button" role="tab" aria-controls="tab2-pane" aria-selected="false"> Profile </button> </li> </ul> <div class="tab-content h-100 w-100 overflow-y-auto px-3 py-2 border-start border-bottom border-end rounded-bottom" id="tabs-content"> <div class="tab-pane fade show active" id="tab1-pane" role="tabpanel" aria-labelledby="tab1" tabindex="0"> <div class="accordion" id="accordionPanelsStayOpenExample"> <div class="accordion-item"> <h2 class="accordion-header"> <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#panelsStayOpen-collapseOne" aria-expanded="false" aria-controls="panelsStayOpen-collapseOne"> Accordion Item #1 </button> </h2> <div id="panelsStayOpen-collapseOne" class="accordion-collapse collapse"> <div class="accordion-body w-auto h-auto"> <strong>This is the first item's accordion body.</strong> It is shown by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the <code>.accordion-body</code>, though the transition does limit overflow. </div> </div> </div> </div> </div> <div class="tab-pane fade" id="tab2-pane" role="tabpanel" aria-labelledby="tab2" tabindex="0"> tab2 content </div> </div> </div> </div> </div>
我嘗試稍微調整一下手風琴標題的寬度及其內容,但這沒有用。
P粉5369091862023-09-09 10:30:14
#right-pane
元素沒有明確宣告 flex-basis
或 width
,因此它將佔用所需的空間。當手風琴關閉時,它會按照您的預期工作,因為它的內容寬度較窄(然後由於flex-grow 中的
類別)。但是,當顯示手風琴的內容時,內容將嘗試佔用盡可能多的水平空間。 flex-grow: 1
,然後會增長以填充剩餘空間-1
為避免這種情況,請考慮在#right-pane元素上設定某種
width :25% flex-basis
或width
,例如透過
w-25`此處:
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script> <div id="container" class="d-flex flex-column align-items-stretch w-100 h-100"> <div class="d-flex align-items-stretch h-100" style="min-height:0"> <div id="left-pane" class="border border-secondary rounded-1 w-25 m-3 me-2 p-2 bg-light overflow-y-auto"> <div class="list-group"> <a href="" class="list-group-item active">An active item</a> </div> </div> <div id="right-pane" class="flex-grow-1 d-flex flex-column border border-secondary rounded-1 m-3 ms-2 p-2 bg-light overflow-y-auto w-25"> <ul class="nav nav-tabs h-auto" id="tabs" role="tablist"> <li class="nav-item" role="presentation"> <button class="nav-link active" id="tab1" data-bs-toggle="tab" data-bs-target="#tab1-pane" type="button" role="tab" aria-controls="tab1-pane" aria-selected="true"> System info </button> </li> <li class="nav-item" role="presentation"> <button class="nav-link" id="tab2" data-bs-toggle="tab" data-bs-target="#tab2-pane" type="button" role="tab" aria-controls="tab2-pane" aria-selected="false"> Profile </button> </li> </ul> <div class="tab-content h-100 w-100 overflow-y-auto px-3 py-2 border-start border-bottom border-end rounded-bottom" id="tabs-content"> <div class="tab-pane fade show active" id="tab1-pane" role="tabpanel" aria-labelledby="tab1" tabindex="0"> <div class="accordion" id="accordionPanelsStayOpenExample"> <div class="accordion-item"> <h2 class="accordion-header"> <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#panelsStayOpen-collapseOne" aria-expanded="false" aria-controls="panelsStayOpen-collapseOne"> Accordion Item #1 </button> </h2> <div id="panelsStayOpen-collapseOne" class="accordion-collapse collapse"> <div class="accordion-body w-auto h-auto"> <strong>This is the first item's accordion body.</strong> It is shown by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the <code>.accordion-body</code>, though the transition does limit overflow. </div> </div> </div> </div> </div> <div class="tab-pane fade" id="tab2-pane" role="tabpanel" aria-labelledby="tab2" tabindex="0"> tab2 content </div> </div> </div> </div> </div>