到底什么是响应式布局

做移动端的前端,接到的需求中肯定离不开响应式布局,那么到底什么是响应式布局,其实现的原理在哪,我个人的看法如下:

1.目的:在项目中你会遇到不同的终端,由于终端分辨率不同,所以你要想让用户体验更好,就必要让你的页面能够适配多个终端

2.由于响应式布局多是针对移动端,所以首先要在<head>标签中添加下面这行代码:

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0" />

这将设置屏幕按1:1的尺寸显示,在 iPhone 和其他智能手机的浏览器提供网站全视图浏览,并禁止用户缩放页面

3.宽度百分比,也就是所谓的流式布局,用法很简单,但缺点是显示出来的一些页面元素宽度被拉的很长,但是高度还是和原来一样,所以看起来非常的不协调

4.媒体查询,即针对不同的屏幕尺寸设置不同的样式,它告诉浏览器页面如何呈现,假如一个终端的分辨率小于980px,那么可以这样写:

@media only screen and (max-width:980px){
     #head { … }
     #content { … }
     #footer { … }
}

或者

<link rel="stylesheet" href="style.css" media="only screen and (max-width:980px)"/>

如果兼容的终端类型多了,就要多写几个@media或者引入多个<link/>标签

5.rem,通过根元素进行适配的(只参照<html>中的font-size,和<body>没有任何关系),这主要是针对响应式字体,可以写成:

@media only screen and (min-width:321px) and (max-width:375px){html{font-size:11px}}
@media only screen and (min-width:376px) and (max-width:414px){html{font-size:12px}}
@media only screen and (min-width:415px) and (max-width:639px){html{font-size:15px}}
@media only screen and (min-width:640px) and (max-width:719px){html{font-size:20px}}
@media only screen and (min-width:720px) and (max-width:749px){html{font-size:22.5px}}
@media only screen and (min-width:750px) and (max-width:799px){html{font-size:23.5px}}
@media only screen and (min-width:800px){html{font-size:25px}}

注意:上面是先统计自己网站有哪些主流的屏幕设备,然后去针对那些设备去做media query设置

6.完全适配,如果要所有设备分辨率都能兼容适配,可以通过JS去动态计算根元素的font-size,代码如下:

(function (doc, win) {
    var docEl = doc.documentElement,
    resizeEvt = ‘orientationchange‘ in window ? ‘orientationchange‘ : ‘resize‘,
    recalc = function () {
        var clientWidth = docEl.clientWidth;
        if (!clientWidth) return;
        docEl.style.fontSize = 100 * (clientWidth / 750) + ‘px‘;
        console.log($("html").css("font-size"));
    };
    if (!doc.addEventListener) return;
    win.addEventListener(resizeEvt, recalc, false);
    doc.addEventListener(‘DOMContentLoaded‘, recalc, false);
})(document, window);

注意:我所在公司的UI给的是750宽度的设计图,所以在该屏幕尺寸下的根元素的font-size是100px,然后直接将设计图中具体部位的尺寸大小除以100就可以得到对应的rem值,即完成了从px到rem的换算;

如果现在的屏幕尺寸是375(iphone 6),是750的一半,也就是说,设计图里指定宽度为200px(对应的width值为2rem)的地方,现在放在iphone 6上就显示为100px,但对应的width值还是2rem,所以只需要给该元素添加width:2rem,就实现了宽度的全适配

7.背景图片,具体请参考background-size这个新属性

时间: 2024-12-28 01:20:35

到底什么是响应式布局的相关文章

css3媒体查询实现网站响应式布局

响应式建筑设计.响应式家具设计.响应式办公设计,这些词可能是已有的专业名词,也可能是我自己想出来的一些名词.因为在生活中,我们常常会见到很多让人惊叹的设计,为什么同一套东西经过不同的方式变化之后会给人不同的使用感受和体验呢?这样既节约制造成本,又节省空间,还能体验创意性的生活. 先来给大家欣赏几张图大黄蜂: 沙发床: 没错!大黄蜂为应对紧急战斗而瞬间由汽车变为战斗机,沙发床.沙发座椅是我们见过再平常不过的家具了.我们总是惊叹外国人为什么有这么丰富的想象力和神奇的创造力.而是什么驱动他们去想象进而

响应式布局-Rem的用法

响应式布局-Rem的用法 前言: 文章较为系统地介绍了rem这个新的文字大小单位,绝对干货,绝对好文.转载时略有改动. 先来看看一些基本理念,比如: 响应式网页不仅仅是响应不同类型的设备,而且需要响应不同的用户需求.响应式的初衷是为了让信息更好的传递交流,让所有人无障碍的获取信息,同时这也是 Web 的初衷. 同样的,响应式的设计应该秉承「内容优先,移动优先」的设计原则,那么我们知道网页中的内容主要是由文字图片等元素组成的,那么文字该如何响应式呢? 当我们每天面对缤纷的互联网世界的时候,文字不仅

响应式布局和自适应布局的不同

学了前端一段时间了,发现大家都搅浑了自适应布局和响应式布局的差别.现在我来和大家说下它们的不同: 自适应的体验   http://m.ctrip.com/html5/响应式的体验   http://segmentfault.com/ 整理了自己查阅的知识点,给各位一些提示. 起初,网页设计者都会涉及固定宽度的页面,最开始的电脑显示器分辨率种类不多,因为当时本来电脑就少,即使有变化也是800,850,870,880,比如开源中国的网页就是固定宽度为998来定制的,至于为啥是998,我也不知道...

响应式布局详细介绍

一.响应式布局 定宽布局的局限:屏幕越来越宽,而定宽的宽度是固定的,看定宽的网页不美观 屏幕也在一直往小变,定宽也不合适,看不到完整的网页内容 在这种情况之下,就出现了一种自适应布局,分别是早起的流动式布局(根据浮动,基本淘汰)和百分比宽度布局(还有一些应用). 百分比布局的局限:不够完美,没法得到一个很好的显示效果. 屏幕太大,撑满整个屏幕,不好,屏幕太小,画面太过拘谨也不好. 屏幕尺寸过于碎片化,我们到底要设计什么样的网页才能满足所有人呢?  可以采取一个网站有多个尺寸的适配,两套设计方案,

响应式布局和移动端开发

响应式布局 l 响应式布局是Ethan Marcotte在2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容 多个终端,而不是为每个终端做一个特定的版本.这个概念是为解决移动互联网浏览而诞生的. l 响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验,而且随着目前大屏幕移 动设备的普及,越来越多的设计师采用这个技术. l 一个典型的响应式布局网站:http://www.16ketang.com/ l 试着逐渐缩小该页面的窗口,看看网页有什么变化 l 由于响应式布局要针对

响应式布局与自适应式布局有什么不同

很多人经常会对响应式布局和自适应式布局产生混淆,今天将为大家介绍这两者到底表示的是什么以及它们之间的区别.具有一定的参考作用,希望对大家有所帮助. 一:什么是响应式布局和自适应式布局 1.什么是响应式布局 响应式布局就是实现不同屏幕分辨率的终端上浏览网页的不同展示方式.通过响应式设计能使网站在手机和平板电脑上有更好的浏览阅读体验.换句话说就是一个网站能够兼容多个终端,而不是为了每一个终端做一个特定的版本. 2.什么是自适应式布局: 自适应布局就是指能忘了使网页自适应的显示在不同大小终端设备上的新

CSS之响应式布局

响应式布局 外部link的max.css #left { width: 50%; height: 100px; background-color: #FF6600; float: left; } #right { width: 50%; height: 100px; background-color: #3565ff; float: left; } 外部link的min.css #left { width: 100%; height: 100px; background-color: #FF66

响应式布局

响应式布局是Ethan Marcotte在2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端--而不是为每个终端做一个特定的版本.这个概念是为解决移动互联网浏览而诞生的. 响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验,而且随着目前大屏幕移动设备的普及,用"大势所趋"来形容也不为过.随着越来越多的设计师采用这个技术,我们不仅看到很多的创新,还看到了一些成形的模式. 在可视区域的宽度小于 600px 的时候被应用. @media screen and

在等高响应式布局理的一些问题

①   高度调整公式会产生百分比,浏览器是会直接取整,因此可能会产生-2到2px的误差: 解决方法:调整后记录每行误差值gap,然后循环把gap的值分给同行每一张图片,这样前2张图片可能会有±1px的图片宽度变化,但是用户基本觉察不了图片的轻微拉伸变化. ②   等高响应式布局里用户图片数可能过少,会有图片只有1-3张占不满一行的情况,该怎样显示布局: 解决方法:判断只有1行图片的时候不作布局调整,少于1行则默认显示等高变化后的图片即可(即只调整一次,不需要为剩余值再自适应). ③    每行调