1.响应式开发
1.1 响应式开发原理
使用媒体查询针对不同宽度的设备进行布局和样式的设置,从而适配不同设备的目的。
1.2 响应式布局容器
响应式需要一个父级做为布局容器,来配合子级元素来实现变化效果。
原理就是在不同屏幕下,通过媒体查询来改变这个布局容器的大小,再改变里面子元素的排列方式和大小,从而实现在不同屏幕下,看到不同的页面布局和样式变化
平时我们的响应式尺寸划分
也可根据实际情况划分尺寸
2.bootstrap前端开发框架
bootstrap是基于html,css和JavaScript的,简洁灵活,使web开发更加快捷
框架:顾名思义就是一套架构,它有一套比较完整的网页功能解决方案,而且控制权在框架本身,有预制样式库、组件和插件。使用者要按照框架所规定的的某种规范进行开发。
目前推荐3.x.x版本
2.1 bootstrap 使用
创建文件夹结构
创建html骨架结构
<!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous"> <title>Hello, world!</title> </head> <body> <h1>Hello, world!</h1> <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script> </body> </html>
引入相关文件
写代码
要想学好bootstrap,就要知道它定义了哪些样式,以及这些样式能实现什么样的效果
2.2 bootstrap 按钮
2.3 bootstrap 布局容器
bootstrap 需要为页面内容和栅格系统包裹一个 .container 容器,bootstrap 预先定义好了这个类,叫 .container 。
他提供了两个作此用处的类
1.container类
不需要写媒体查询,直接使用这个类就行
2.container-fluid类
3 栅格系统
3.1 什么是
栅格系统是指将页面布局划分为等宽的列,然后通过列数的定义来模块化页面布局。
会将页面里的内容部分最多划分为12等分。
3.2 栅格选项参数
栅格系统用于通过一系列的行与列的组合来创建页面布局,内容就可以放入这些创建好的布局中
// 在超大屏幕下,显示一个一行四份,则每份占三列
//类前缀 .col-lg- 后添上3,改为 .col-lg-3
<body>
<div class="container">
<div class="row">
<div class="col-lg-3">1</div>
<div class="col-lg-3">2</div>
<div class="col-lg-3">3</div>
<div class="col-lg-3">4</div>
</div>
</div>
</body>
如果孩子的份数相加等于12,则孩子能占满整个container宽度;小于12,占不满,会有空白;大于12,多出的那一列会另起一行显示。
四种屏幕下
3.3 栅格系统的列嵌套
<body>
<div class="container">
<div class="row">
<div class="col-md-3">
// 列嵌套最好加个行row,这样可以取消父元素的padding值
//而且高度自动和父级一样
<div class="row">
<div class="col-md-6">1</div>
<div class="col-md-6">2</div>
</div>
</div>
<div class="col-md-3">2</div>
<div class="col-md-3">3</div>
<div class="col-md-3">4</div>
</div>
</div>
</body>
3.4 栅格系统的列偏移
使用 .col-md-offset-* 类可以将列向右偏移。* 用数字替换
3.5 栅格系统的列排序
使用 .col-md-push-* 和 .col-md-pull-* 就可以很容易的改变列的顺序。* 用数字替换
3.6 bootstrap栅格系统的响应式工具
与之相反的是visible-xs,visible-sm,visible-md,visible-lg是显示某个页面内容的。