当前位置:网站首页 > 技术博客 > 正文

栅格布局实现



目录

一.响应式网页

二.Bootstrap

三.栅格布局

1.语法

2.源码解析

3.不带数字的col类

4.栅格的列偏移   

四.弹性布局

五.关于input 的样式

💥 组件

1.按钮组

2.下拉菜单

3.信息提示框

4.导航

(1) 水平导航

(2) 选项卡导航

(3) 胶囊导航

5.响应式导航栏

6.折叠效果

7.卡片 

8.折叠导航栏

9.徽章

10.巨幕 

12.分页条 

13.焦点轮播图 

14.进度条 


【前文回顾】👉 bootstrap入门之媒体查询技术、样式类_01


Boot最重要的3个知识:① 手写媒体查询@media;② 栅格布局;③ scss

boot封装栅格的目的,就是为了简化响应式布局

栅格布局,把所有的布局看做一行

用列数来表示每一个块占据宽度的大小

一行一共12列

div.row

    >div.col-1/2/3/4/5/6/7/8/9/10/11/12

响应式  col-*-1/2/3/4/5/6/7/8/9/10/11/12

             *:sm/md/lg/xl

.row    弹性,可换行   左右-15px外边距。让div左右变大15px

.no-gutters   清除row的左右-15px外边距和col的左右+15px内边距

.col-n   左右+15px内边距  flex: 0 0 n/12;

.col

源码:flex-basis:0  基本宽度为0

          flex-grow:1  主轴有多余空间的时候,把多余空间平均分配给每一个.col(不带数字)

导致不管有多少个col。都会平均分布主轴空间,直到放不下(即直到文本放不下,因为文本不能压缩),换行

特点  (1) 不按照一行12分来计算

         (2) 一行的col可以远远超过12个

offset-*-n    *:sm/md/lg/xl   n:1~11   ——带响应式的栅格列偏移

源码:margin-left

 🔹 示例1: 栅格布局练习

 

运行结果:

🔹 示例2: 栅格布局练习

 

 运行结果:

🔹 示例3: 栅格布局练习

 

运行结果:

🔹 示例4: 栅格布局练习

 

运行结果:


① 显示方式:d-*-none/block/inline/inline-block/flex    ——*:sm/md/lg/xl

boot对弹性的封装特别好:d-*-flex

② 主轴的方向:flex-*-row  flex-*-row-reverse  flex-*-column  flex-*-column-reverse

③ 项目是否换行:flex-*-wrap/nowrap

④ 项目们在主轴上的排列方式:justify-content-*-between/around/start/end/center

⑤ 项目们在交叉轴上的排列方式:align-items-*-start/center/end/baseline/stretch

 

 结果:

🔹 栅格和弹性的关系

只要父元素设置了弹性,x轴从左向右的主轴(主轴方向是x轴),可换行,就可以当做栅格的row来用。也就是说,如果不用栅格的row,可以使用弹性来写满足以上3个条件(实际上写2个条件即可,因为弹性的主轴方向默认就是x轴)就相当于row的功能。

 

.form-control      boot为文本框封装的样式

 

运行结果:


在项目中有很多样式特效和js特效

通过样式和自定义属性方式,把特效进行了封装

只要我们把类名和自定义属性写对,就能完成特效

boot封装的特效,样式和功能都是有限的

boot使用自定义属性的方式,来调用封装好的js特效

例如,轮播图需要使用js写,boot就使用自定义属性的方式,调用封装好的js轮播图特效

① 哪个元素激活方法

② 方法影响的是哪个元素

把多个按钮,放在一个组里显示

div. btn-group  弹性,主轴为x轴   ——水平按钮组

   >a.btn

 

结果: 

. btn-group-vertical 弹性,主轴为y轴  ——垂直按钮组

结果: 

. btn-group-lg/sm  设置按钮组大小

 

 执行结果:

结构

div.dropdown   相对定位    ——查看boot类dropdown源码 3137行

     >btn.dropdown-toggle   添加一个向下的小按钮

     +ul.dropdown-menu     隐藏

事件

① 哪个元素激活方法     按钮  data-toggle="dropdown"    ——data-toggl是数据切换的意思

② 方法影响的是哪个元素     由于在同一个父元素结构下,不需要写事件影响的目标

 

 执行结果:

结构

div.alert 基本类

.alert-danger/warning......       ——提示框的颜色
.alert-dismissible      ——让后代.close颜色与背景色匹配
>.close   小叉叉

事件

① 哪个元素激活方法     小叉叉     data-dismiss="alert"

② 方法影响的是哪个元素      不需要定义目标元素

 

结果: 

(1) 水平导航

结构

ul.nav   弹性,x轴

     >li.nav-item

        >a.nav-link

 

 执行结果:

(2) 选项卡导航

结构

ul.nav.nav-tabs  让内部所有的的nav-link变成选项卡的样式

   >li.nav-item

        >a.nav-link   被选中.active

div.tab-content

   >div.tab-pane    与tab-content配合,隐藏

事件

1.触发事件的元素  a      data-taggle="tab"    ——data-taggle是指以什么事件触发

2. 目标元素        div.tab-pane  在a中绑定 事件目标href="#目标id"

 

结果:

(3) 胶囊导航

结构

ul.nav.nav-pills  让内部所有的的nav-link变成选项卡的样式

   >li.nav-item

        >a.nav-link   被选中.active

div.tab-content

   >div.tab-pane    与tab-content配合,隐藏

事件

1.触发事件的元素  a      data-taggle="pill" 

2.目标元素     div.tab-pane     在a中绑定     事件目标href="#目标id"  

 

 执行结果:

div.navbar   相对定位,弹性,x轴,主轴两端对齐,交叉轴居中

       .navbar-expand-sm/md/lg/xl

             如果这个选择器成立,那么他的儿子navbar-nav的主轴变为x轴

             如果不成立,那么他的儿子navbar-nav的主轴是默认的y轴

   >ul.navbar-nav   弹性  y轴  ——源码默认主轴为y轴

     >li.nav-item

        >a.nav-link 

 

 执行结果:

.btn

div.collapse

事件

1.激发事件的元素   .btn       data-toggle="collapse"

2.目标元素  div      在btn中data-target="#div的id"

在a标签中绑定 事件目标用href="#目标id"

 

 执行结果:

div.card                   

>div.cad-header

   +div.card-body

   +div.card-footer

注意:card-header、card-body、card-footer三个可以只有其中一个,谁离了谁都行,每一个都叫卡片

 

执行结果:

 

 执行结果:

div.navbar

     .navbar-dark   让内部3个部分的文本,都变为浅色

     .bg-dark

     .navbar-expand-lg   1.让按钮在lg以上隐藏,在lg以下显示

                                     2.让ul在lg以上横向,在lg以下纵向

                                     3.让div.navbar-collapse在lg以上显示,在lg以下隐藏

>a.navbar-brand   被父元素navbar-dark设置为浅色

 +button.navbar-toggler  配合父元素navbar-expand-lg   让按钮在lg以上隐藏,在lg以下显示

     >span.navbar-toggler-icon   被父元素navbar-dark设置为浅色

+div.collapse  display:none   隐藏

     .navbar-collapse   配合navbar-expand-lg,在lg以上显示,在lg以下隐藏

 

执行结果:

基本类  .badge

颜色   badge-danger/warning/info......

胶囊徽章  badge-pill

 

执行结果:

jumbotron  巨大的内边距,带背景色

 

执行结果:

11.面包屑导航  

ul. breadcrumb

  >li. breadcrumb-item

     >a

目前只要有文本符号连接的层进关系,都叫面包屑导航

 

执行结果:

ul.pagination  弹性,x轴

  >li.page-item    让第一个li内部的a标签有左上,左下圆角

                          让最后一个li内部的a标签有右下,右上圆角

     .active    让被选中的li下的a改变样式

     .disabled   让被禁用li下的a改变样式

    >a.page-link

 

执行结果:

div.carousel

   >.div.carousel-inner   w-100  溢出隐藏

     >div.carousel-item   display-none;w-100

           .active    显示

        >img .w-100 ——坑!!!,需要给img设置宽度100%

第一部分的事件  在最外层 添加 data-ride="carousel"

这个事件,可以让图片显示,同时也让轮播指示器的点跟着图片动

👉 轮播指示器,与carousel-inner平级

ul.carousel-indicators

    >li  第一个li添加.active

需要重写样式

事件:① 激活事件的元素   li data-slide-to="n" n对应图片,以0开头

           ② 事件影响的目标     li绑定最外层div.carousel的id data-target="#demo" 

👉 左右箭头,与轮播指示器,还与图片div.carousel-inner平

a.carousel-control-next/prev

     >span.carousel-control-next/prev-icon

需要重写样式

事件:

① 激活事件的元素  a    data-slide="prev/next"

② 事件影响的目标元素     a的href中绑定最外层div.carousel的id href="#demo"

 

执行结果: 

div. progress    定义进度条的槽

 >div.progress-bar   定义进度条

     .w-100        定义进度

     .bg-secondary   定义背景色

     .progress-bar-striped  带条纹的进度条

     .progress-bar-animated  条纹动画的进度条

 

 执行结果:


【后文传送门】👉   bootstrap入门之Scss知识点详解_03


版权声明


相关文章:

  • 病毒分析入门2025-01-17 09:30:02
  • delphi7使用教程2025-01-17 09:30:02
  • expdp使用2025-01-17 09:30:02
  • 哈夫曼树算法实现2025-01-17 09:30:02
  • lenet5卷积神经网络代码2025-01-17 09:30:02
  • mq消息队列底层原理2025-01-17 09:30:02
  • usb协议有哪些2025-01-17 09:30:02
  • 相机cmos长什么样2025-01-17 09:30:02
  • linux dmesg日志在哪里2025-01-17 09:30:02
  • delphi7入门教程2025-01-17 09:30:02