htmlcsstwitter-bootstrapbootstrap-4

Override bootstrap side gaps on page for div


I'm using bootstrap 4.3.1, ASP.NET MVC (.NET 5) and all the pages have gaps at the side which is fine but I want one div to ignore that and be 80% of the width and centered, whilst the remaining parts of the page stay the same.

No matter what the div wont change unless I put "width: 1000px;" and there's still the left margin, even though I specify "left: 50px !important".

I've tried a combination of setting the div as "container-fluid" and adding that into a "row". I've also tried adding style tags "style="width:80% !important; left:50px !important;padding:0px;margin:0px;"

Solution Zip File: Google Drive

<div class="row" style="width:80% !important; left:50px !important;padding:0px;margin:0px;" >
    <ul class="nav nav-tabs">

        <li class="nav-item"><a class="nav-link active" data-toggle="tab" href="#rLocal">Test 1</a></li>
        <li class="nav-item"><a class="nav-link" data-toggle="tab" href="#rrEPRA">Test 2</a></li>
        <li class="nav-item"><a class="nav-link" data-toggle="tab" href="#rSWA">Test 3</a></li>
        <li class="nav-item"><a class="nav-link" data-toggle="tab" href="#rGI">Test 4</a></li>
    </ul>
    <div>
        <div class="tab-content">     

            <div role="tabpanel" class="tab-pane fade active" id="rLocal">
                <br />
                <div class="card" style="width: 100%;">
                    <div class="card-header alert-danger">
                        Test 1
                    </div>
                    <div class="card-body">
                        <p>
                            TODO
                        </p>
                    </div>
                </div>
            </div>

            <div role="tabpanel" class="tab-pane fade" id="rrEPRA">
                <br />
                <div class="card" style="width: 100%;">
                    <div class="card-header alert-danger">
                       Test 2
                    </div>
                    <div class="card-body">
                        <p>
                            TODO
                        </p>
                    </div>
                </div>
            </div>

            <div role="tabpanel" class="tab-pane fade" id="rSWA">
                <br />
                <div class="card" style="width: 100%;">
                    <div class="card-header alert-danger">
                        Test 3
                    </div>
                    <div class="card-body">
                        <p>
                            None
                        </p>
                    </div>
                </div>
            </div>

            <div role="tabpanel" class="tab-pane fade" id="rGI">
                <br />
                <div class="card" style="width: 100%;">
                    <div class="card-header alert-danger">
                        Test 4
                    </div>
                    <div class="card-body">
                        <p>
                            TODO
                        </p>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.min.css" crossorigin="anonymous">
 <body>
   <div class="container">
     <main role="main" class="pb-3">

       <div class="container-fluid">
         <ul class="nav nav-tabs">

           <li class="nav-item"><a class="nav-link active" data-toggle="tab" href="#rLocal">Test 1</a></li>
           <li class="nav-item"><a class="nav-link" data-toggle="tab" href="#rrEPRA">Test 2</a></li>
           <li class="nav-item"><a class="nav-link" data-toggle="tab" href="#rSWA">Test 3</a></li>
           <li class="nav-item"><a class="nav-link" data-toggle="tab" href="#rGI">Test 4</a></li>
         </ul>
         <div>
           <div class="tab-content">

             <div role="tabpanel" class="tab-pane active" id="rLocal">
               <br />
               <div class="card" style="width: 100%;">
                 <div class="card-header alert-danger">
                   Test 1
                 </div>
                 <div class="card-body">
                   <p>
                     TODO
                   </p>
                 </div>
               </div>
             </div>

             <div role="tabpanel" class="tab-pane fade" id="rrEPRA">
               <br />
               <div class="card" style="width: 100%;">
                 <div class="card-header alert-danger">
                   Test 2
                 </div>
                 <div class="card-body">
                   <p>
                     TODO
                   </p>
                 </div>
               </div>
             </div>

             <div role="tabpanel" class="tab-pane fade" id="rSWA">
               <br />
               <div class="card" style="width: 100%;">
                 <div class="card-header alert-danger">
                   Test 3
                 </div>
                 <div class="card-body">
                   <p>
                     None
                   </p>
                 </div>
               </div>
             </div>

             <div role="tabpanel" class="tab-pane fade" id="rGI">
               <br />
               <div class="card" style="width: 100%;">
                 <div class="card-header alert-danger">
                   Test 4
                 </div>
                 <div class="card-body">
                   <p>
                     TODO
                   </p>
                 </div>
               </div>
             </div>
           </div>
         </div>
       </div>
     </main>
   </div>
   </body>
  <script src="https://code.jquery.com/jquery-3.5.1.js"></script>
 
   <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/js/bootstrap.min.js"  crossorigin="anonymous"></script>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>


Solution

  • You have a container-fluid inside of a container. Your parent container will take the appropriate width in the center of the screen, and then your container-fluid will take the 100% of that. So in the end you'll have a div with the same width of a container. All you need to do is remove the div enclosing the <main>, i.e., the <div class="container">.

    It should look something like:

    <main>
        <div class="container-fluid">
        // Navbar Code
        </div>
    </main>
    

    This should span the navbar wide. However, you'll still have a 15px padding on both sides, you can remove it by adding a px-0 class on the container-fluid div.

    Also, you have imported Jquery, Bootstrap-min and Bootstrap Bundle. You do not the need the Bootstrap-min if you have the bundle. You should remove it to prevent any issues with JS related parts of Bootstrap.