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

在这里插入图片描述

在网页开发中,创建响应式的布局是至关重要的,因为不同设备和屏幕尺寸需要不同的布局来呈现内容。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.rhkb.cn/news/164955.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

教育课堂小程序,三分钟打造专属小程序 带完整搭建教程

大家好哇&#xff0c;今天来给大家分享一款教育课堂小程序。现如今&#xff0c;线上教育已经普及&#xff0c;在大学课堂里&#xff0c;老师尝尝是使用各种各样的学习APP进行点名&#xff0c;签到&#xff0c;答题&#xff0c;考试等等&#xff0c;相较于传统的APP来说&#xf…

搞一个生成modbus报文的CRC校验码的可视化工具

用python搞个可视化界面&#xff1a; # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QLineEdit, QPushButton, QMessageBox# 生成 Modbus 格式的 CRC 校验码 def crc16_modbus(data):crc 0xFFFFfor byte in data:crc …

Day3 Qt

作业 1. 完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到新的界面中 如果账号和密码不…

WPF中在MVVM模式下实现导航功能

WPF中在MVVM模式下实现导航功能 一、利用TabControl 使用场景&#xff1a;项目小&#xff0c;不用考虑内存开销的问题。 实现方式1-手动指定ViewModel 分别定义3个UserControl作为View用于演示 <UserControl...><Grid><StackPanel Orientation"Vertic…

【JAVA】日志打印java.util.logging.*函数自定义格式,并且显示调用时行号

1、JAVA自带的这样&#xff1a; 代码如下&#xff1a; import java.util.logging.*; Logger logger Logger.getLogger(MyLogger.class.toString()); logger.info("123");显示效果&#xff1a; 这样的格式&#xff0c;看起来不太好看&#xff0c;比如&#xff1a;会…

Java项目-网页聊天程序

目录 项目介绍 项目功能简介 项目创建 用户管理模块 1.数据库设计及代码实现 2.前后端交互接口的设计 3.服务器代码开发 好友管理模块 数据库设计 好友表设计的两个重要问题 设计前后端交互接口 服务器代码 会话管理模块 会话的数据库设计 获取会话信息 约定前后…

开启Linux之旅:用VMware安装CentOS7

最近我的阿里云服务器到期了&#xff0c;不想续费&#xff0c;所以就深入研究了一下虚拟机搭建Linux系统&#xff0c;感觉还不错&#xff0c;所以在这篇博客中分享一下。下面我将带领大家开启全新的Linux之旅&#xff0c;用VMware安装CentOS 7&#xff0c;具体操作步骤如下所示…

IDEA中SpringBoot项目的yml多环境配置

SpringBoot的yml多环境配置 创建多个配置文件 application.yml #主配置文件 application-dev.yml #开发环境的配置 application-test.yml #测试环境的配置在application.yml中添加多环境配置属性 spring:profiles:active: profiles.active项目启动可能不会识别&#x…

AbortController中止请求通信[模糊搜索案例]

AbortController中止请求通信[模糊搜索案例] AbortController中止请求通信(模糊搜索案例) AbortController中止请求通信(模糊搜索案例) 这里用模糊搜索来做示例&#xff0c;这里是调用后端模糊搜索接口 该案例的中止请求可以用于很多地方&#xff0c;比如取消上传/下载文件等 完…

SpringCloud链路追踪——Spring Cloud Sleuth 和 Zipkin 介绍 Windows 下使用初步

前言 在微服务中&#xff0c;随着服务越来越多&#xff0c;对调用链的分析越来越复杂。如何能够分析调用链&#xff0c;定位微服务中的调用瓶颈&#xff0c;并对其进行解决。 本篇博客介绍springCloud中用到的链路追踪的组件&#xff0c;Spring Cloud Sleuth和Zipkin&#xf…

Shopee买家通自养号系统可批量注册、自动下单

Shopee买家通自养号系统是一款专门针对虾皮买家号所开发的软件&#xff0c;目前支持菲律宾、印度尼西亚、泰国、巴西、马来西亚等国家使用&#xff0c;可批量注册、自动下单。 如果想拥有大量的买家号&#xff0c;那么可以使用批量注册账号功能&#xff0c;把账号所需要的资料准…

购药不烦恼:线上购药小程序的快捷方式

在这个数字化时代&#xff0c;线上购药小程序的快捷方式正在改变着我们购药的方式。本文将介绍如何通过使用Python和Flask框架创建一个简单的线上购药小程序的原型&#xff0c;为用户提供购药的便利和快捷体验。 安装和设置 首先&#xff0c;确保你已经安装了Python和Flask。…

《C语言图形界面-系统开发》专栏介绍 专栏目录

《C语言图形界面-系统开发》介绍及目录 基本介绍 本项目是一个基于EasyX图形库的C语言图书管理系统。 界面优美高级代码结构设计合理注释详尽清晰 本专栏是一个详尽到完全贴近C语言初学者的教程&#xff0c;完整代码 配套教程&#xff0c;完全不用担心学不会的问题。 项目展…

危险化工品出口注意事项及法规要求_箱讯科技

随着全球化工品市场的不断发展&#xff0c;危险化工品出口业务逐渐成为国际贸易的重要组成部分。然而&#xff0c;由于危险化工品具有潜在的危险性&#xff0c;出口过程中需严格遵守相关法规和注意事项&#xff0c;以确保运输安全和顺畅。本文将详细介绍危险化工品出口注意事项…

RabbitMQ入门到实战教程,MQ消息中间件,消息队列实战

消息队列是目前最常见的微服务中间件之一&#xff0c;而RabbitMq在全球范围内的使用率也是名列前茅。它以稳定性强、并发高、低时延的特点深受广大企业开发者的喜爱。然而市面上一致缺乏一个专门的RabbitMQ课程&#xff0c;所以这套课程应运而生。 微服务一旦拆分&#xff0c;必…

go-fastdfs安装(国产分布式文件系统)

开源协议&#xff1a; Unlicense官网地址&#xff1a; https://sjqzhang.github.io/go-fastdfs/#vision安装: wget --no-check-certificate https://github.com/sjqzhang/go-fastdfs/releases/download/v1.3.1/fileserver -O fileserver && chmod x fileserver &…

c++入门(命名空间, c++输入输出, 缺省参数)

文章目录 1. 命名空间正确的命名定义命名空间的使用 2. c输入与输出标准输入输出对象向流写入 读取数据 3. 缺省参数缺省参数分类缺省参数声明缺省参数初始值 c的简单介绍 C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大…

【图解RabbitMQ-5】RabbitMQ Web管控台图文介绍

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;CSDN实力新星&#xff0c;后端开发两年经验&#xff0c;曾担任甲方技术代表&#xff0c;业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开…

02_diffusion_models_from_scratch_CN

从零开始的扩散模型 有时&#xff0c;只考虑一些事务最简单的情况会有助于更好地理解其工作原理。我们将在本笔记本中尝试这一点&#xff0c;从“玩具”扩散模型开始&#xff0c;看看不同的部分是如何工作的&#xff0c;然后再检查它们与更复杂的实现有何不同。 我们将学习 …

Linux篇 五、Ubuntu与Linux板卡建立NFS服务

Linux系列文章目录 一、香橙派Zero2设置开机连接wifi 二、香橙派Zero2获取Linux SDK源码 三、香橙派Zero2搭建Qt环境 四、Linux修改用户名 文章目录 Linux系列文章目录前言一、连接到局域网互ping测试 二、安装NFS服务配置NFS更新exports配置三、板卡安装NFS客户端四、板卡临时…