响应式布局的探讨

响应式布局的两种方式

  • 基于百分比的布局 例:Bootstrap
  • 基于rem的布局 例:淘宝触屏版

    这两种布局都需要依赖于CSS3的media query来设置布局断点(或者通过js监听窗口大小来调整)

    从而可以根据屏幕大小来调整 百分比布局中盒子的宽度 或 rem布局中HTML的字体大小

知识点:

实现rem布局的方式和效果
实现平均分布对齐的方式(flex与justify)
平均分布对齐的应用

百分比布局

基于百分比的布局这里就演示了,Bootstrap 已经应用很广泛,相信基本都已经熟知他的原理,如果还有不明白的可以去Bootstrap中文网去看官方文档。基本原理是通过media query来调整容器的宽度值来控制内部column的百分比和显示隐藏

基于rem布局的方式来实现响应式

首先看一下典型例子 淘宝触屏版



body中的字体大小



应用的技术要点:

  1. 使用rem来做响应式布局
  2. 使用flex来使nav导航自适应
  3. 使用text-align:justify来使项目列表水平平均分布对齐

rem响应式

从图中可以看出 HTML的font-size是根据屏幕大小的变化而变化的,而内容的大小也是等比缩放
原理:
`px` 固定值
`em` 是相对于其父元素来设置字体大小
`rem` 值相对于根HTML中字体的大小
如果页面上的元素大小都是相对于根的大小,那么就会随着根元素大小变化而变化 (道理就是这么简单)

平均分布对齐方式在充值界面的应用

flex

.nav_list {
box-sizing:border-box; overflow:hidden;
margin:0 .1rem;border:1px solid #5e646e; border-radius:.04rem;
display:flex; flex-wrap:wrap;
}
.nav-item { position:relative; max-width:100%; flex:1; }

text-align:justify

/*----justify 布局*/
.itemlist ul { text-align:justify; font-size:0; letter-spacing:-4px;}
.itemlist ul:after {
display: inline-block; width:100%; height:0; content:'';vertical-align: top;overflow:hidden;
}

最终的成果 DEMO

使用js来监听窗口大小来调整根字体的值,从而控制rem的大小

var orientationChangeEv = function(){
var winW = window.innerWidth, w, fontSize;
//保证window内部的宽度在320-640之间,最小为320,最大为640
w = (winW <= 320) ? 320 : ((winW >= 640) ? 640 : winW);
//根据窗口的大调整字体的大小
fontSize = 100 * (w / 320);
document.documentElement.style.fontSize = fontSize + 'px';
};
//绑定window的resize事件
window.addEventListener('resize',orientationChangeEv);
//初始时,执行一次
setTimeout(orientationChangeEv, 0);

平均分布对齐 DEMO



flex可以轻松的实现平均分布对齐

text-aling:justify; 需要一定的条件:必须有换行行为才能触发平均分布对齐

在项目列表有多行显示时,最后一行无法换行会造成不能平均分布

解决的方式是 父容器使用伪类:after的方式添加一个内联元素,宽度100%,来触发换行

ul:after { display: inline-block; width:100%; height:0; content:'';vertical-align: top;overflow:hidden;}

图例:

仿淘宝充值响应式界面DEMO

See the Pen jEXmpj by LT (@togglelt) on CodePen.

扩展阅读

大漠 Text-align:Justify和RWD

张鑫旭 display:inline-block/text-align:justify下列表的两端对齐布局

移动端H5页面之iphone6的适配

移动Web之响应式布局的探讨的更多相关文章

  1. web前端响应式布局,自适应全部分辨率

    写phpd的我. 近期公司要弄个app关键是没有web开发,而我有比較闲,那就扛枪上阵吧. 响应式布局,web端的?php我一直都是用tp框架,对于web首先想到的是bootstrap框架.仅仅是简单 ...

  2. WEB前端响应式布局之BootStarp使用

    1.Bootstrap简介:1. 概念: 一个前端开发的框架,Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JavaScript 的 ...

  3. 移动web之响应式布局

    1.响应式布局的概念 响应式布局是Ethan Marcotte在2010年5月份提出的一个概念.简而言之.就是一个站点可以兼容多个终端--而不是为每一个终端做一个特定的版本号. 这个概念是为解决移动互 ...

  4. web前端----响应式布局

    响应式开发 为什么要进行响应式开发? 随着移动设备的流行,网页设计必须要考虑到移动端的设计.同一个网站为了兼容PC端和移动端显示,就需要进行响应式开发. 什么是响应式? 利用媒体查询,让同一个网站兼容 ...

  5. 探讨兼容IE低版本的PC端响应式布局

    http://www.jiangweishan.com/article/lowIeResposive.html 响应式布局,oh my god!!有点醉了,感觉是老生常谈的话题了.虽然已经谈过很多了, ...

  6. Responsive Web CSS – 在线响应式布局创建器

    如果您已经使用了 CSS 或前端框架,创建响应式布局应该不难. 然而,如果你刚涉足这类布局,Responsive Web CSS 可以帮助你快速上手. 这是一个基于 Web 的工具,使任何人都可以通过 ...

  7. 从零开始学 Web 之 移动Web(六)响应式布局

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  8. “教你如何玩转Web响应式布局” 的更多相关文章

    “教你如何玩转Web响应式布局” 的更多相关文章 网址:http://www.360doc.com/relevant/641896074_more.shtml

  9. 【css】25个漂亮的响应式布局的web设计【转】

    响应的web设计的做法是提高用户的浏览质量,并在不同设备上能够完美的浏览使用,就像大前端推出的D7主题.看看下面美丽的响应的网站布局,通过本文你会在以后的设计中找到响应的web设计的灵感. 1.Mar ...

随机推荐

  1. php在5.5.0默认提供了Zend OPcache

    eaccelerator无法兼容php5.5.0,好在php在5.5.0默认提供了Zend OPcache,所以一直习惯eaccelerator的朋友如果要升级到php5.5.0的话,可能要暂时和ea ...

  2. C#基础---Queue(队列)的应用

       Queue队列,特性先进先出. 在一些项目中我们会遇到对一些数据的Check,如果数据不符合条件将会把不通过的信息返回到界面.但是对于有的数据可能会Check很多条件,如果一个数据一旦很多条件不 ...

  3. 免费上google的方法

    访问http://www.ishadowsocks.net/这上面有详细介绍

  4. [No00009E]几种常见的命名规则

    变量命名规则 必须遵循的命名规则 1.    变量名首字母必须为字母(a-z A-Z),下划线(_),或者美元符号($)开始php编程中所有变量必须以$开始. 2.    变量名只能是字母(a-z A ...

  5. docker学习(4) 一些常用操作

    继续docker的学习之旅,今天练习一些常用的命令: 一.镜像相关 1.1 列出本机所有镜像 docker images 后面的操作,都以ubuntu做为练习的目标. 另外:如果某些镜像文件不想要了, ...

  6. [LeetCode] Sort List 链表排序

    Sort a linked list in O(n log n) time using constant space complexity. 常见排序方法有很多,插入排序,选择排序,堆排序,快速排序, ...

  7. [转载]Web前端开发工程师编程能力飞升之路

    [背景] 如果你是刚进入web前端研发领域,想试试这潭水有多深,看这篇文章吧:如果你是做了两三年web产品前端研发,迷茫找不着提高之路,看这篇文章吧:如果你是四五年的前端开发高手,没有难题能难得住你的 ...

  8. Redis初识、设计思想与一些学习资源推荐

    一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...

  9. 常见web攻击以及防御

    xss攻击: 跨站脚本攻击,攻击者在网页中嵌入恶意代码,当用户打开网页,脚本程序便开始在客户端的浏览器上执行,以盗取客户端cookie,用户名密码,下载执行病毒木马程序,甚至是获取客户端admin权限 ...

  10. Codeforces Round #382(div 2)

    A.= = B. 题意:给出n个数和n1和n2,从n个数中分别选出n1,n2个数来,得到n1个数和n2个数的平均值,求这两个平均值的最大和 分析:排个序从后面抽,注意先从末尾抽个数小的,再抽个数大的 ...