You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Bootstrap列在打印时堆叠而非并排?

Bootstrap打印时列堆叠问题解决

问题描述

我用Bootstrap的container、row、col-md-9和col-md-3构建了Razor页面中最终批准信的头部布局,代码正常运行已超8年。网页显示布局正常,但点击调用window.print()的打印按钮后,Chrome打印预览及实际打印时列出现堆叠:原本应在右侧的发件人Logo和地址被挤到收件人地址下方,而收件人地址仍处于信封窗口对应位置。测试时为列添加了红、绿边框,相关代码如下:

<div class="container">
    <div class="row" style="border: solid 4px blue;">
        <div class="col-md-9" style="border:solid 2px red;">
            <br /><br />
            <br /><br />
            <p>
                @DateTime.Today.ToString("MMMM dd, yyyy")<br />
                <br /><br /><br />
                @Model.Courses.CurrentContactName<br />
                @Model.Courses.ContactBizName<br />
                @Model.Courses.ContactAddress<br />
                @Model.Courses.ContactCity,  @Model.Courses.ContactState @Model.Courses.ContactZip<br />
            </p>
        </div>

        <div class="col-md-3" style="border:solid 2px green;">
            <img src="~/images/oesac_white_2.25.jpg" />
            <br />
            <p style="font-size: 1.3rem;">
                OESAC CEU Committee<br />
                P. O. Box 577 <br />
                Canby, OR 97013-0577 <br />
                Phone: 503/698-6486 <br />
                Email: info@oesac.org <br />
                http://www.oesac.org
            </p>
        </div>
    </div> <!--ROW-->

问题原因

Bootstrap的col-md-*类基于屏幕宽度断点(md对应≥768px),Chrome打印预览默认的纸张尺寸(如A4)对应的打印视图宽度可能低于该断点,导致列从并排切换为堆叠布局。

解决办法

方法1:添加打印专用CSS规则

在页面的<style>标签中添加打印媒体查询,强制打印时保持列并排:

@media print {
  .row {
    display: flex !important;
    flex-wrap: nowrap !important;
  }
  .col-md-9 {
    flex: 0 0 auto;
    width: 75% !important;
  }
  .col-md-3 {
    flex: 0 0 auto;
    width: 25% !important;
  }
  /* 可选:移除打印时的测试边框 */
  .row, .col-md-9, .col-md-3 {
    border: none !important;
  }
}

方法2:改用无断点的列类

将col-md-9和col-md-3替换为无断点的col-9和col-3,这类类在所有宽度下(包括打印视图)都会保持并排:

<div class="container">
    <div class="row" style="border: solid 4px blue;">
        <div class="col-9" style="border:solid 2px red;">
            <br /><br />
            <br /><br />
            <p>
                @DateTime.Today.ToString("MMMM dd, yyyy")<br />
                <br /><br /><br />
                @Model.Courses.CurrentContactName<br />
                @Model.Courses.ContactBizName<br />
                @Model.Courses.ContactAddress<br />
                @Model.Courses.ContactCity,  @Model.Courses.ContactState @Model.Courses.ContactZip<br />
            </p>
        </div>

        <div class="col-3" style="border:solid 2px green;">
            <img src="~/images/oesac_white_2.25.jpg" />
            <br />
            <p style="font-size: 1.3rem;">
                OESAC CEU Committee<br />
                P. O. Box 577 <br />
                Canby, OR 97013-0577 <br />
                Phone: 503/698-6486 <br />
                Email: info@oesac.org <br />
                http://www.oesac.org
            </p>
        </div>
    </div> <!--ROW-->
</div>

方法3:调整打印页面边距

在Chrome打印预览中,手动将页面边距设置为「无」或「最小」,避免因边距过大压缩页面宽度触发断点。

内容的提问来源于stack exchange,提问作者JustJohn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 20:23:12