移动Web开发——响应式布局(二)

响应式布局(二)

学习目标

(1)能够说出响应式原理

(2)能够使用媒体查询完成响应式导航

(3)能够使用 bootstrap 的栅格系统

(4)能够使用 bootstrap 的响应式工具

(5)能够独立完成阿里百秀首页案例

1.bootstrap使用(只用样式库)

控制权在框架本身,使用者要按照框架所规定的某种规范进行开发

bootstrap 使用四个步骤:1. 创建文件夹结构 2. 创建 html 骨架结构 3. 引入相关样式文件 4. 书写内容

(1)bootstrap下载

下载地址https://v3.bootcss.com/.
在这里插入图片描述
在这里插入图片描述

(2)创建文件夹结构

在这里插入图片描述

(3)创建骨架结构并引入样式(先只引入样式)

找到基本模板复制源码
在这里插入图片描述

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title></title>
	<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
  </head>
  <body>
	  <h1>hello world</h1>
  </body>
</html>

(4)书写内容

在这里插入图片描述

2.bootstrap按钮

进入文档,找到按钮样式
在这里插入图片描述
复制下来,代码如下

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title></title>
	<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
	<style>
		<!-- 也可以修改样式 注意权重-->
		.login{
			width: 80px;
		}
	</style>
  </head>
  <body>
	  <button type="button" class="btn btn-success">Success</button>
	  <!--通过类名来控制样式-->
	  <div class="btn btn-success login">登录</div>
	  <div class="btn btn-danger">失败</div>
  </body>
</html>

在这里插入图片描述

3.布局容器

Bootstrap 需要为页面内容和栅格系统包裹一个 .container容器,Bootstrap 预先定义好了这个类,叫.container

(1)container类

● 响应式布局的容器 固定宽度
● 大屏( >= 1200px)宽度定为 1170px
● 中屏( >= 992px)宽度定为970px
● 小屏( >=768px)宽度定为750px
● 超小屏(100%)

(2)container-fluid类

● 流式布局容器 百分百宽度
● 占据全部视口(viewport)的容器
● 适合于单独做移动端开发

4.bootstrap栅格系统

(1)栅格系统

将页面布局划分为等宽的列,然后通过列数的定义来模块化页面布局

Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列

Bootstrap 里面 container 宽度是固定的,但是不同屏幕下,container 的宽度不同,我们再把container 划分为12等份

(2)栅格选项参数

栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局

屏幕大小超小屏幕(<768px)小屏设备(>=768px)中等屏幕(>=992px)宽屏设备(>=1200px)
.container 最大宽度自动100%750px970px1170px
类前缀.col-xs-.clo-sm-.col-md-.col-lg-
列(column)数12121212

● 行(row)必须放到container布局容器里面

● 实现列的平均划分 需要给列添加类前缀

● xs-etra small :超小;sm-small :小;md-medium :中等;lg-large :大;

● 列(column)大于12,多余的“列(column)”所在的元素将作为一个整体另起一行排列

● 每一列默认有左右15像素的 padding

● 可以同时为一列指定多个设备的类名,以便划分不同份数

例子

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
	<title></title>
	<style>
		[class^="col"]{
			border: 1px solid #000;
		}
		.container .row:nth-child(1){
			background-color: pink;
		}
	</style>
  </head>
  <body>
	  <div class="container">
		  <div class="row">
			  <div class="col-lg-3 col-md-4 col-min-6 col-xs-12">1</div>
			  <div class="col-lg-3 col-md-4 col-min-6 col-xs-12">2</div>
			  <div class="col-lg-3 col-md-4 col-min-6 col-xs-12">3</div>
			  <div class="col-lg-3 col-md-4 col-min-6 col-xs-12">4</div>
		  </div>
		  <div class="row">
			  <div  class="col-lg-6">1</div>
			  <div  class="col-lg-2">2</div>
			  <div  class="col-lg-2">3</div>
			  <div  class="col-lg-2">4</div>
		  </div>
		  <div class="row">
			  <div  class="col-lg-6">1</div>
			  <div  class="col-lg-2">2</div>
			  <div  class="col-lg-2">3</div>
			  <div  class="col-lg-1">4</div>
		  </div>
	  </div>
  </body>
</html>

效果图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)栅格系统列嵌套

一个列内再分成若干份小列,可以通过添加一个新的 .row元素和一个系列 .col-sm-* 元素到已经存在的 .col-sm-*元素内

例子

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
	<title></title>
	<style>
		.row>div{
			height: 50px;
			background-color: pink;
		}
	</style>
  </head>
  <body>
	  <div class="container">
		  <div class="row">
			  <div class="col-lg-4">
				<div class="row">
					<div class="col-lg-6">a</div>
					<div class="col-lg-6">b</div>
				</div>
			  </div>
			  <div class="col-lg-4">2</div>
			  <div class="col-lg-4">3</div>
		  </div>
	  </div>
  </body>
</html>

效果图
在这里插入图片描述

(4)列偏移

使用 .col-md-offset-* 类可以将列向右侧偏移。这些类实际是通过使用 * 选择器为当前元素增加了左侧的边距(margin)

例子

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
	<title></title>
	<style>
		.row>div{
			height: 50px;
			background-color: pink;
		}
	</style>
  </head>
  <body>
	  <div class="container">
		  <div class="row">
			  <div class="col-md-4 ">左侧</div>
			  <!-- 偏移份数 = 12 - 两个盒子的份数 -->
			  <div class="col-md-4 col-md-offset-4">右侧</div>
		  </div>
		  <div class="row">
			  <!-- 如果只有一个盒子,偏移份数 = (12 - 盒子大小)/2-->
			  <div class="col-md-8 col-md-offset-2">中间盒子</div>
		  </div>
	  </div>
  </body>
</html>

效果图
在这里插入图片描述

(5)列排序

通过使用 .col-md-push-* 和 .col-md-pull-* 类就可以很容易的改变列(column)的顺序

例子

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
	<title></title>
	<style>
		.row div{
			height: 50px;
			background-color: pink;
		}
	</style>
  </head>
  <body>
	  <div class="container">
		  <div class="row">
			  <div class="col-md-4 col-md-push-8">左侧</div>
			  <div class="col-md-8 col-md-pull-4">右侧</div>
		  </div>
	  </div>
  </body>
</html>

效果图
在这里插入图片描述
在这里插入图片描述

5. 响应式工具

为了加快对移动设备友好的页面开发工作,利用媒体查询功能,并使用这些工具类可以方便的针对不同设备展示或隐藏页面内容

类名超小屏幕(<768px)小屏设备(>=768px)中等屏幕(>=992px)宽屏设备(>=1200px)
.hidden-xs隐藏可见可见可见
.hidden-sm可见隐藏可见可见
.hidden-md可见可见隐藏可见
.hidden-lg可见可见可见隐藏

与之相反的,visible-xs visible-sm visible-md visible-lg 会显示内容

例子

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
	<title></title>
	<style>
		.row div{
			background-color: purple;
			height: 60px;
			font-size: 50px;
		}
		.row div:nth-child(2){
			background-color: pink;
		}
		span{
			color: green;
		}
	</style>
  </head>
  <body>
	  <div class="container">
		  <div class="row">
			  <div class="col-xs-3">
				  <span class="visible-lg">我会显示昂</span>
			  </div>
			  <div class="col-xs-3 hidden-md hidden-xs">我会变魔术</div>
			  <div class="col-xs-3">3</div>
			  <div class="col-xs-3">4</div>
		  </div>
	  </div>
  </body>
</html>

效果图
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值