资讯专栏INFORMATION COLUMN

搭建移动端布局框架:整合flex

icyfire / 2793人阅读

摘要:概述在移端的兼容并不是很好但是在移动端的支持却是很好而且布局对移动端布局来说简直就是福音但是没有经过整和处理用布局也算是艰难所以打算搭建一套基于的移动端布局工具来学习容器类容器工具类这是对和属性的封装将一个元素变成横向的容器将一个元素变成

0x001 概述
flex在移pc端的兼容并不是很好,但是在移动端的支持却是很好,而且flex布局对移动端布局来说简直就是福音.但是没有经过整和处理,用flex布局也算是艰难,所以打算搭建一套基于flex的移动端布局工具,来学习css,sass,flex.
0x002 容器类

容器工具类
这是对flexflex-direction属性的封装

row:将一个元素变成横向的flex容器

col:将一个元素变成纵向的flex容器

// 主轴居中,交轴居中,将宽度变为100%,主轴居中对齐,交轴居中对齐
.flex {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}
// 横向
.row {
  @extend .flex;
  flex-direction: row;
}
// 纵向
.col {
  @extend .flex;
  flex-direction: column;
  height: 100%;
}

示例代码结构(去除样式属性,保留结构属性,以下示例代码一样):
```
row
row
row
col
col
col

``` 效果: ![clipboard.png](/img/bVKslx)

内容对齐工具
这是对justify-content的封装

content-start:子元素main start对齐

content-end:子元素相对main end对齐

content-between:子元素相对两端无间距对齐

content-around:子元素相对两端同间距对齐

.content-start {
  justify-content: flex-start;
}

.content-end {
  justify-content: flex-end;
}

.content-between {
  justify-content: space-between;
}

.content-around {
  justify-content: space-around;
}

示例代码结构
```
//横向对齐
row
row
row
row
row
row
row
row
row
row
row
row
//纵向对齐
row
row
row
row
row
row
row
row
row
row
row
row
``` 效果: 横向对齐效果 ![clipboard.png](/img/bVKslS) 纵向对齐效果 ![clipboard.png](/img/bVKsmm)

子元素相对交轴对齐工具
这是对align-items的封装

cross-start:子元素相对交轴cross start 对齐

cross-end:子元素相对交轴cross end对齐

cross-stretch:子元素相对交轴拉伸对齐

代码
```
.cross-start {
   align-items: flex-start;
 }

.cross-end {
  align-items: flex-end;
}

.cross-stretch {
  align-items: stretch;
}
```
示例代码
```
cell-start
cell-start
cell-start
cell-end
cell-end
cell-end
cell-stretch
cell-stretch
cell-stretch
cell-start
cell-start
cell-start
cell-start
cell-end
cell-end
cell-end
cell-end
cell-stretch
cell-stretch
cell-stretch
cell-stretch
``` 效果 ![clipboard.png](/img/bVKspG)
0x003 子元素工具

比例工具
这是对flex-grow的封装

cell-1:比例1

cell-2:比例2

cell-3:比例3

cell-4:比例4

cell-5:比例5

cell-full:垫片,使子元素宽度占据100%,主要用于col的子元素

@for $i from 1 through 5 {
  .cell-#{$i} {
    flex-grow: $i;
    text-align: center;
  }
}
.cell-full{
  width: 100%;
}

示例代码
```
cell-1
cell-1
cell-1
cell-1
cell-5
cell-1
cell-1
cell-2
cell-3
cell-1
cell-1
cell-1
cell-1
cell-2
cell-3
col
cell-1
``` 效果图

2.子元素对齐工具

这是对`align-items`的封装
- `cell-start`:
- `cell-end`
- `cell-stretch`
代码:
```
.cell-start {
   align-items: flex-start;
 }

.cell-end {
  align-items: flex-end;
}

.cell-stretch {
  align-items: stretch;
}
```
示例代码
```
self-start
default
self-end
self-stretch
self-start
default
self-end
self-stretch
``` 效果

3.滚动

这是对`overflow`的封装
- `cell-scroll-x`
- `cell-scroll-y`
代码:
```
.cell-scroll-y {
  height: 100%;
  overflow-y: auto;
}

.cell-scroll-x {
  width: 100%;
  overflow-x: auto;
  white-space: nowrap;
}
```
示例代码
```
横向滚动横向滚动横向滚动横向滚动横向滚动横向滚动横向滚动横向滚动横向滚动横向滚动横向滚动横向滚动横向滚动
1
2
...
13
14
``` 效果

0x004 页面实战

登录页面
示例代码(省略样式,只保留结构):

效果:

个人中心
示例代码(省略样式,只保留结构):

十里桃花不如睡你

我的收藏
我的喜好
我的文章
关于

效果:

主页
示例代码

主页

文章标题

文章简介

....
....
....
....
主页
推荐
我的

效果:

文章详情
示例代码结构

返回
文章详情
评论

相忘于江湖

十里桃花不如睡你

2017-03-09

...

效果

0x005 源码

github地址

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/116586.html

相关文章

  • 搭建移动布局框架:重拾flex

    摘要:概述说起关于的文章。我觉得啊除了阮一峰老师,再也无人能出其右了,所以这里也只是聊做记录。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为,即项目的本来大小。 0x001 概述 说起关于flex的文章。我觉得啊除了阮一峰老师,再也无人能出其右了,所以这里也只是聊做记录。 0x002 基本概念 showImg(https://segmentfault.com/img/bVKrjG...

    894974231 评论0 收藏0
  • HTML-CSS

    摘要:但是,从字体上来说雪碧图制作,使用以及相关,图文。由于采用了编译,所以能够保证在浏览器不支持标准布局的情况下,回滚到旧版本的,保证移动设备中能呈现出一样的布局效果。我不想陷入和的纷争,但是有一件事是确定的极大的提升了移动端 一劳永逸的搞定 flex 布局 寻根溯源话布局 一切都始于这样一个问题:怎样通过 CSS 简单而优雅的实现水平、垂直同时居中。记得刚开始学习 CSS 的时候,看到 ...

    xiaokai 评论0 收藏0
  • HTML-CSS

    摘要:但是,从字体上来说雪碧图制作,使用以及相关,图文。由于采用了编译,所以能够保证在浏览器不支持标准布局的情况下,回滚到旧版本的,保证移动设备中能呈现出一样的布局效果。我不想陷入和的纷争,但是有一件事是确定的极大的提升了移动端 一劳永逸的搞定 flex 布局 寻根溯源话布局 一切都始于这样一个问题:怎样通过 CSS 简单而优雅的实现水平、垂直同时居中。记得刚开始学习 CSS 的时候,看到 ...

    CHENGKANG 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<