【前端】移动端Web开发学习笔记【2】 & flex布局
- 上一篇:移动端Web开发学习笔记【1】
meta标签
width设置的是layout viewport 的宽度initial-scale=1.0自带width=device-width- 最佳实践:
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
Flex弹性盒模型
来源:慕课网
源HTML文件(备份下载):web_flex.html.zip

Flexbox兼容性问题
- iOS、Android4.4及以上,可以使用最新的flex布局
- Android4.4以下,只能使用旧版的flexbox布局
新版flex布局 和 旧版flexbox布局 对比:
| 新flex布局 | 旧flexbox布局 |
|---|---|
| display: -webkit-flex; | display: -webkit-flex-box; |
| -webkit-flex: 1; | -webkit-flex-box: 1; |
| justify-content: center; | box-pack: center; |
| align-items: center; | box-align: center; |
响应式设计
媒体查询:
媒体类型:
- screen (屏幕) (常用)
- print (打印机)
- handheld (手持设备)
- all (通用) (常用)
常用的媒体查询参数:
- width, height (viewport宽高)
- divice-width, device-height (设备的宽高)
- orientation: 检查设备处于landscape还是portrait
媒体查询示例:
@media screen and (max-width:1024px) {
/* ... */
}
设计点1:百分比布局
使用媒体查询来适应不同的固定宽度,只会从一组css切换到另一组css, 没有平滑渐变。当没有命中媒体查询时,变现就变得不可控(滚动,换行)。
所以需要百分比布局。
设计点2:弹性图片
类似第一点,图片也使用百分比。
img {
max-width: 100%;
height: auto;
}
设计点3:重新布局,显示与隐藏
当页面宽度过小时,就需要做出一些处理:
- 同比例缩减元素尺寸
- 调整页面元素布局
- 隐藏冗余的元素
- 经常需要切换位置的元素使用绝对定位,可以提高性能。
总结:
缺点:
- 根据响应式设计的理念,一个页面包含不同设备的样式和图片。这样就造成了冗余。性能也不是最优。
优点:
- 减少重复开发。
移动Web的特别样式处理
高清图片
在retina屏幕上渲染图片,为了避免图片产生模糊,图片的宽高应该用物理像素单位渲染。
即100*100的图片,应该使用100dp*100dp.
例子:
- width: (w_value/dpr)px;
- height: (h_value/dpr)px;
1像素边框
在retina屏幕上渲染图片,1px使用2dp或者3dp渲染。
解决方法:
- 方法一:
border: 0.5px; /* 只有iOS8可以用 */ - 方法二:scaleY(0.5):

相对单位rem
- em: 相对于父节点的font-size (em在多层嵌套下,非常难以维护)
- rem: 相对于html的font-size
rem的基值怎样设置:
rem = screen.width / 10
或者 rem = screen.width / 20

不使用rem的情况:font-size
一般来讲,font-size是不应该使用rem等相对单位的。应为字体应该首先保证阅读的实用性,其次才是排版布局。
多行文本溢出

【前端】移动端Web开发学习笔记【2】 & flex布局的更多相关文章
- 【前端】移动端Web开发学习笔记【1】
下一篇:移动端Web开发学习笔记[2] Part 1: 两篇重要的博客 有两篇翻译过来的博客值得一看: 两个viewport的故事(第一部分) 两个viewport的故事(第二部分) 这两篇博客探讨了 ...
- ASP.NET Core Web开发学习笔记-1介绍篇
ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...
- 无线端web开发学习总结
无线web开发之前要做一些准备工作:一.必需的reset样式库1.其中的重点是盒模型box-sizing:由原来pc端的content-box改为border-box. *, *:before, *: ...
- 【web开发学习笔记】Structs2 Result学习笔记(三)带參数的结果集
Result学习笔记(三)带參数的结果集 第一部分:代码 //前端 <head> <meta http-equiv="Content-Type" content= ...
- PHP和MySQL Web开发学习笔记介绍
前言 从2016年2月1日开始,之后的几个月左右的时间里,我会写一个系列的PHP和MySQL Web开发的学习笔记.我之前一直从事Java语言的开发工作,最近这段时间非常想学习一门语言,就选择了PHP ...
- 【web开发学习笔记】Structs2 Result学习笔记(二)动态结果集
Result学习笔记(二) - 动态结果集 动态结果 一定不要忘了为动态结果的保存值设置set get方法 第一部分:代码 //前端 <% String context = reques ...
- 【web开发学习笔记】Structs2 Result学习笔记(一)简介
Structs2 Result学习笔记(一)简介 问题一 <struts> <constant name="struts.devMode" value=" ...
- 【web开发学习笔记】Structs2 Action学习笔记(两)
action学习笔记2-大约action method讨论 Action运行的时候并不一定要运行execute方法,能够在配置文件里配置Action的时候用method=来指定运行哪个方法 也能够在u ...
- Django Web开发学习笔记(1)
一.Python的标准类型 (1)bool型 >>> bool("") False >>> bool(None) False >>& ...
随机推荐
- JSON语法五大要素图文介绍
原文:http://www.jb51.net/article/32398.htm JSON语法是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成,下面就进行学习研究,希望本文能教会 ...
- wdcp安装
下载安装(ssh登录服务器,执行如下操作即可,需要用到root用户权限来安装)v3版本已经发布,更多可看论坛 wdCP v3版本讨论区更多安装请看 http://www.wdlinux.cn/bbs/ ...
- [PCL]点云渐进形态学滤波
PCL支持点云的形态学滤波,四种操作:侵蚀.膨胀.开(先侵蚀后膨胀).闭(先膨胀后侵蚀) 在#include <pcl/filters/morphological_filter.h>中定义 ...
- 点餐系统Sprint2总结
Sprint1结束后休息了两天,就开始准备Sprint2.一开始就知道数据库的连接对我们来说都是大难题. 虽然使用sqlite3,与android连接起来比较容易,但还是不容忽视.为期10天,和Spr ...
- Leetcode: Bomb Enemy
Given a 2D grid, each cell is either a wall 'W', an enemy 'E' or empty '0' (the number zero), return ...
- 漫谈java重载与重写
重载(Overloading):为了让方法名相同而形参不同的构造方法同时存在,让类以统一的方式处理不同类型数据的一种手段 重写(Overriding):导出类对继承自基类的方法做出一定的修改,又称方法 ...
- sklearn 增量学习 数据量大
问题 实际处理和解决机器学习问题过程中,我们会遇到一些"大数据"问题,比如有上百万条数据,上千上万维特征,此时数据存储已经达到10G这种级别.这种情况下,如果还是直接使用传统的方式 ...
- Bug修正
名称:nice! 项目名称:约跑app 组长:李权 成员:韩媛媛 刘芳芳 宫丽君 于淼 Bug修正: 1.我看到的现象:退出当前的账号后,按返回键可以再次进入登录界面. 期待的现象:能够安全登陆和退出 ...
- [osx] 设置crontab
比较坑爹,直接使用 crontab -e 设置是没有效果的,只能这样设置 env EDITOR=vi crontab -e Have fun with Max OSX
- eclipse中搭建svn开发管理环境
1.准备好资源 subversive,若是离线安装,已为大家准备好:http://pan.baidu.com/s/1hrbXH9y(本人喜欢离线安装,在线安装就不在此说了,其实只要一种方法简单的方法能 ...