问题:
什么是响应式网站?--一个网站能够兼容多个终端
优势:更好的用户体验,较低的开发维护成本:
从用户的角度:
1.响应式网站适配自己手上的设备,免去频繁的上下左右拖拽屏幕,双击放个大的多余的操作
2.无论pc换是智能手机访问,只要一个网站就行了
从产品运营的角度---适配移动设备,一味着占有移动设备,带来了额外的商机
开发的角度:
1.开发一套代码,就有两个网站在线工作
2.只有维护一套代码
3.高逼格
设计师们:
愿意采用一套控件,界面标准去完成pc和移动的,意味的工作了减少了,有更多精力去完成更好的设计
缺点:兼容各种设备工作量大,效率低下
代码累赘,会出现隐藏无用的元素,加载时间长
一定程度上改变了网站原有的布局结构,会出现用户混淆的情况
设计思路:
1.css3中的media Query(媒体查询)是什么?
通过不同的媒介类型和条件定义样式表规则!
2.media query能获取哪些值?
设备的宽高--device-width,device-height;
渲染窗口的宽高width,height显示屏幕设备
3.语法:
@media 设备名 only(选取条件) not(选取条件) and(设备选取条件),设备二{sRules}
1.在link中使用@media:
max-width:渲染界面最大宽度
max-device-width:设备最大宽度
2.在样式表中内嵌@media
@media (min-device-width:1024px) and(max-width:989px),
screen and(max-device-width:480px), (max-device-width:480px) and(orentation:lanscape),(min-device-width:480px) and(max-device-width:1024px) and(orentation:portrait ) {srules}
,设置了电脑显示器分辨率(宽度)大于或等于1024px(并且最大可见宽度为989px);屏宽在480px及其以下手持设备;屏宽在480px以及横向(即480尺寸平行于地面)放置的手持设备;屏宽大于或等于480px小于1024px以及垂直放置设备的css样式。
通过Media Queries实现响应式布局设计
好了,我们明白了什么是Media Query,那我们一起来运用到响应式布局的设计项目中去。设计思路很简单,首先先定义在标准浏览器下的固定宽度(假如标准浏览器的分辨率为1024px,那么我们设置宽为980px),然后用Media Query来监测浏览器的尺寸变化,当浏览器的分辨率小于1024px的时候,则通过Media Query预设的样式表来将页面的宽度设置为百分比显示,这样子页面的结构元素就会根据浏览器的的尺寸来进行相对应的调整。同理,当浏览器的可视区域改变到某个值(假如为650px)的时候,页面的结构元素根据Media Query预设的层叠样式表来进行相对应的调整
当浏览器的可视区小于980px
@media screen and(max-width:980px){
#wrap{ width:90%; margin:0 auto;}
#content{ width:60%; padding:5%;}
#sidebar{ width:30%;}
}
当浏览器的可视区小于650px
@media screen and(max-width:650px){
#header{ height:auto;}
#searchchform{ position:absulueltop:5px; right:0;}
#content{ width:autol float:none; margin:20px 0;}
}
通过上面我们就可以监测浏览器的可视区域变化的时候我们的页面结构元素也会相对应的变化,当然你可以再多设置几个尺寸的监测层叠样式表,这样子就可以根据不同尺寸设备来进行响应式的布局。为了更好的显示效果,我们往往还要格式化一些CSS属性的初始值:
* 设置HTML5元素为块 */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
display: block;
}
/* 设置图片视频等自适应调整 */
img {
max-width: 100%;
height: auto;
width: auto\9; /* ie8 */
}
.video embed, .video object, .video iframe {
width: 100%;
height: auto;
}
最后要注意的是在页面的头部
之间加上下面这句∶meta viewport这个属性是在移动设备上设置原始大小显示和是否缩放的声明。
参数设置∶
width – viewport的宽度
height – viewport的高度
initial-scale – 初始的缩放比例
minimum-scale – 允许用户缩放到的最小比例
maximum-scale – 允许用户缩放到的最大比例
user-scalable – 用户是否可以手动缩放
比如一个移动终端屏幕显示最大宽度为480px,那么css代码如下:
[2]
@media only screen and(max-device-width:480px){…/*此处为支持此移动设备的css样式代码,需将其放置于pc终端css代码之后覆盖之*/}
如果是大型的网站或项目,我们讲为各类型的移动终端独立编写css样式文件,此时的使用方式如下:
/*small_screen480.css即为对480px大小移动终端书写的css文件*/
css文件被区分引用,接下来的工作就是我们非常熟识的弹性布局了,另外再注意俩点,一是图片,在移动设备上,要做一些特定适合的小图片来匹配,如果单纯使用压缩的图片会失真,影响用户体验;二是在头部加入如下代码,目的是声明在移动设备上设置原始大小显示和是否缩放
[2]
最后说下IE浏览器,因为他不支持media Queries的,使用时需要引用一个Media Query Javascript解决,如下:
[2]
以弹性为基础:
引入媒体查询:
响应式网站概念:是一种的方法,他是网站在任何设备,任何尺寸的屏幕上都可以轻松的浏览!完美适配!
fleible grid layout 弹性网格布局
flexble image 弹性图片
media queries 媒体查询