响应式开发是使用媒体查询
针对不同的宽度设备内进行布局和样式的设置,从而适配不同的设备
在bootstrap中的设备划分
超小屏幕 <768px
小平设备 >=768 ~ <992px
中等屏幕 >=992px ~ <1200px
宽屏设备 >=1200px
响应式需要一个父级作为布局容器,来配合子级元素实现变化效果
原理就是在不同屏幕下,通过媒体查询改变这个布局容器的大小,再改变里面子元素的排列方式和大小
从而实现不同屏幕下,看到的不同页面布局和样式变化
bootstrap响应式的尺寸划分
超小屏幕 宽度设为100%
小屏幕 宽度设为750px
中等屏幕 宽度设为970px
大屏幕 宽度设为1170px
优点:
标准化的html+css编码规范
提供了一套简洁、直观、强悍的组件
有自己的生态圈,不断更新迭代
开发更简单,提高了开发效率
缺点:实际不算框架,算ui库
1.创建文件夹结构
2.创建html结构
3.引入相关样式文件
4.书写内容
<head>
<meta charset="UTF-8">
要求当前网页使用IE浏览器最高版本的内核来渲染
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">这里引入的文件可选很多
<title>Documenttitle>
head>
bootstrap需要为页面内容和栅格系统包裹一个.contanier容器,bootstrap预先定义好了这个类
叫.container它提供了两个作用此处的类。
1.container类
响应式布局容器 固定宽度
大屏 1170px
中屏 970px
小屏 750px
超小屏 100%
写了这个类 不需要写媒体查询
注意:这个container有左右内边距15px
2.container-fluid类
流式布局容器 百分之百宽度
占据全部视口的容器
适合于单独做移动端开发
这个类还是有左右内边距15px
为了加快移动设备友好的页面开发工作,利用媒体查询功能,
并且使用这些工具类方便针对不同设备展示或隐藏内容
.hidden-xs 隐藏超小屏 其他可见
.hidden-sm 隐藏小屏 其他可见
.hidden-md 隐藏中屏 其他可见
.hidden-lg 隐藏大屏 其他可见
与其相反的是 visible 只在某个屏幕显示
将页面布局划分为等宽的列 然后通过列数的定义来模块化页面布局
bootstarp提供了一套响应式、移动设备优先的流式栅格系统,
随着屏幕或视口尺寸的增加,系统会自动分为最多12列
bootstrap里面container宽度是固定的,但是不同屏幕下,container的宽度不同
划分为12等份,里面内容也会自适应
栅格选项参数 | ||||
---|---|---|---|---|
.container最大宽度 | 100% | 750px | 970px | 1170px |
类前缀 | .col-xs- | .col-sm- | .col-md- | .col-lg- |
列数 | 12 | |||
注意事项 | 可为同一列指定多个类,从而控制不同屏幕的显示 每一列有左右15px的padding 如果孩子份数相加等于12份 孩子能占满整个container的宽度 如果孩子份数相加小于12份 则占不满整个container的宽度 会有空白的情况 如果孩子份数相加大于12份 多出来的那个列会另起一行显示 |
<div class="container">
<div class="row">
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">1div>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">2div>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">3div>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">4div>
div>
div>
使用.col-md-offset-*
类 可以将列向右偏移
这些类实际是通过*
选择器为当前元素增加了左侧的边距
<div class="container">
<div class="row">
<div class="col-md-4">左侧div>
<div class="col-md-4 col-md-offset-4">右侧div>
div>
<div class="row">
<div class="col-md-8 col-md-offset-2">中间div>
div>
div>
使用.col-md-push-*
和.col-md-pull-*
类 可改变列排序
把右边的盒子pull过来 把左边的盒子push过去
<div class="container">
<div class="row">
<div class="col-md-4 col-md-push-8">左侧div>
<div class="col-md-7 col-md-offset-1 col-md-pull-5">右侧div>
div>
div>
栅格系统内置的栅格系统内容再次嵌套,简单理解就是一个列再分成若干小份
可以通过添加一个新的.row
元素和一系列的.col-sm-*
元素到已存在的.col-sm-*
想要外边距需要在 每个盒子中嵌套一个小盒子
列嵌套最好加一个 .row
这样可以去掉父元素的padding
而且高度自动和父级一样高
<div class="container">
<div class="row">
<div class="col-md-4">
<div class="row">
<div class="col-md-6">adiv>
<div class="col-md-6">bdiv>
div>
div>
<div class="col-md-4">2div>
<div class="col-md-4">3div>
div>
div>