响应式开发
Bootstrap 前端开发框架
1.1 Bootstrap 使用
1.创建文件夹结构
2.创建html骨架结构
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap 模板</title>
<!-- 要求当前网页使用IE浏览器最高版本的内核来渲染 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- 视口的设置: 视口的宽度和设备一致,默认的缩放比列和PC端一致,用户不能自行缩放 -->
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0" />
<!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> -->
<!-- 引入 Bootstrap 网上的资源-->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<!-- HTML5 Shiv 和 Respond.js 用于让 IE8 支持 HTML5元素和媒体查询 -->
<!-- 注意: 如果通过 file:// 引入 Respond.js 文件,则该文件无法起效果 -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.2/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<h1>Hello, world!</h1>
<!-- jQuery (Bootstrap 的 JavaScript 插件需要引入 jQuery) -->
<!-- <script src="https://code.jquery.com/jquery.js"></script> -->
<!-- 包括所有已编译的插件 -->
<!-- <script src="js/bootstrap.min.js"></script> -->
</body>
</html>
3.引入相关样式文件
<!-- 引入 Bootstrap 核心样式-->
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" />
4.书写内容
按钮 演示
访问https://v3.bootcss.com/css/?#buttons-tags
直接复制代码使用
效果:
也可以自定义样式,覆盖原先的样式(注意权重问题)。
效果:
1.2 响应布局
container类
代码:
<div class="container">响应布局</div>
效果:
container-fluid类(适合做app端)
代码:
<div class="container-fluid">响应布局</div>
效果:
Bootstrap 栅格系统
Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。它包含了易于使用的预定义类,还有强大的mixin 用于生成更具语义的布局。
是将页面布局划分为等宽的12列,然后通过列数的定义来模块化页面布局。
2.1 简介
2.2 栅格参数
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>栅格系统</title>
<!-- 要求当前网页使用IE浏览器最高版本的内核来渲染 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- 视口的设置: 视口的宽度和设备一致,默认的缩放比列和PC端一致,用户不能自行缩放 -->
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0" />
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<style type="text/css">
[class^="col"] {
border: 1px solid #CCCCCC;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-lg-3">col-lg-3</div>
<div class="col-lg-3">col-lg-3</div>
<div class="col-lg-3">col-lg-3</div>
<div class="col-lg-3">col-lg-3</div>
</div>
<div class="row">
<!-- 如果col-lg的份数相加等于12 -->
<div class="col-lg-6">col-lg-6</div>
<div class="col-lg-2">col-lg-2</div>
<div class="col-lg-2">col-lg-2</div>
<div class="col-lg-2">col-lg-2</div>
</div>
<div class="row">
<!-- 如果col-lg的份数相加小于12 则会?-->
<div class="col-lg-6">col-lg-6</div>
<div class="col-lg-2">col-lg-2</div>
<div class="col-lg-2">col-lg-2</div>
<div class="col-lg-1">col-lg-1</div>
</div>
<div class="row">
<!-- 如果col-lg的份数相加大于12 则会?-->
<div class="col-lg-6">col-lg-6</div>
<div class="col-lg-2">col-lg-2</div>
<div class="col-lg-2">col-lg-2</div>
<div class="col-lg-3">col-lg-3</div>
</div>
</div>
</body>
</html>
效果:
总结:
如果col-lg的份数相加等于12 则div能占满整个 的container 的宽度
如果col-lg的份数相加 小于 12 则不占不满整个 的container 的宽度 会有空白
如果col-lg的份数相加 大于12 多于的那一列会 另起一行显示
col-lg是适合在大屏幕使用,而bootstrap也为我们提供在不同的屏幕下使用
<div class="row">
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">col-lg-3</div>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">col-lg-3</div>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">col-lg-3</div>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">col-lg-3</div>
</div>
2.3 列嵌套
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>列嵌套</title>
<!-- 要求当前网页使用IE浏览器最高版本的内核来渲染 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- 视口的设置: 视口的宽度和设备一致,默认的缩放比列和PC端一致,用户不能自行缩放 -->
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0" />
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<style type="text/css">
.row>div{
height: 50px;
background-color: pink;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-4">col-md-4</div>
<div class="col-md-4">col-md-4</div>
<div class="col-md-4">col-md-4</div>
</div>
</body>
</html>
效果:
注意:想要盒子之间分隔开来,加margin: 0 10px; 是不行的
宽度为33.33333333%且浮动,使用margin会有一个盒子挤下来
解决办法: 在里面再嵌套一个小盒子,宽度为100%就行了
列嵌套代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>列嵌套</title>
<!-- 要求当前网页使用IE浏览器最高版本的内核来渲染 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- 视口的设置: 视口的宽度和设备一致,默认的缩放比列和PC端一致,用户不能自行缩放 -->
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0" />
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<style type="text/css">
.row>div{
height: 50px;
background-color: pink;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-4">
<div class="row">
<div class="col-md-6">a</div>
<div class="col-md-6">b</div>
</div>
</div>
<div class="col-md-4">col-md-4</div>
<div class="col-md-4">col-md-4</div>
</div>
</body>
</html>
效果:
注意: 列嵌套我们嵌套最好加1个行row 这样可以取消父级的padding值 而且高度自动和父级一样高
2.4 列偏移
例如,.col-md-offset-4 类将 .col-md-4 元素向右侧偏移了4个列(column)的宽度。
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>偏移</title>
<!-- 要求当前网页使用IE浏览器最高版本的内核来渲染 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- 视口的设置: 视口的宽度和设备一致,默认的缩放比列和PC端一致,用户不能自行缩放 -->
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0" />
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<style type="text/css">
.row>div{
height: 50px;
background-color: pink;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<!-- 两个盒子偏移量: 12-两盒子偏移总量 -->
<div class="col-md-4">左偏移</div>
<div class="col-md-4 col-md-offset-4">右偏移</div>
</div>
<div class="row">
<!-- 一个盒子偏移量: (12-盒子偏移总量)/2 -->
<div class="col-md-6 col-md-offset-3">一个盒子</div>
</div>
</div>
</body>
</html>
效果:
2.5 列排序
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>偏移</title>
<!-- 要求当前网页使用IE浏览器最高版本的内核来渲染 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- 视口的设置: 视口的宽度和设备一致,默认的缩放比列和PC端一致,用户不能自行缩放 -->
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0" />
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<style type="text/css">
.row>div{
height: 50px;
background-color: pink;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<!--col-lo-push推 col-lo-pull拉 -->
<div class="col-md-4 col-lg-push-8">左偏移</div>
<div class="col-md-8 col-lg-pull-4">右偏移</div>
</div>
</div>
</body>
</html>
效果: