响应式布局的探讨

响应式布局的两种方式

  • 基于百分比的布局 例: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. IIS 启用CORS ,IISExpress 通过IP 访问

      在IIS 10中启用CORS: <system.webServer> <handlers> <remove name="OPTIONSVerbHandler ...

  2. sql select 1-10的数字

    SELECT V FROM (   VALUES (1), (2), (3), (4), (5),          (6), (7), (8), (9), (10) ) [1 to 10](V)

  3. CodeAtlas For Sublime Text

    CodeAtlas is a plugin of SublimeText, which allows one to explore the call graph conveniently. The p ...

  4. word-break|overflow-wrap|word-wrap——CSS英文断句浅析

    ---恢复内容开始--- word-break|overflow-wrap|word-wrap--CSS英文断句浅析 一 问题引入 今天在再次学习 overflow 属性的时候,查看效果时,看到如下结 ...

  5. [LeetCode] Arithmetic Slices 算数切片

    A sequence of number is called arithmetic if it consists of at least three elements and if the diffe ...

  6. [LeetCode] Patching Array 补丁数组

    Given a sorted positive integer array nums and an integer n, add/patch elements to the array such th ...

  7. 信息中心网络 ,Information-centric networking, ICN

  8. What's Security

    研究安全应该时常问自己这个问题,什么是安全,什么是安全,什么是安全,安全的本质是什么,只有理解了安全的本质,才能成功的设计一个安全方案. 现在的感觉是没有绝对的安全,所谓的'安全'其实都只不过是增加攻 ...

  9. How to Disable Strict SQL Mode in MySQL 5.7

    If your app was written for older versions of MySQL and is not compatible with strict SQL mode in My ...

  10. java学习笔记之线程2wait和notifyAll

    2.乐观锁和悲观锁 悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到 ...