Bootstrap 5中col-sm-6覆盖col-md的响应式布局问题求助
Bootstrap 5栅格布局问题解决办法
问题原因
Bootstrap 5采用移动优先的栅格系统,所有栅格类的作用范围是「当前断点及所有更大尺寸的屏幕」。你之前给列加了col-sm-6,这个类会在sm(≥576px)及以上的所有屏幕生效;而col-md只是让列在md及以上自动均分宽度,但它的优先级无法覆盖col-sm-6的固定宽度设置,所以无论大屏小屏,都显示col-sm-6的宽度。
解决代码
把列的类替换为col-sm-6 col-md-3即可,这样:
- sm尺寸(≥576px且<768px)下,每列占6份宽度,一行显示2列
- md及以上尺寸(≥768px)下,每列占3份宽度,一行显示4列,均匀分配宽度
修正后的完整代码:
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous"> <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> <div class="container-fluid mt-5"> <div class="row"> <div class="col-sm-6 col-md-3"> <div class="card text-white bg-success mb-3 mx-auto" style="max-width: 18rem;"> <div class="card-header text-center">1111111</div> <div class="card-body"> <p class="card-text text-center">1111111</p> </div> </div> </div> <div class="col-sm-6 col-md-3"> <div class="card text-white bg-success mb-3 mx-auto" style="max-width: 18rem;"> <div class="card-header text-center">222222</div> <div class="card-body"> <p class="card-text text-center">2222222</p> </div> </div> </div> <div class="col-sm-6 col-md-3"> <div class="card text-white bg-success mb-3 mx-auto" style="max-width: 18rem;"> <div class="card-header text-center">33333333</div> <div class="card-body"> <p class="card-text text-center">3333333</p> </div> </div> </div> <div class="col-sm-6 col-md-3"> <div class="card text-white bg-success mb-3 mx-auto" style="max-width: 18rem;"> <div class="card-header text-center">444444444</div> <div class="card-body"> <p class="card-text text-center">444444444</p> </div> </div> </div> </div> </div>
内容的提问来源于stack exchange,提问作者Mr Kafir
相关产品推荐
相关产品推荐

