Flex移动端布局

目前使用flex布局典型的网站有天猫和网易新闻。

首先,利用flex的项目不需要对viewport进行缩放,直接:

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">


简单回顾一下flex的属性

一、设置在容器上的属性

1、flex-direction:属性决定主轴的方向(即项目的排列方向)。

2、flex-wrap:默认显示在一条轴线上,如果排不下如何换行。

3、flex-flow:flex-direction和flex-wrap的简写,默认为:row nowrap。

4、justify-cotent:在主轴上的对齐方式。

5、align-items:在交叉轴上的对齐方式。

6、align-content:定义了多条轴线的对齐方式,如果只有一条轴线,则不起作用。


二、设置容器里面单个项目的属性

1、order:定义项目的排序方式。

2、flex-grow:定义项目的放大比例,默认为0。

3、flex-shrink:定义项目的缩小比例,默认为1。

4、flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小

5、flex:flex-grow、flex-shrink、flex-basis的缩写。

6、align-self:允许单个项目有与其他项目不一样的对齐方式

具体的属性信息可以查看阮一峰写的flex布局教程(http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html)


注: place-content属性是 align-contentjustify-content属性的简写属性。

先来看一下天猫布局:


其整个页面都是flex布局,margin\padding\width\height等属性的值都是用px。

我挑选了天猫首页的某一块布局,写了一个demo(宽度写死为iphone8的尺寸375px),大致如下 :


模块分明,清爽灵活。


再来看一下网易新闻:


网易新闻移动端适配也是采用flex布局,和天猫不同的是width\height\padding\margin等属性值用的是rem。

其设计稿为750px,1rem为100px。

以iphone8为例:deviceWidth = 375,font-size = 375 / 7.5 = 50px,1rem为50px


兼容性处理:

安卓4.4以下的手机不支持flex布局。所以要做好兼容工作。

注意在写flex的时候加上:

  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;复制代码


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值