Bootstrap栅格系统原理

article/2025/9/29 22:49:50

Bootstrap栅格系统原理



Bootstrap栅格系统布局

1、栅格系统简介


1)响应式设计


我们现实生活中所使用到的设备有手机、平板电脑、笔记本、台式机。这些设备最大的区别在于它的屏幕的大小不一样,也就是分辨率大小不一样。


响应式设计最核心的思想是就一个网站能够兼容多个终端,而不是为每个终端特定的一个版本。


页面的设计与开发应当根据用户行为以及设备环境(系统平台,屏幕尺寸、屏幕定向等)进行相应的响应和调整,具体的实践方式由多方面决定,包括弹性网络布局、图片使用等。


无论有户在平板上还是pc上应该能够自动切换分辨、图片尺寸及相关脚本等,以适应不同设备


2)栅格实现原理


打开www.bootcss.com这个bootstrap的中文网站,点击Bootstrap3中文文档(v3.3.4)

grid1.png


进入以后点击全局CSS样式

grid2.png


找到栅格参数

grid3.png


.col-xs-表示超小屏幕起作用,.col-sm-表示小屏幕起作用,.col-md-表示中等屏幕起作用,.col-lg-表示大屏幕起作用。



  

栅格实现原理


•把网页总宽度平分为12分,开发人员可以自由按分组合,以便开发出简洁方便的程序


•仅仅通过定义容器大小、平分12分,再调整内外边距,最后结合媒体查询,就制作出强大的响应式栅格系统


•栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中。


下面就介绍一下 Bootstrap 栅格系统的工作原理:


•“行(row)”必须包含在 .container (固定宽度)或 .container-fluid (100% 宽度)中,以便为其赋予合适的排列(aligment)和内补(padding)。


•通过“行(row)”在水平方向创建一组“列(column)”。


•你的内容应当放置于“列(column)”内,并且,只有“列(column)”可以作为行(row)”的直接子元素。


•类似 .row 和 .col-xs-4 这种预定义的类,可以用来快速创建栅格布局。Bootstrap 源码中定义的 mixin 也可以用来创建语义化的布局。


•通过为“列(column)”设置 padding 属性,从而创建列与列之间的间隔(gutter)。通过为 .row 元素设置负值 margin 从而抵消掉为 .container 元素设置的 padding,也就间接为“行(row)”所包含的“列(column)”抵消掉了padding。


•负值的 margin就是下面的示例为什么是向外突出的原因。在栅格列中的内容排成一行。


•栅格系统中的列是通过指定1到12的值来表示其跨越的范围。例如,三个等宽的列可以使用三个 .col-xs-4 来创建。


•如果一“行(row)”中包含了的“列(column)”大于 12,多余的“列(column)”所在的元素将被作为一个整体另起一行排列。


栅格类适用于与屏幕宽度大于或等于分界点大小的设备 , 并且针对小屏幕设备覆盖栅格类。 因此,在元素上应用任何 .col-md-* 栅格类适用于与屏幕宽度大于或等于分界点大小的设备 , 并且针对小屏幕设备覆盖栅格类。 因此,在元素上应用任何 .col-lg-* 不存在, 也影响大屏幕设备。

grid4.png


(原理:把我们的屏幕大小的宽度平分成12个格,每一格的宽度和整个屏幕分辨率是有关系的,如果整个屏幕分辨率越大那么这12格的每一格的宽度就大,是按比例来算出的,而且这12格的layout是水平排列的。)


比如,我们定义一个div,我们不指定这个div的宽度是多少像素或者占多少百分比,我们是指定这个div占12格中的几格,我们这个div占12格中的8格,不同的分辨率底下它始终是占12格中的8格。系统会根据屏幕分辨率的大小,自动拆成12格,每一格大小根据屏幕分辨率自动在变。这样的话在各浏览器或分辨率下都可以兼容我们这个8:4这个比例。


新建一个ch02的Web项目

grid5.png


将第一节课中新建的web项目ch01打开将css文件、fonts文件、img文件、js文件复制

grid6.png


将复制内容粘贴到ch02中

grid7.png


grid8.png


回到HBuilder,在ch02项目下新建一个demo01.html

grid9.png


打开demo01.html,引入bootstrap头文件

grid10.png


在body里面定义一个容器,它就会根据屏幕的大小自动设定div的宽度。定义第一行有12列,每一列占一定的自己的小格,第二行第一个占了12格中的8格的位置,相当于占了8列的宽度,第二个占了12格中4格的位置,相当于占了4列的宽度。


<body>

<div class="container">

<div class="row">

<div class="col-md-1">col-md-1</div>

<div class="col-md-1">col-md-1</div>

<div class="col-md-1">col-md-1</div>

<div class="col-md-1">col-md-1</div>

<div class="col-md-1">col-md-1</div>

<div class="col-md-1">col-md-1</div>

<div class="col-md-1">col-md-1</div>

<div class="col-md-1">col-md-1</div>

<div class="col-md-1">col-md-1</div>

<div class="col-md-1">col-md-1</div>

<div class="col-md-1">col-md-1</div>

<div class="col-md-1">col-md-1</div>

</div>

<div class="row">

<div class="col-md-8 col-sm-6">md8</div>

<div class="col-md-4 col-sm-6">md4</div>

</div>

</div>

</body>


运行效果

grid11.png


第一行有12列,每一列占一定的自己的小格,第二行第一个占了8列的宽度,第二个占了4列的宽度。


我们再在bootstrap头文件中加一个样式style让我们能看出这样的效果


<style type="text/css">

div{ border: 1px #333333 solid;}

}


</style>



现在,我们再来看一下运行的效果


理解:我电脑的分辨率是1280x800的,由于我们之前设置的类前缀是.col-md-的,所以它默认把container设置成970像素。md表示中等分辨率,我们设置的第一行表示把这个屏幕拆分成12等分,这里就占了12列。每一列就占了12等分的一等分。第二行我们给了两列,第一列占了12等分的8等分,第二列占了12等分的4等分。

grid12.png


如果我们把屏幕变小,它就垂直排列了。因为我们设置的md是中等分辨率的参数,在小分辨率底下就垂直排列了。

grid13.png


接着我们修改第二行的分辨率

grid14.png


运行效果

grid15.png


这时,将屏幕变小md8占6等分md4占6等分,是自动的,这样就转到了小屏幕的分辨率区间。

grid16.png


注意: 1)一行(row)必须在.container中

       2)使用行在水平方向创建列组

       3)具体内容应放置于列(column)内

       4)内置像.row和.col-xs-4(占4列)


3)媒体查询

我们可以指定在哪些分辨率底下执行特定的css样式


例如:

<style type="text/css">

div{ border: 1px #333333 solid;}

@media(max-width:767px)

/*在小于767px的屏幕里,这样的样式才生效。*/

{

    div{ background: #F0AD4E;}

/*设定一个div的样式*/

}


</style>


运行结果:

(分辨率大于767px)

grid17.png


(分辨率小于767px,此时div的背景就变成了我们自己设定的这个颜色。)

grid18.png


• 媒体查询是进行响应式设计的核心要素,其功能非常强大


• Bootstrap主要用到min-width,max-width以及and语法,用于在不同的分辨率下设置不同的css样式 

 

示例:

@media(max-width:767px){

/*在小于767px的屏幕里,这里的样式才生效*/

}

@media(min-width:768px) and (max-width:991px){

/*768-991px屏幕里,这里的样式才生效*/

}


4)课后练习

自己尝试在body里面加container,然后再做行和列,并且我们可以任意指定这个列占我们12小格中的几格。


http://chatgpt.dhexx.cn/article/WHASstJ9.shtml

相关文章

计算机系统原理之程序是怎么运行的

计算机的组成 计算机是由硬件和软件组成的&#xff0c;这两个部分共同协作完成程序的运行。这两部分如何协作完成程序的运行&#xff0c;是本系列的重点。 信息的表示 信息的表示说到底就是位加上下文。举个小例子&#xff0c;比如11011101这一串二进制&#xff0c;在表示整数的…

软件设计师(2)--->操作系统基本原理

目录 操作系统基本原理 一、进程&#xff08;PCB&#xff09; 1、进程的基本状态 2、 前驱图 3、进程的同步与互斥 4、信号量机制 5、PV操作 6、死锁问题 7、银行家算法 二、存储管理 1、分区存储组织 2、分页存储管理方式 3、分段存储管理方式 4、段页式存储管理…

操作系统原理是什么

操作系统是管理计算机硬件资源&#xff0c;控制其他程序运行并为用户提供交互操作界面的系统软件的集合&#xff0c;是通过计算机语言编写程序让计算机执行。那么操作系统原理是什么呢?下面小编就跟大家分享下操作系统原理。 工具/原料 系统版本&#xff1a;windows10系统 品牌…

oneinstack的网站https证书到期后手动续期

由于各种原因&#xff0c;oneinstack并不一定能自动续期网站脚本&#xff0c;导致https证书过期&#xff0c;此时可以手动执行更新脚本。 一、先把oneinstack的证书申请脚本更新 cd oneinstack/ ./upgrade.sh二、手动执行脚本 /root/.acme.sh/acme.sh --cron --home /root/.a…

跟着未名学Office - 高效笔记OneNote

了解OneNote 2016年12月22日 19:57 OneNote Summary 理解OneNote中的笔记本、分区、页的概念 编写人&#xff1a;未名 感谢秦大: http://www.zloffice.net/ 基本操作(17) 2016年12月22日 20:24 页面模板 插入-->页面模板 使用模板 创建模板 用于当前分区新页的…

Onenote如何快速实现首行缩进的功能。

因为Onenote定位的是笔记本&#xff0c;所以本身并不带有首行缩进功能。下面来介绍如何用其它辅助手段来实现这个功能。楼主现在用的是onenote2016&#xff0c;其它版本未测试过这个方法&#xff0c;不过应该是可行的。 首先下载和安装Onetastic这个插件&#xff0c;这个插件目…

关于onenote2016遇到的页面大片空白无法正常收缩的bug

问题示意 解决办法1&#xff1a; 将页面中的信息复制到新的一页后 恢复正常 简单 高效 省事 解决办法2&#xff1a; 这个办法有点麻烦&#xff0c;但是本质是对原来的页面的修复&#xff0c;不需要创建新页面&#xff0c;然后把旧页面的内容搬到新页面。 那么旧页面到底发生了…

简单有效解决onenote无法设置或修改默认的英文字体“Calibri”(简单实用)

onenote中只能设置中文字体&#xff0c;英文字体只能用默认的“Calibri”&#xff0c;中英文和数字混排时&#xff0c;效果极差&#xff0c;极其烦人。是否有办法同时或分别设置onenote中、英文字体呢&#xff1f;办法是有的。 中文字体的设置在文件–>选项中&#xff0c;设…

NAntpad 不免费了

NAntpad是一个很好的创建NAnt Build文件的工具&#xff0c;前一段时间试过它的0.4 Beta版&#xff0c;感觉很不错&#xff1b;今天收到Email通知&#xff0c;0.5 Beta已经发布了&#xff0c;很高兴的把新版本下载回来&#xff08;下载的时候还要再次输入email地址&#xff09;&…

js清空本地存储_详解onenote保存与同步④:本地笔记奇葩的丢失经历

&#xff08;此文介绍的是我遇到过的&#xff0c;极其奇葩的&#xff0c;丢失onenote本地笔记的惨痛经历。不论是否具有普遍性&#xff0c;对进一步理解缓存还是很有帮助的。大家若有其他丢失经历&#xff0c;可以交流。&#xff09; 对于onenote本地笔记本而言&#xff0c;由于…

我的 OneNote 入门心得

Microsoft OneNote 是老牌笔记类软件&#xff0c;在如今百花齐放的笔记类市场仍然有众多死忠粉的拥护&#xff0c;比如我。也试过其它笔记类软件&#xff0c;近年推出的 Notion 就不错&#xff0c;但仍然无法取代 OneNote 在我的笔记体系中的核心地位。 本文介绍笔者对 OneNote…

onenote CAS总结⑦:异常“强大”的搜索机制(转载)

转载地址http://cas01.com/7335.html onenote CAS总结⑦&#xff1a;异常“强大”的搜索机制 原创 小斯 2021-02-06 18:10 onenote的中文搜索&#xff0c;相当尴尬&#xff0c;可以说是功能最强和最垃圾的混合体&#xff01;至少在我用过的软件中&#xff0c;没有哪个的搜…

VisualStudio如何进行OneNote插件开发?

文章目录 0.引言1.工具和数据准备2.创建工程3.创建ribbon配置文件4.编写功能代码5.安装和部署6.OneNote插件展示 0.引言 在OneNote做笔记很方便&#xff0c;但笔者用久后&#xff0c;就觉得OneNote缺少自己想要的一些功能&#xff0c;希望通过二次开发实现不断增长的需求。起初…

如何卸载Onetastic

Looking for an effective solution to uninstall Onetastic (64-Bit)? Download professional uninstaller to get rid of it now! Download Onetastic (64-Bit) Removal Tool Tested Malware & Virus Free by McAfee™ Failed to uninstall Onetastic (64-Bit) through …

onenote运用onetastic和notehighlight插件

一、两个免费插件 插件1&#xff1a;onetastic 查件2&#xff1a;notehighlight 或(github) 其中onetastic可以添加宏(自定义或下载宏)&#xff0c;便于快捷操作。如改变文本字体和字体大小、插入时间、横线、快速查找、替换等。notehighlight可以添加代码样式、主题(noteh…

VUE上传大文件的三种解决方案

最近遇见一个需要上传超大大文件的需求&#xff0c;调研了七牛和腾讯云的切片分段上传功能&#xff0c;因此在此整理前端大文件上传相关功能的实现。 在某些业务中&#xff0c;大文件上传是一个比较重要的交互场景&#xff0c;如上传入库比较大的Excel表格数据、上传影音文件等…

大文件怎样实现快速上传?

前言 大文件快速上传的方案&#xff0c;相信你也有过了解&#xff0c;其实无非就是将 文件变小&#xff0c;也就是通过 压缩文件资源 或者 文件资源分块 后再上传。 本文只介绍资源分块上传的方式&#xff0c;并且会通过 前端&#xff08;vue3 vite&#xff09; 和 服务端&…

大文件夹上传

目前没有这样的标准&#xff0c;可以把文件夹打包上传大文件。 webkitdirectory Booleanwebkitdirectory属性&#xff08;如果存在&#xff09;指示用户在文件选择器界面中只能选择目录。有关HTMLInputElement.webkitdirectory其他详细信息和示例&#xff0c;请参阅。 虽然最初…

往GitHub上传大文件

1.下载Git Git - Downloads 2.下载GitLFS https://git-lfs.github.com/ 3.复制URL 4.在本地创建文件夹&#xff0c;右键Git Bash Here 5.粘贴URL进行下载--下载到本地 git clone URL 6.转到克隆到本地的文件夹内&#xff0c;运行git lfs track--进行文件定位 若要查找所有…

上传大文件的解决方案

上传大文件的解决方案 需求&#xff1a;项目要支持大文件上传功能&#xff0c;经过讨论&#xff0c;初步将文件上传大小控制在500M内&#xff0c;因此自己需要在项目中进行文件上传部分的调整和配置&#xff0c;自己将大小都以501M来进行限制。 第一步&#xff1a; 前端修改 由…