使用Bootstrap 4创建三列布局失败,仅显示单列求助
嘿,这种情况我太熟了!Bootstrap 4的栅格系统看似直白,但细节没到位就容易翻车,我给你梳理几个最常见的原因,你挨个检查下:
栅格层级结构出错了
Bootstrap 4的栅格有严格的嵌套规则:必须是.container(或.container-fluid)包裹.row,然后.row必须直接包裹列元素。如果你的列外面多套了一层自定义容器,或者没放在.row里,那栅格的弹性布局就失效了,列会变回默认的块级元素纵向排列。
错误示例:<div class="container"> <div class="my-custom-box"> <!-- 多余的嵌套层 --> <div class="col-md-4">列1</div> <div class="col-md-4">列2</div> <div class="col-md-4">列3</div> </div> </div>正确示例:
<div class="container"> <div class="row"> <div class="col-md-4">列1</div> <div class="col-md-4">列2</div> <div class="col-md-4">列3</div> </div> </div>没给列加正确的栅格类
如果你只写了普通的<div>而没加任何.col-*类,那这些元素就是默认的块级元素,自然会纵向堆叠。哪怕你不想指定固定宽度,至少也要加个基础的.col类,让Bootstrap识别这是栅格列,它会自动均分宽度。自定义CSS破坏了Bootstrap样式
有时候自己写的样式会不小心覆盖Bootstrap的核心布局属性,比如给.row加了flex-direction: column,或者给列加了display: block !important,这都会直接打乱栅格的横向排列。可以打开浏览器开发者工具,检查.row和.col的CSS属性,看看有没有被自定义样式篡改。响应式断点没选对
比如你用了.col-lg-4,但当前浏览器窗口宽度小于992px(Bootstrap 4的lg断点),这时候列会自动堆叠成纵向。如果想在所有屏幕尺寸都保持三列,换成.col-4(不带响应式前缀,适配所有断点),或者根据需求添加多个断点类,比如.col-sm-4 .col-md-4。Bootstrap CSS没正确加载
最后检查下你的页面是否正确引入了Bootstrap 4的CSS文件,路径有没有写错,或者网络请求失败了。如果CSS没加载成功,那所有栅格样式都不生效,列自然是默认的纵向排列。
内容的提问来源于stack exchange,提问作者Martin Lovecký

