【Java 进阶篇】深入了解 Bootstrap 栅格系统

news2024/11/17 11:24:31

在这里插入图片描述

在网页开发中,创建响应式的布局是至关重要的,因为不同设备和屏幕尺寸需要不同的布局来呈现内容。Bootstrap 提供了一个强大的栅格系统,使开发者能够轻松创建适应不同屏幕的网页布局。本文将深入介绍 Bootstrap 栅格系统,面向初学者,帮助您充分了解如何使用它来构建响应式网页。

什么是 Bootstrap 栅格系统?

Bootstrap 栅格系统是一种基于12列网格的布局系统。这意味着您可以将页面划分为12个等宽的列,然后将内容放入这些列中。通过在不同的屏幕宽度上定义不同的列宽,您可以轻松创建响应式布局,以适应不同设备的屏幕大小,例如桌面、平板和手机。

栅格系统的核心思想是将页面划分为行(row)和列(col)。每行可以包含一个或多个列,列的宽度总和不能超过12列。这使得网页布局变得非常灵活,同时确保内容在各种屏幕上以一致的方式呈现。

Bootstrap 栅格系统的基本结构

为了更好地理解 Bootstrap 栅格系统,让我们来看一个基本的示例。

<div class="container">
    <div class="row">
        <div class="col-sm-4">
            <!-- 内容1 -->
        </div>
        <div class="col-sm-4">
            <!-- 内容2 -->
        </div>
        <div class="col-sm-4">
            <!-- 内容3 -->
        </div>
    </div>
</div>

上述代码中,我们有一个容器(container)包含一个行(row),而行中包含了三列(col-sm-4)。现在,让我们逐步分解这个示例的关键部分:

  • container:容器是 Bootstrap 栅格系统的最外层包裹元素。它用于包含行(row)和列(col)以及其他内容。容器的作用是确保内容在不同屏幕尺寸上居中对齐,并提供一些内边距,以便内容不会触及屏幕的边缘。

  • row:行是一组列的容器。每行(row)在页面上都是水平排列的,可以包含一个或多个列(col)。行的主要作用是创建列的组合,使它们在同一水平线上对齐。

  • col-sm-4:列是页面的主要构建块,用于包含实际的内容。在这个示例中,我们使用了三个列,每个列占据了4个网格列的宽度,总和为12列。这是一种常见的布局,因为它适用于桌面屏幕,每个列都具有相同的宽度。col-sm-4 中的 “sm” 表示响应式断点,即在小屏幕(如平板)上,每个列仍然占据4列。

响应式设计和断点

Bootstrap 栅格系统的一个强大之处在于它支持响应式设计,这意味着您可以根据屏幕宽度自动调整布局。Bootstrap 使用断点(breakpoint)来定义不同屏幕尺寸上的列宽。

以下是 Bootstrap 的一些常见断点:

  • sm(小屏幕):用于平板和较小的桌面屏幕。
  • md(中等屏幕):用于普通桌面屏幕。
  • lg(大屏幕):用于大型桌面屏幕。
  • xl(特大屏幕):用于非常大的屏幕。

通过在列的类名中添加适当的断点前缀,您可以指定在不同屏幕尺寸上列的宽度。例如,col-sm-4 表示在小屏幕上每个列占据4列,而 col-md-6 表示在中等屏幕上每个列占据6列。

让我们看一个使用不同断点的示例,以便更好地理解:

<div class="container">
    <div class="row">
        <div class="col-md-6 col-lg-4">
            <!-- 列1 -->
        </div>
        <div class="col-md-6 col-lg-4">
            <!-- 列2 -->
        </div>
        <div class="col-lg-4">
            <!-- 列3(仅在大屏幕上显示) -->
        </div>
    </div>
</div>

在这个示例中,我们有三列,每列都根据不同的断点设置了不同的宽度。前两列在中等屏幕上占据6列,在大屏幕上占据4列。最后一列只在大屏幕上显示,占据4列。

列偏移和偏移量

有时候,您可能希望在列之间创建一些空白,或将列向右移动。Bootstrap 提供了列偏移(offset)类,可以帮助您实现这些效果。

以下是一个示例,展示如何使用列偏移来在列之间创建空白:

<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 class="row">
        <div class="col-md-3">
            <!-- 列1 -->
        </div>
        <div class="col-md-3 offset-md-3">
            <!-- 列2(偏移3列宽度) -->
        </div>
        <div class="col-md-3">
            <!-- 列3 -->
        </div>
    </div>
</div>

在这个示例中,我们创建了两行,每行包含三列。在第二行的第二列上,我们使用了 offset-md-3 类来向右偏移3列的宽度,从而在列2和列3之间创建了空白。

列的排序

有时,您可能希望在不同屏幕尺寸上重新排列列的顺序。Bootstrap 允许您使用列排序(order)类来轻松实现这一点。

以下是一个示例,展示如何使用列排序类来更改列的显示顺序:

<div class="container">
    <div class="row">
        <div class="col-md-4 order-2">
            <!-- 列1(在大屏幕上显示在列2之后) -->
        </div>
        <div class="col-md-4 order-1">
            <!-- 列2(在大屏幕上显示在列1之前) -->
        </div>
        <div class="col-md-4">
            <!-- 列3 -->
        </div>
    </div>
</div>

在这个示例中,我们使用了 order-2order-1 类来指定列1和列2在大屏幕上的显示顺序。列1会显示在列2之后,而列2会显示在列1之前,而列3则保持不变。

制作嵌套布局

Bootstrap 栅格系统也支持嵌套布局,这意味着您可以在列中创建更多的行和列,以构建更复杂的布局。这对于构建复杂的页面非常有用。

以下是一个示例,展示如何创建嵌套布局:

<div class="container">
    <div class="row">
        <div class="col-md-6">
            <!-- 列1 -->
        </div>
        <div class="col-md-6">
            <!-- 列2 -->
        </div>
    </div>
    <div class="row">
        <div class="col-md-4">
            <!-- 列3 -->
        </div>
        <div class="col-md-4">
            <!-- 列4 -->
        </div>
        <div class="col-md-4">
            <!-- 列5 -->
        </div>
    </div>
</div>

在这个示例中,我们首先创建了一个包含两列的行,然后在第二行中创建了另一个包含三列的行。这种嵌套布局的方式可以帮助您更灵活地控制页面的结构。

自定义栅格系统

如果您希望创建自定义的栅格系统,而不仅仅使用Bootstrap的默认样式,您也可以使用Bootstrap的Sass版本或Less版本,以便更灵活地定义栅格系统的参数,例如列数、断点、列宽等。

以下是一个使用Sass版本的示例,展示如何自定义栅格系统的列数:

// 定义列数
$grid-columns: 16;

// 定义列宽
$grid-gutter-width: 30px;
$grid-row-gutter-width: 15px;

// 导入Bootstrap的Sass文件
@import "bootstrap/bootstrap";

在这个示例中,我们通过设置 $grid-columns 变量来定义列数,然后可以根据需要自定义其他参数。这样,您可以创建符合项目需求的自定义栅格系统。

结语

Bootstrap 栅格系统是网页开发的强大工具,使创建响应式布局变得容易。无论您是初学者还是有经验的开发者,掌握栅格系统是非常重要的,因为它是构建现代网页和Web应用程序的基础。希望本文能够帮助您更好地理解和使用Bootstrap的栅格系统,以创建出美观且响应式的网页布局。愿您在网页开发中取得成功!

作者信息

作者 : 繁依Fanyi
CSDN: https://techfanyi.blog.csdn.net
掘金:https://juejin.cn/user/4154386571867191

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1115801.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

7.7亿参数,超越5400亿PaLM!UW谷歌提出「分步蒸馏」,只需80%训练数据|ACL 2023

LLM不实用&#xff0c;小模型蒸馏才是「现实」的大模型应用路线&#xff0c;全面领先微调技术&#xff01;土豪请无视。。。 大型语言模型虽然性能优异&#xff0c;可以用零样本或少样本提示解决新任务&#xff0c;但LLM在实际应用部署时却很不实用&#xff0c;内存利用效率低…

成集云 | 思迅商慧集成用友T | 解决方案

源系统成集云目标系统 方案介绍 思迅商慧是一款集批次成本、配送复核、自助收银、供应链、加盟管理等于一身的零售管理软件。可以帮助解决客户的运营和管理难题&#xff0c;包括加盟店管理、供应商管理、配送复核管理、商品经营维护、自助收银系统等。 用友T是一款…

ABAP:EXCEL导入导出等功能

源代码: CLASS zcl_excel_tool DEFINITIONPUBLICFINALCREATE PUBLIC .PUBLIC SECTION. *"* public components of class ZCL_EXCEL_TOOL *"* do not include other source files here!!!TYPE-POOLS ole2 .TYPE-POOLS soi .TYPES:BEGIN OF ty_excel,row TYPE c LENG…

Jetpack:013-Jetpack底部导航栏

文章目录 1. 概念介绍2. 使用方法2.1 NavigationBar2.2 NavigationBarItem 3. 示例代码3.1 代码和注释3.2 代码难点3.3 运行效果 4. 内容总结 我们在上一章回中介绍了Jetpack中弹出菜单相关的内容&#xff0c;本章回中将介绍 底部导航栏。闲话休提&#xff0c;让我们一起Talk …

蓝桥杯刷题单

第一周&#xff0c;链表、栈、队列 0、时间复杂度与空间复杂度&#xff08;补充内容&#xff09; 1、链表的基础知识&#xff1a;单链表 2、反转链表&#xff08; LeetCode 206 &#xff09; 3、相交链表&#xff08; LeetCode 160 &#xff09; 4、合并两个有序链表 &…

AMEYA360:大唐恩智浦DNB1101助力零碳智慧园区储能升级

一、零碳智慧园区诞生的背景 随着全球气候变化问题日益严峻&#xff0c;近年来&#xff0c;各国政府、科学家和环保组织纷纷发出紧急呼吁&#xff0c;敦促采取更多行动来应对这一全球挑战。 2020年9月22日&#xff0c;我国在第75届联合国大会上正式提出2030年实现碳达峰、2060年…

evilhiding:一款好用的shellcode免杀工具

文章目录 evilhiding工具浅析项目地址用法免杀测试声明 evilhiding shellcode loader,bypassav,免杀工具&#xff0c;一款基于python的shellcode免杀加载器 工具浅析 远控条件触发防沙箱花指令干扰loader和shellcode进行fernet加密触发器混淆干扰特征码自动刷新ico图片的md5…

第十五章 I/O输入输出

15,1输入输出流 流是一组有序的数据序列&#xff0c;根据操作的类型&#xff0c;可分为输入流和输出流两种。I/O(Input/Output,(输出)流提供了一条通道程序&#xff0c;可以使用这条通道把源中的字节序列送到目的地。虽然 I/O 流疆盘文件存取有关&#xff0c;但是程序的源和目的…

用Python获取网络数据

用Python获取网络数据 网络数据采集是 Python 语言非常擅长的领域&#xff0c;上节课我们讲到&#xff0c;实现网络数据采集的程序通常称之为网络爬虫或蜘蛛程序。即便是在大数据时代&#xff0c;数据对于中小企业来说仍然是硬伤和短板&#xff0c;有些数据需要通过开放或付费…

【Javascript】声明变量

目录 1.声明和赋值结合 2.声明和赋值分开 3.console.log() 控制台打印 1.打印单个变量 2.打印多个变量 ​编辑 3.打印变量类型 ​编辑 注意&#xff1a; ​编辑 4.直接打印未声明的变量会报错 5.变量提升 变量提升的影响 1.声明和赋值结合 2.声明和赋值分开 3.cons…

《C和指针》(3)数据

问题 假定你正编写一个程序&#xff0c;它必须运行于两台机器之上。这两台机器的缺省整型长度并不相同&#xff0c;一个是16位&#xff0c;另一个是32位。而这两台机器的长整型长度分别是32位和64位。程序所使用的有些变量的值并不太大&#xff0c;足以保存于任何一台机器的缺省…

决策树-入门

1、认识决策树 决策树思想的来源非常朴素&#xff0c;程序设计中的条件分支结构就是if-then结构&#xff0c;最早的决策树就是利用这类结构分割数据的一种分类学习方法 怎么理解这句话&#xff1f;通过一个对话例子 想一想这个女生为什么把年龄放在最上面判断&#xff01;&a…

【六:pytest框架介绍】

常见的请求对象requests.get()requests.post()requests.delete()requests.put()requests.request()常见的响应对象reprequests.request()//返回字符串格式数据print(req.text)//返回字节格式数据print(req.content)//返回字典格式数据print(req.json)#状态码print(req.status_c…

【PADS封装】2.4G PCB天线封装(量产用)

包含了我们平时常用的2.4GPCB天线封装&#xff0c;总共11种封装。完全能满足日常设计使用。 下载链接&#xff01;&#xff01;https://mp.weixin.qq.com/s?__bizMzU2OTc4ODA4OA&mid2247548815&idx1&sne625e51a06755a34ab4404497770df48&chksmfcfb2c58cb8ca5…

10个最佳的免费LOGO设计工具,不容错过

优秀的LOGO是企业的无形资产&#xff0c;大公司会花费数万甚至数百万定制特色LOGO&#xff0c;而一些中小企业或企业家&#xff0c;由于预算有限&#xff0c;往往希望找到更具成本效益的渠道。如果你直接找设计师朋友帮忙做LOGO&#xff0c;肯定会让对方面对黑线&#xff0c;以…

EPLAN_006#部件库快速导入、树结构、部件导航器、材料表导航器

一、部件的常用格式 XML文件&#xff1a;只是一些基本参数 CSV文件&#xff1a;只是一些基本参数 EDZ文件&#xff1a;完整的数据格式&#xff0c;可以添加2D,3D宏&#xff0c;是相对比较完整的格式 二、目录更改 在选项——设置——用户——管理——目录中进行相关设置 三、ED…

多目标优化算法评价指标

参考&#xff1a;Performance metrics in multi-objective optimization 单目标优化问题比较各种算法的性能可以直接通过目标值比较&#xff0c;但是多目标优化算法找到的往往是帕累托解&#xff0c;需要一些合适的评价指标来比较这些算法的性能。 使用数量排名前10的评价指标及…

基于Java的人事考勤签到管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

pnpm的环境安装以及安装成功后无法使用的问题

文章目录 前言1、使用npm 安装2、安装后的注意点3、遇到问题4、配置path的环境变量&#xff08;1&#xff09;找到环境变量&#xff08;2&#xff09;找到并双击path的系统变量&#xff08;3&#xff09;复制第1步中使用npm安装的红框部分的路径&#xff08;4&#xff09;将第&…

推荐《幽游白书》

《幽游白书》是日本漫画家富坚义博于1990年12月3日—1994年7月25日于集英社旗下杂志《周刊少年Jump》上连载的少年漫画作品&#xff0c;全175话&#xff08;含外传一话&#xff09;。现时发行的单行本共计19册&#xff0c;电子版由漫番漫画、哔哩哔哩漫画发布 [1-2] 。 本作最…