带你玩转JavaWeb开发之五-如何完成响应式开发页面
响应式页面开发
使用BootStrap开发一个响应式的页面出来
响应式开发就是同一个页面在PC端与手机端Pad端显示不同的效果,以给用户更好的体验
需求分析
开发一套页面,让用户能够在PC端, Pad端, 手机端同时正常显示啊,并且不能够影响显示效果
技术分析
BootStap概述
什么是BootStrap
BootStrap有什么作用
什么是响应式
BootStrap的中文网
下载BootStrap
BootStrap结构
全局CSS
bootStrap中已经定义好了一套CSS的样式表
组件
BootStrap定义的一套按钮,导航条
JS插件
BootStrap定义了一套JS的插件,这些插件已经默认实现了很多种效果
BootStrap的入门开发
引入相关的头文件
<meta charset="UTF-8">
<!--BootStrap设计的页面支持响应式的 -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<!--引入BootStrap的CSS-->
<link rel="stylesheet" href="../../css/bootstrap.css" type="text/css"/>
<!--引入JQuery的JS文件:JQuery的JS文件要在BootStrap的js的文件的前面引入-->
<script type="text/javascript" src="../../js/jquery-1.11.3.min.js" ></script>
<!--引入BootStrap的JS的文件-->
<script type="text/javascript" src="../../js/bootstrap.js" ></script>
BootStrap的布局容器
.container
类用于固定宽度并支持响应式布局的容器。
<div class="container">
...
</div>
.container-fluid
类用于 100% 宽度,占据全部视口(viewport)的容器。
<div class="container-fluid">
...
</div>
BootStrap的栅格系统
响应式设计: 这种设计依赖于CSS3中的媒体查询
栅格样式:
设备分辨率大于1200 使用lg样式
设备分辨率大于992 < 1200 使用md样式
设备分辨率大于768 < 992 使用sm样式
设备分辨率小于768使用sm样式
超小屏幕 手机 (<768px) | 小屏幕 平板 (≥768px) | 中等屏幕 桌面显示器 (≥992px) | 大屏幕 大桌面显示器 (≥1200px) | |
---|---|---|---|---|
栅格系统行为 | 总是水平排列 | 开始是堆叠在一起的,当大于这些阈值时将变为水平排列C | ||
.container 最大宽度 |
None (自动) | 750px | 970px | 1170px |
类前缀 | .col-xs- |
.col-sm- |
.col-md- |
.col-lg- |
列(column)数 | 12 | |||
最大列(column)宽 | 自动 | ~62px | ~81px | ~97px |
槽(gutter)宽 | 30px (每列左右均有 15px) | |||
可嵌套 | 是 | |||
偏移(Offsets) | 是 | |||
列排序 | 是 |
BootStrap的全局CSS
定义了一套CSS
对页面中的元素进行定义
列表元素,表单,按钮,图片...
步骤分析
代码实现
使用BootStrap布局网站首页
需求分析
请使用BootStrap对我们的首页进行优化
技术分析
步骤分析
新建一个HTML页面.引入bootStrap相关的js和CSS
定义一个整体的div, 将整体的div分成8个部分
完成没部分的内容显示
代码实现
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!--BootStrap设计的页面支持响应式的 -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<!--引入BootStrap的CSS-->
<link rel="stylesheet" href="../css/bootstrap.css" type="text/css"/>
<!--引入JQuery的JS文件:JQuery的JS文件要在BootStrap的js的文件的前面引入-->
<script type="text/javascript" src="../js/jquery-1.11.3.min.js" ></script>
<!--引入BootStrap的JS的文件-->
<script type="text/javascript" src="../js/bootstrap.js" ></script>
</head>
<body>
<!--整体div-->
<div class="container">
<!--Logo部分-->
<div class="row">
<div class="col-md-4 col-sm-6">
<img src="../img/logo2.png" />
</div>
<div class="col-md-4 col-sm-6">
<img src="../img/header.png" />
</div>
<div class="col-md-4 col-sm-12">
<ul class="list-inline" style="padding-top: 15px;">
<li><a href="#">登录</a></li>
<li><a href="#">注册</a></li>
<li><a href="#">购物车</a></li>
</ul>
</div>
</div>
<!--导航栏部分-->
<div>
<nav class="navbar navbar-inverse">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">首页</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="#">手机数码 <span class="sr-only">(current)</span></a></li>
<li><a href="#">电脑办公</a></li>
<li><a href="#">电脑办公</a></li>
<li><a href="#">电脑办公</a></li>
<li><a href="#">电脑办公</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">Separated link</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
<form class="navbar-form navbar-right" role="search">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
</div>
<!--图片轮播部分-->
<div>
<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
<!-- Indicators -->
<ol class="carousel-indicators">
<li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
<li data-target="#carousel-example-generic" data-slide-to="1"></li>
<li data-target="#carousel-example-generic" data-slide-to="2"></li>
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner" role="listbox">
<div class="item active">
<img src="../img/1.jpg" alt="">
<div class="carousel-caption">
</div>
</div>
<div class="item">
<img src="../img/2.jpg" alt="">
<div class="carousel-caption">
</div>
</div>
<div class="item">
<img src="../img/3.jpg" alt="">
<div class="carousel-caption">
</div>
</div>
</div>
<!-- Controls -->
<a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
</div>
<!--最新商品显示部分-->
<div>
<div class="row">
<h2>最新商品<img src="../img/title2.jpg"></h2>
</div>
<div class="row">
<!--左侧广告部分-->
<div class="col-md-2 hidden-sm hidden-xs" style="height: 400px;">
<img src="../products/hao/big01.jpg" width="100%" height="100%"/>
</div>
<div class="col-md-10">
<div class="row">
<div class="col-md-6 hidden-sm hidden-xs" style="height: 200px;">
<img src="../products/hao/middle01.jpg" width="100%" height="100%"/>
</div>
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small03.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small04.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small05.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
</div>
<div class="row">
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small03.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small04.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small05.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small03.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small04.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small05.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
</div>
</div>
</div>
</div>
<!--广告部分-->
<div>
<img src="../products/hao/ad.jpg" width="100%"/>
</div>
<!--热门商品显示部分-->
<div>
<div class="row">
<h2>热门商品<img src="../img/title2.jpg"></h2>
</div>
<div class="row">
<!--左侧广告部分-->
<div class="col-md-2 hidden-sm hidden-xs" style="height: 400px;">
<img src="../products/hao/big01.jpg" width="100%" height="100%"/>
</div>
<div class="col-md-10">
<div class="row">
<div class="col-md-6 hidden-sm hidden-xs" style="height: 200px;">
<img src="../products/hao/middle01.jpg" width="100%" height="100%"/>
</div>
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small03.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small04.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small05.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
</div>
<div class="row">
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small03.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small04.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small05.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small03.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small04.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
<div class="col-md-2 col-sm-4">
<img src="../products/hao/small05.jpg" />
<p>电饭煲</p>
<p>电饭煲</p>
</div>
</div>
</div>
</div>
</div>
<!--广告部分-->
<div>
<img src="../img/footer.jpg" width="100%"/>
</div>
<!--页面底部友情链接-->
<div align="center">
<a href="../案例一:网站信息页面显示/网站信息页面显示.html">关于我们</a>
<a href="">联系我们</a>
<a href="">招贤纳士</a>
<a href="">法律声明</a>
<a href="../案例三:网站列表页面显示/网站列表页面显示.html">友情链接</a>
<a href="">支付方式</a>
<a href="">配送方式</a>
<a href="">服务声明</a>
<a href="">广告声明</a>
<br/>
Copyright © 2005-2016 xx商城 版权所有
</div>
</div>
</body>
</html>
带你玩转JavaWeb开发之五-如何完成响应式开发页面的更多相关文章
- 第四课 开发uehtml官网响应式静态页面
概况:整站布局.头部菜单响应式设置.最新消息模块变化.内容模块四三二响应式变化. 伪类选择器: E:nth-of-type(n) 表示E父元素中的第n个字节点,且类型为E E:nth-la ...
- 《微信小程序七日谈》- 第二天:你可能要抛弃原来的响应式开发思维
<微信小程序七日谈>系列文章: 第一天:人生若只如初见: 第二天:你可能要抛弃原来的响应式开发思维: 第三天:玩转Page组件的生命周期: 第四天:页面路径最多五层?导航可以这么玩 上篇文 ...
- BootStrap常用组件及响应式开发
BootStrap常用组件 PS:所有的代码必须写在<class="container/container-fluid">容器当中 常用组件包含内容: 字体图标 下拉菜 ...
- 移动端使用rem同时适应安卓ios手机原理解析,移动端响应式开发
rem单位大家可能已经很熟悉,rem是随着html的字体大小来显示代表宽度的方法,我们怎样进行移动端响应式开发呢 浏览器默认的字体大小为16px 及1rem 等于 16px 如果我们想要使1rem等于 ...
- 借鉴bootstrap的方法,快速实现响应式开发
响应式开发 注意:任何框架都是一个辅助手段,只需借鉴其中的核心思想,把其中核心的东西提炼出来即可.不要因为,提到响应式就想到只能够用bootstrap来实现,框架现有的东西是可以提高我们的效率,但是其 ...
- springboot 使用webflux响应式开发教程(二)
本篇是对springboot 使用webflux响应式开发教程(一)的进一步学习. 分三个部分: 数据库操作webservicewebsocket 创建项目,artifactId = trading- ...
- 基于screen.width的伪响应式开发
一.站在用户的角度看问题 一个用户,访问一个web页面的真实场景是怎样的呢? 下面是某用户访问某站点的一个场景: 1. 小明打开了自己的电脑,访问了鑫空间-鑫生活: 2. 小明体内洪荒之力无法控制,疯 ...
- 移动端开发之响应式开发和bootstrap基础
响应式开发 (就是利用媒体查询针对不同宽度的设备进行布局和样式的设置,从而设配不同设备的目的) 响应式布局容器响应式需要一个父级作为布局容器,来配合子级元素来实现变化效果 原理:不同屏幕下,通过媒体查 ...
- 移动 WEB 开发的布局方式 ---- 响应式布局
一.响应式简介 一个页面布局兼容了 PC端 ,iPad端 和 移动端 所谓的响应式就是页面中的布局会随着屏幕的大小变化发生了响应而做出不同的页面布局模型 特点: 响应式布局是不需要单独写移动端页面的 ...
随机推荐
- java入门 第三季4
java集合框架中 java集合框架下
- .NET LINQ 生成操作
生成操作 生成是指创建新的值序列. 方法 方法名 说明 C# 查询表达式语法 Visual Basic 查询表达式语法 更多信息 DefaultIfEmpty 将空集合替换为具有默认值的单一 ...
- LeetCode 219 Contains Duplicate II
Problem: Given an array of integers and an integer k, find out whether there are two distinct indice ...
- SQL查询第m条到第n条的方法
SQL查询第m条到第n条的方法 如表名为GOOD Sselect top (n-m) * from GOODS where (某一列名) not in (select top m (某一列名) fro ...
- Revit 自定义RibbonPanel到Revit中
项目下找到TheApplication.cs,更改内容: class TheApplication : IExternalApplication { public Result O ...
- Oracle 11g RAC 卸载CRS步骤
Oracle 11g之后提供了卸载grid和database的脚本,可以卸载的比较干净,不需要手动删除crs ##########如果要卸载RAC,需要先使用dbca删除数据库,在执行下面的操作### ...
- hadoop入门(2)——HDFS2.0应用场景、原理、基本架构及使用方法
一.HDFS概述 优点:高容错性.适合批处理.适合大数据处理.流式文件访问:一次写入,多次读取. 缺点:不适合低延迟数据访问.不适合小文件存取(受限于NameNode) ...
- PCM数据格式,多少字节算一帧
转自:http://blog.chinaunix.net/uid-9185047-id-3327302.html Somehow i remember that normally 2048 sampl ...
- java DMO及增删改查代码的自动生成
在web开发过程中,尤其是后台管理系统的开发中,少不了增删改成的基础操作,原来我自己的做法是一份一份的拷贝粘贴,然后修改其中的不同,然而这样既枯燥无味又浪费了大量的时间,所以根据自己项目结构的特点写了 ...
- zookeeper原理及作用
ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby.今天这篇 ...