Rumah > Artikel > hujung hadapan web > 响应式布局的开发教程实例
移动web : 移动端手机浏览器或者微信里面浏览的网页
移动APP : 手机上需要下载安装的应用程序
响应式开发用在一些新建的网站(PC和移动同时出来) 对加载速度要求不是很高
纯原生移动web开发 一般会用在一些已经有PC端上线的网站 再次开发移动端 移动端需要加载速度很快的网站
超小屏幕(手机) 768px以下
小屏设备(平板) 768px-992px
中等屏幕(旧式电脑) 992px-1200px
大屏设备(现代电脑) 1200px以上
@media screen and (条件){ //满足条件执行CSS代码 } and的前后必须有空格 条件通常只有两个 min-width max-width @media (条件){ //满足条件执行CSS代码 } 可以简写省略 screen and
min-width 屏幕宽度大于等于某个值生效 (最小宽度)max-width 屏幕宽度小于等于某个值的时候生效 (最大宽度)
width > 1200 大屏幕 大屏PC设备 992 < width < 1200 中屏幕 老式电脑 768 < width < 992 小屏幕 平板设备 width < 768 超小屏幕 手机
1.如果使用min-width条件判断的时候 条件判断大小 要从小到大写
/*min-width: 768px 当屏幕的宽度大于等于768时 背景颜色为green */ @media screen and (min-width: 768px){ body{ background-color: green; } } /*min-width: 992px 当屏幕的宽度大于等于992时 背景颜色为blue*/ @media screen and (min-width: 992px){ body{ background-color: blue; } } /*min-width: 1200px 当宽度大于等于1200时 背景颜色为pink*/ @media screen and (min-width: 1200px){ body{ background-color: pink; } }
2.如果使用max-width条件判断到时候 条件判断大小 要从大到小写
/*max-width: 1200px:宽度在1200以下*/ @media screen and (max-width: 1200px) { body { background-color: green; } } /*max-width: 992px:宽度在992以下*/ @media screen and (max-width: 992px) { body { background-color: blue; } } /*max-width: 768px:宽度在768以下*/ @media screen and (max-width: 768px) { body { background-color: pink; } }
向上兼容 只写了小的判断, 大的判断没有写, 但是在大屏幕下也会生效
向下覆盖 同时写了小的判断和大的判断, 满足大的条件会生效大的条件的样式, 大的条件写在后面会把小的条件的样式覆盖
在大屏幕下显示4列 中屏幕显示3列 小屏幕显示2列 超小屏幕显示1列
/*w 768~992 每一行放置两个子元素 50%*/ @media screen and (min-width: 768px){ .box > p{ width: 50%; } } /* w 992~1200 每一行放置三个子元素 33.33%*/ @media screen and (min-width: 992px){ .box > p{ width: 33.33%; } } /*w >1200 每一行放置四个子元素 25%*/ @media screen and (min-width: 1200px){ .box > p{ width: 25%; } }
原理就是通过媒体查询判断条件改变盒子的宽度
特点:灵活简介,代码优雅,美观大方
好处:Bootstrap 让我们的Web开发更简单,更快捷
版本:目前市面上使用最多的是3.x.x版本 除此之外还有2.3.2对IE8支持 现已有4.0.0的正式版
相关链接: 中文官网 使用Bootstrap构建的网站
jquery : 库 便捷的DOM (你想实现什么功能就调用什么方法)(主导者是你 你调用库)
Bootstrap : 框架 界面工具集 框架是他来控制你 (框架制定好了一系列规则 用户按照规则进行编写)可以实现整个网站大多数功能
插件 : fullpage 功能比较单一 只是实现了网页里面的某个或几个功能
先引入Bootstrap的CSS(如果想要主题可以在引入带主题的CSS)
再引入自己的CSS
先引入jquery(因为Bootstrap依赖jquery)
再引入Bootstrap的JS
再引入自己的JS
<!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"> <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --> <title>Bootstrap 101 Template</title> <!-- Bootstrap --> <link href="lib/bootstrap/css/bootstrap.css" rel="stylesheet"> <!-- html5 shiv是为了让低版本IE支持html5新标签 --> <!-- respond.js是为了让低版本IE支持CSS3媒体查询 --> <!-- 但是注意respond.js需要在服务器下运行 就是localhost 不能再file下运行不然无法工作 --> <!-- 条件注释 IE版本小于IE9 条件成立就执行下面的代码 如果条件不成立就是注释不执行 --> <!--[if lt IE 9]> <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script> <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <!-- bootstrap的JS插件依赖jquery 所以要先引入jquery --> <script src="lib/jquery/jquery.min.js"></script> <!-- 在引入Bootstrap的JS文件 --> <script src="lib/bootstrap/js/bootstrap.min.js"></script> </body> </html>
先引入第三方的框架
再引入自己的文件
CSS放到head里面引入(有些特殊的JS文件对页面渲染有作用的要放到head中)
js放到body结束标签是上面引入
视口: 浏览器的可视窗口 在PC端是会受到浏览器窗口变化而变化
视口在PC端是可视窗口(会变的) 在移动端有一个固定的值 通常是默认980
但是默认移动端的时候980会造成网页的缩放或者出滚动条
解决移动端默认视口会造成网页缩放和滚动条 设置meta标签设置默认是视口的宽度等于设备的宽度
视口的其他属性 初始化缩放 initial-scale=1.0 是否允许用户缩放 user-scalable=no 最大 maximum-scale=1.0 和最小缩放 minimum-scale=1.0
meta:vp+tab 凡是写移动端页面一来就是加上视口
1.
http-equiv="X-UA-Compatible" 表示设置IE浏览器的兼容模式
content="IE=edge" 表示让IE浏览器用最新的渲染引擎渲染页面
概要 (常用)
布局容器
栅格系统 (常用)
xs : 超小屏幕 手机 (<768px)
sm : 小屏幕 平板 (≥768px)
md : 中等屏幕 桌面显示器 (≥992px)
lg : 大屏幕 大桌面显示器 (≥1200px)
预置排版样式
统一预制标签样式
文本对齐 (常用)
改变大小写
代码样式
页面输出代码
表格样式
各种表格样式
表单样式
各种表单组合的样式
按钮样式
各种按钮颜色 和 按钮大小等样式 (常用)
图片样式
图片圆角的样式
辅助工具类
内容块居中 (常用)
快速浮动 和 清除浮动 (常用)
显示隐藏 (常用)
响应式工具类 (常用)
hidden-xx : 在某种屏幕下隐藏
visible-xx : 在某种屏幕尺寸下显示
基础CSS这块只是将我们常用想一些元素的样式做了美化,如果需要使用直接拿过来用就行了
导航 (常用)
导航条 (常用)
面包屑导航
下拉菜单 (常用)
按钮式下拉菜单
按钮组
输入框组
警告框
页头
分页
列表组 (常用)
面板 (常用)
媒体对象 (常用)
进度条
Glyphicons字体图标 (常用)
标签
徽章
缩略图
大屏幕
嵌入内容
内嵌
将我们日常使用的一些功能块例如下拉菜单,提前写好,我们使用时直接找到对应的demo然后拿回来做相应调整就行了
模态对话框 (常用)
下拉菜单 (常用)
滚动监听 (常用)
标签页 (常用)
工具提示
弹出框
警告框
按钮
折叠面板 (常用)
轮播图 (常用)
吸顶效果 (常用)
data-spy="affix"
data-offset-top="什么位置出现"
data-offset-bottom="什么位置消失"
jQuery
Bootstrap 框架中的所有JS组件都依赖jquery实现
├─ /project/ ··················· 项目所在目录 └─┬─ /css/ ······················· 自己的CSS文件 ├─ /font/ ······················ 使用到的字体文件 ├─ /img/ ······················· 使用到的图片文件 ├─ /js/ ························ 自己写的JS脚步 ├─ /lib/ ······················· 从第三方下载回来的库【只用不改】 ├─ /favicon.ico ················ 站点图标 └─ /index.html ················· 入口文件
在head中引入必要的CSS文件,优先引入第三方的CSS,方便我们自己的样式覆盖
在body末尾引入必要的JS文件,优先引入第三方的JS文件,注意JS文件之间的依赖关系
比如Bootstrap.js 依赖jquery,那就应该先引入jquery.js 然后引用Bootstrap.js
除了公共级别的样式,其余样式全部由模块前缀
尽量使用直接子代选择器 少用间接子代选择器避免误杀
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" href="lib/bootstrap/bootstrap.css"> <link rel="stylesheet" href="index.css"> </head> <body> <script src="lib/jquery/jquery.js"></script> <script src="lib/bootstrap/bootstrap.js"></script> <script src="index.js"></script> </body> </html>
body{ font-family: "Helvetica Neue", Helvetica, Microsoft Yahei, Hiragino Sans GB, WenQuanYi Micro Hei, sans-serif; }
先划分好页面的大容器,然后具体看每一个容器的单独情况
<!-- 头部区域 --> <header></header> <!-- /头部区域 --> <!-- 广告轮播 --> <section></section> <!-- /广告轮播 --> <!-- 立即预约 --> <section></section> <!-- /立即预约 --> <!-- 产品介绍 --> <section></section> <!-- /产品介绍 --> <!-- 新闻资讯 --> <section></section> <!-- /新闻资讯 --> <!-- 合作伙伴 --> <section></section> <!-- /合作伙伴 --> <!-- 脚注区域 --> <footer></footer> <!-- /脚注区域 -->