Bootstrap 5 - align "margins" inside and outside of accordion

Viewed 40

I am trying to align three Boostrap 5 grids:

  • Header outside of the accordion
  • Overview in the accordion header
  • Details in the accordion body

The accordion header has a left and right margin/padding and the collapse icon also takes up some space.

I would like to the header and details grids to use the same "margins" as the overview grid.

I tried to add a column with padding like "ps-4 pe-4", but I at best get an approximate alignment

.colored-bg1 {
  background: lightgray
}

.colored-bg2 {
  background: lightyellow
}
<!doctype html>
<html lang="en">

  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
    <title>Bootsrap 5 accordion</title>
  </head>

  <body>
    <div class="container-fluid">
      <div class="row">
        <div class="col-4 colored-bg1">Column 1 header</div>
        <div class="col-4 colored-bg2">Column 2 header</div>
        <div class="col-4 colored-bg1">Column 3 header</div>
      </div>
    </div>
    <div class="accordion" id="accordionExample">
      <div class="accordion-item">
        <div class="accordion-header" id="headingOne">
          <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="false" aria-controls="collapseOne">
            <div class="container-fluid">
              <div class="row">
                <div class="col-4 colored-bg1">Column 1 overview</div>
                <div class="col-4 colored-bg2">Column 2 overview</div>
                <div class="col-4 colored-bg1">Column 3 overview</div>
              </div>
            </div>
          </button>
        </div>
        <div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
          <div class="accordion-body">
            <div class="container-fluid">
              <div class="row">
                <div class="col-4 colored-bg1">Column 1 details</div>
                <div class="col-4 colored-bg2">Column 2 details</div>
                <div class="col-4 colored-bg1">Column 3 details</div>
              </div>
               <div class="row">
                <div class="col-4 colored-bg1">Column 1 details</div>
                <div class="col-4 colored-bg2">Column 2 details</div>
                <div class="col-4 colored-bg1">Column 3 details</div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
  </body>

</html>

1 Answers

The overview and details section is already using the same padding. Add a wrapper div around the header above the accordion and give it the same padding as the overview and details section, i.e padding: 1rem 1.25rem;

<div style="padding: 1rem 1.15rem;">
    <div class="container-fluid">
          <div class="row">
            <div class="col-4 colored-bg1">Column 1 header</div>
            <div class="col-4 colored-bg2">Column 2 header</div>
            <div class="col-4 colored-bg1">Column 3 header</div>
          </div>
        </div>
    </div>

<!-- end snippet -->
Related