新闻中心

利用Bootstrap栅格系统实现HTML表格旁侧内容布局

2025-10-07
浏览次数:
返回列表

利用Bootstrap栅格系统实现HTML表格旁侧内容布局

本教程详细介绍了如何利用Bootstrap栅格系统在HTML页面中实现复杂的横向布局,特别是将HTML表格、图片和另一个表单并排显示。通过将这些元素分别放置在不同的栅格列中,可以轻松创建响应式且结构清晰的页面布局,避免元素默认垂直堆叠的问题,并提升用户体验。

布局挑战与传统方法局限

在web开发中,我们经常需要将多个元素(如表格、图片、表单等)并排显示,而非默认的垂直堆叠。html元素通常分为块级元素(如div, p, table)和行内元素(如span, img)。块级元素会独占一行,导致后续内容自动换行到下方。

为了实现横向布局,一些开发者可能会尝试使用CSS的float属性或position: absolute/position: fixed。然而,float布局管理复杂,容易出现浮动清除问题;position: absolute则会将元素从文档流中移除,不利于响应式布局和内容管理,且需要手动计算位置,维护成本较高。对于现代Web布局,更推荐使用CSS Flexbox或CSS Grid,特别是当项目已经引入了如Bootstrap这样的前端框架时,直接利用其提供的栅格系统是最高效和健壮的选择。

利用Bootstrap栅格系统实现横向布局

鉴于您在现有HTML代码中已经使用了div class="row"和div class="col-md"等Bootstrap类,最推荐且最符合项目风格的解决方案是利用Bootstrap的栅格系统。Bootstrap栅格系统基于Flexbox构建,提供了一种强大的、响应式的布局机制,允许您将页面内容划分为12个逻辑列,并根据需要将元素放置在这些列中。

核心概念:row 和 col

  • row 类: 充当Flex容器,用于包裹一组列。它会抵消父容器的内边距,并为其中的列提供正确的间距。
  • col 类: 充当Flex项目,代表栅格系统中的一个列。您可以指定不同屏幕尺寸下的列宽,例如col-md-4表示在中等(md)及以上屏幕尺寸下占据4列的宽度。

布局实现步骤

要将表格、图片和第二个表单并排显示,我们需要将它们包裹在一个div元素中,并为这个div添加row类。然后,将表格、图片容器和第二个表单分别放置在不同的div中,并为这些div添加col类,以指定它们在栅格系统中的宽度。

科威旅游管理系统 科威旅游管理系统

该软件是以php+MySQL进行开发的旅游管理网站系统。系统前端采用可视化布局,能自动适应不同尺寸屏幕,一起建站,不同设备使用,免去兼容性烦恼。系统提供列表、表格、地图三种列表显示方式,让用户以最快的速度找到所需行程,大幅提高效率。系统可设置推荐、优惠行程,可将相应行程高亮显示,对重点行程有效推广,可实现网站盈利。系统支持中文、英文,您还可以在后台添加新的语言,关键字单独列出,在后台即可快速翻译。

科威旅游管理系统 0 查看详情 科威旅游管理系统

1. 规划列宽 Bootstrap栅格系统总共有12列。如果您想将表格、图片和第二个表单平均分配在三列中,那么每个元素可以占据12 / 3 = 4列。因此,可以使用col-md-4。

2. 组织HTML结构 在您现有表单(Form 1)之后,创建一个新的div作为栅格行,并在其中定义三个列。

{% extends 'login/basic.html' %}
{% block title %}Approval of count{% endblock title %}
{% block body %}

<!-- 现有顶部表单 (Form 1) -->
<form action="/approval" method="post">{% csrf_token %}
    <div class="row g-2">
        <div class="col-md">
            <div class="form-floating">
                <input type="date" class="form-control" id="floatingInputGrid" name="date">
                <label for="floatingInputGrid">Shift Date</label>
            </div>
        </div>
        <div class="col-md">
            <div class="form-floating">
                <select name="serverName" class="form-select" id="floatingSelectGrid">
                    <option selected>Server Name</option>
                    {% for server in serverLst %}
                    <option value="{{server}}">{{server}}</option>
                    {% endfor %}
                </select>
                <label for="floatingSelectGrid">Select your server</label>
            </div>
        </div>
        <div class="col-md">
            <div class="form-floating">
                <button type="submit" class="btn btn-primary mx-5 my-2" id="floatingInputGrid">Submit</button>
            </div>
        </div>
    </div>
</form>

<!-- 新增:用于表格、图片和第二个表单的横向布局容器 -->
<div class="row mt-4"> <!-- mt-4 为顶部外边距,增加与上方元素的间距 -->

    <!-- 第一列:表格 -->
    <div class="col-md-4">
        <h4>数据汇总表</h4>
        <table class="table table-bordered"> <!-- 移除内联样式 width:25%,让Bootstrap管理宽度 -->
            <thead>
                <tr>
                    <th scope="col">User name</th>
                    <th scope="col">Starting</th>
                    <th scope="col">Ending</th>
                    <th scope="col">Bonus</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <th scope="row">1</th>
                    <td>Mark</td>
                    <td>Otto</td>
                    <td>@mdo</td>
                </tr>
                <tr>
                    <th scope="row">2</th>
                    <td>Jacob</td>
                    <td>Thornton</td>
                    <td>@fat</td>
                </tr>
                <tr>
                    <th scope="row">3</th>
                    <td colspan="2">Larry the Bird</td>
                    <td>@twitter</td>
                </tr>
            </tbody>
        </table>
    </div>

    <!-- 第二列:图片 -->
    <div class="col-md-4">
        <h4>相关图片展示</h4>
        <div class="mb-3">
            @@##@@
            <small class="d-block text-muted mt-1">图片描述1</small>
        </div>
        <div>
            @@##@@
            <small class="d-block text-muted mt-1">图片描述2</small>
        </div>
    </div>

    <!-- 第三列:第二个表单 (Form 2) -->
    <div class="col-md-4">
        <h4>额外信息录入</h4>
        <form action="/submit_additional_data" method="post">
            {% csrf_token %}
            <div class="mb-3">
                <label for="additionalField1" class="form-label">附加字段一</label>
                <input type="text" class="form-control" id="additionalField1" name="field1" placeholder="请输入内容">
            </div>
            <div class="mb-3">
                <label for="additionalField2" class="form-label">附加字段二</label>
                <textarea class="form-control" id="additionalField2" name="field2" rows="3" placeholder="请输入详细描述"></textarea>
            </div>
            <button type="submit" class="btn btn-success">提交附加信息</button>
        </form>
    </div>

</div>

{% endblock %}

代码解释:

  • div class="row mt-4":这是一个新的Bootstrap行容器,mt-4为其添加了顶部外边距,使其与上方的表单分离。
  • div class="col-md-4":这三个div分别代表了表格、图片容器和第二个表单所在的列。col-md-4表示在“中等”(medium)及更大屏幕上,每个元素将占据12列中的4列。在小屏幕上,它们会自动堆叠,实现响应式布局。
  • 表格: 移除了style="width:25%"的内联样式。Bootstrap的table类已经提供了基础样式,而列宽由col-md-4控制,确保其在栅格系统中的正确行为。
  • 图片: 使用img-fluid类确保图片在响应式布局中能够自适应其父容器的宽度。rounded类可以给图片添加圆角。
  • 第二个表单: 结构与第一个表单类似,使用了Bootstrap的表单控件样式,并放置在独立的列中。

注意事项与最佳实践

  1. 引入Bootstrap: 确保您的Django模板中正确引入了Bootstrap的CSS和J*aScript文件。通常在basic.html中完成。
  2. 响应式设计: col-md-4会在中等及以上屏幕上生效。对于更小的屏幕(如手机),这些列会自动堆叠,这是Bootstrap的默认响应式行为。如果您需要更精细的控制,可以使用col-sm-X、col-lg-X等类。例如,col-12 col-md-4表示在所有屏幕上默认占据12列(即独占一行),但在中等及以上屏幕上占据4列。
  3. 避免内联样式: 尽量将样式定义在CSS文件中,而不是使用内联样式。这样可以提高代码的可维护性和复用性。
  4. 语义化HTML: 尽管本教程侧重布局,但在实际开发中,仍应尽可能使用语义化的HTML标签(如header, main, section, aside, footer等),以提高可访问性和SEO。
  5. Django CSRF Token: 在所有表单中都包含{% csrf_token %},这是Django安全机制的一部分,用于防止跨站请求伪造攻击。
  6. 图片路径: 确保图片src属性中的路径是正确的,指向您项目中的图片资源。

总结

通过利用Bootstrap的栅格系统,您可以优雅且高效地解决HTML元素横向布局的问题。将表格、图片和表单等内容包裹在row容器中,并为每个内容分配适当的col类,不仅能实现所需的并排显示效果,还能自动获得响应式布局的优势,确保页面在不同设备上都能良好展现。这种方法比传统的float或position布局更易于管理和维护,是现代Web开发的推荐实践。

示例图片1示例图片2

以上就是利用Bootstrap栅格系统实现HTML表格旁侧内容布局的详细内容,更多请关注其它相关文章!


# 这是  # 杨浦营销推广企业  # 钕铁硼产业网站建设  # 鹤岗制作网站建设推广公司  # 猫超规划营销推广策略  # 网站推广方式和各自优点  # 忻州外文网站推广  # 龙华网站建设加盟  # 什么算小众电影网站推广  # 抖音刷评论赞网站推广  # 松原网站建设路烤肉  # 单选框  # 显示效果  # 移除  # 系统实现  # 屏幕上  # css  # 并为  # 管理系统  # 第二个  # 表单  # twitter  # ai  # app  # seo  # go  # bootstrap  # 前端  # html  # java  # javascript 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: sublime如何只显示或隐藏特定类型文件_sublime侧边栏文件过滤  LINQ to XML为何解析失败? 深入理解C# XDocument的异常处理  SteamMachine定价或为699美元 大家想入手吗?  C++20的source_location是什么_C++在编译期获取源码位置信息用于日志和断言  绝地鸭卫平a核爆刀流玩法攻略  Python:递归比较文件夹内容并找出特定类型文件的差异  《北京人工智能产业白皮书(2025)》发布:全年核心产值预计突破 4500 亿元  QQ邮箱稳定登录入口_QQ邮箱官方网站网页版使用  CSS Flexbox如何实现多行排列_flex-wrap wrap自动换行显示  如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略  快手极速版在线观看 官方网页版登录地址  QQ网页版官方账号入口 QQ网页版网页版登录指南  在J*a里如何理解依赖关系的方向_依赖方向在模块结构中的作用  邮政编码查询不到怎么办_邮政编码查询不到的常见原因与对策  Eclipse怎么运行工程_Eclipse工程运行配置说明  Excel文件在线转换快速入口 Excel在线格式转换网站  wps文字怎么插入目录并自动更新_wps文字如何插入目录并自动更新方法  Yandex搜索引擎官网入口_俄罗斯Yandex免登录一键直达  海量存储:机器视觉智能化的核心基石  age动漫网站入口 age动漫官网直接访问入口  MongoDB Aggregation:在嵌套对象数组中精确匹配ObjectId  在Typer应用中优雅地处理和重组任意命令行参数  如何使用CaptainHook和Composer管理Git钩子_在提交前自动运行代码检查的Composer配置  html网页设计源代码怎么运行_运行html网页设计源代码步骤【指南】  微信网页版官方入口直达 微信网页版网页版登录使用方法  京东单号查询入口_京东快递订单追踪入口  html5 app怎么运行环境_配html5 app运行环境【教程】  微信语音通话掉线如何解决 微信语音通话稳定优化方法  期待已久:小米17 Ultra、小米首款NAS本月登场  Pygame教程:解决用户输入与游戏状态更新不同步问题  虚幻5科幻题材ARPG大作遭取消!本是《奇异人生》厂商新作  蛙漫安全无毒 官方认证的绿色入口  TikTok国际版官网直达_TikTok国际版官网直达进入在线观看  J*a里如何使用N*igableMap进行导航操作_可导航Map操作技巧解析  PHP中SSG-WSG API的AES加密实践:正确使用初始化向量  深入理解J*aScript Promise异步执行与微任务队列  修复二维数组索引越界异常:一维循环到二维坐标的正确映射  蛙漫移动版在线看 蛙漫手机浏览器直达入口  J*aScript中如何高效提取对象指定属性  汽水音乐在线解析 汽水音乐在线解析入口  2026年CSGO开箱网站推荐 CSGO开箱平台精选  Win11怎么安装Linux子系统 Win11 WSL2安装Ubuntu及环境配置指南  J*a编写用户注册与登录功能_掌握字符串与验证逻辑  uc浏览器网页版入口 uc浏览器网页版最新网址  实现分段式页面滚动导航:CSS与J*aScript教程  Excel组合图表怎么做 Excel创建柱状图与折线组合图教程【图表】  小红书网页版入口链接分享 小红书官网直接进  AI抖音网页版免费视频入口 AI抖音网页端最新视频实时观看  为什么我的微信朋友圈看不到别人的更新_微信朋友圈更新显示异常解决方法  利用Bokeh CustomJS动态控制DataTable列可见性 

搜索