1、再说css3 flex

一旦一个容器赋予了display:flex属性,将会有以下特点:

  • 项目无法设置浮动。
  • 列表的样式会被清除。
  • 无法使用vertical-align设置垂直对齐方式。

目前互联网上关于flex流动布局的文章很少,搜索关于flex的文章,大部分还介绍的是旧的知识点,显然已经不符合当前的w3c标准了,要想了解flex的相关内容,可以参考http://qianduanblog.com/2549.html。并且,支持flex的浏览器也很少,只有谷歌浏览器完全支持,其他低版本的webkit不完全支持,火狐也不完全支持(不支持flex-wrap),ie10及以上部分支持。

flex布局非常适宜当前的移动设备和大屏幕浏览器网页开发非常的便捷,是未来网页开发布局设计的方向,是一个未来技术。flex布局能够编写代码小,各种宽度、高度、位置都由浏览器自身按照既定规则完成适配,跨平台无障碍阅读体验。

2、flex 样式类

  1. css3 flex 的部分属性在ie和火狐下表现不佳或支持不完善,其中ie9及以下完全不支持,ie10不支持flex-grow(即.flex-grow-0 .flex-grow-1类),火狐24不支持flex-wrap(即.flex-wrap类)。
  2. css3 flex 布局以主轴在水平方向、侧轴在垂直方向为准,行(主轴)为水平方向、列(侧轴)为垂直方向。当主轴在垂直方向、侧轴在水平方向时,行即为垂直方向,列即为水平方向。无论怎样,行都为主轴、列都为侧轴。
  3. 以下各个flex布局类命名均以主轴在水平方向为准,即主轴为行;并且大部分类名都是应用在父级flex容器上的,除了.flex-grow-0 .flex-grow-1
  4. flex容器:
    • 行布局:.flex-row
    • 行反布局:.flex-row-reverse
    • 列布局:.flex-col
    • 列反布局:.flex-col-reverse
    • 换行布局(默认是不支持换行的*):.flex-wrap
  5. flex容器单行水平方向项目排列方式
    • 开始方向排列:.flex-row-start
    • 居中方向排列:.flex-row-center
    • 结束方向排列:.flex-row-end
    • 两端方向排列,开始结束有余白:.flex-row-around
    • 两端方向排列,开始结束无余白:.flex-row-between
  6. flex容器多行垂直方向项目排列方式
    • 开始方向排列:.flex-rows-start
    • 居中方向排列:.flex-rows-center
    • 结束方向排列:.flex-rows-end
    • 两端方向排列,开始结束有余白:.flex-rows-around
    • 两端方向排列,开始结束无余白:.flex-rows-between
  7. flex容器单行垂直方向项目对齐方式
    • 开始对齐:.flex-col-start
    • 居中对齐:.flex-col-center
    • 结束对齐:.flex-col-end
    • 拉伸对齐:.flex-col-stretch
  8. flex项目垂直方向项目对齐方式(与.flex-col类似,只是其优先级更高)
    • 开始对齐:.flex-self-start
    • 居中对齐:.flex-self-center
    • 结束对齐:.flex-self-end
    • 拉伸对齐:.flex-self-stretch
  9. flex项目在剩余空白上分配占比
    • 占比为0:.flex-grow-0
    • 占比为1:.flex-grow-1

下面依次说说如何使用该样式类。

2.0、简要说明

flex样式类,在描述行和列的时候,是以主轴为水平、侧轴以垂直方向为例的(参考:http://qianduanblog.com/2549.html#1%E3%80%81%E6%B5%81%E5%8A%A8%E5%B8%83%E5%B1%80),此时行即为水平方向、列即为垂直方向;但如果主轴在垂直方向、侧轴在水平方向时,行即为垂直方向、列即为水平方向。因在实际情况中,前者使用的概率最大,所以采用以行描述主轴在水平方向、列描述侧轴在垂直方向,更为直观。

2.1、flex初始化

使用.flex样式类即可对容器进行flex初始化。如下图:

demo:http://demo.qianduanblog.com/2881/1.html

其HTML代码如:

1
2
3
1
2
3

2.2、主轴方向

  • .flex-row(默认):flex行布局,即主轴在水平方向、侧轴在垂直方向。
  • .flex-row-reverse:flex行反布局,与.flex-row类似,更改水平方向从右往左。
  • .flex-col:flex列布局,即主轴在垂直方向、侧轴在水平方向。
  • .flex-col-reverse:flex行反布局,与.flex-col类似,更改垂直方向从下往上。
  • .flex-wrap:换行布局,即主轴在水平方向时,主轴可以折行,类似于现在的文字换行;反之,主轴在垂直方向,主轴可以折列,类似于古代的文字换列,在使用多列布局时,需设置容器的高度。

如图:

demo:http://demo.qianduanblog.com/2881/2.html

主轴折行示例:

同理,折列也是相同情况,demo:http://demo.qianduanblog.com/2881/3.html

2.3、单行水平方向排列方式

  • .flex-start(默认):居左排列。
  • .flex-center:居中排列。
  • .flex-end:居右排列。
  • .flex-around:分散排列。
  • .flex-between:分开排列。

如图:

demo:http://demo.qianduanblog.com/2881/4.html

2.4、多行垂直方向排列方式

需设置容器的固定高度。

  • .flex-rows-start(默认):多行居顶对齐。
  • .flex-rows-center:多行居中对齐。
  • .flex-rows-end:多行居底对齐。
  • .flex-rows-around:多行分散对齐。
  • .flex-rows-between:多行分开对齐。

如图:

详细demo:http://demo.qianduanblog.com/2881/5.html

2.5、单行内对齐方式

  • .flex-col-start(默认):顶部对齐。
  • .flex-col-center:居中对齐。
  • .flex-col-end:居底对齐。
  • .flex-col-stretch:拉伸对齐。

如图:

详细demo:http://demo.qianduanblog.com/2881/6.html

2.6、单项目行内对齐方式

该样式作用于flex项目,与.flex-col-*相同,表示垂直方向的对齐方式,只是其只作用于单个flex项目,优先级比它高。详细:

  • .flex-self-start(默认):项目垂直方向居顶对齐。
  • .flex-self-center:项目垂直方向居中对齐。
  • .flex-self-end:项目垂直方向居中对齐。
  • .flex-self-stretch:项目垂直方向拉伸对齐。

如图:

详细demo:http://demo.qianduanblog.com/2881/7.html

2.7、剩余空间分配占比

该样式作用于flex项目。

  • .flex-grow-0(默认):剩余空间分配占比为0。
  • .flex-grow-1:剩余空间分配占比为1。

如图:

详细demo:http://demo.qianduanblog.com/2881/8.html

原文链接:http://qianduanblog.com/2881.html

css3 flex流动自适应响应式布局样式类的更多相关文章

  1. 关于css3媒体查询和响应式布局

    响应式设计 响应式设计可根据所显示的屏幕大小而改变, 它呈现的每个屏幕看起来并不相同.按照可用的屏幕属性,响应式设计提供了 UI 的最佳效果. 例如,如果网站布局上有一个占据 25% 的屏幕宽度的侧边 ...

  2. CSS3 Media Queries实现响应式布局

    概念我就不在这里写啦.大家可以看看以下网页: http://www.runoob.com/cssref/css3-pr-mediaquery.html http://www.w3cplus.com/c ...

  3. 响应式布局(CSS3弹性盒flex布局模型)

    传统的布局方式都是基于盒模型的 利用display.position.float来布局有一定局限性 比如说实现自适应垂直居中 随着响应式布局的流行,CSS3引入了更加灵活的弹性布局模型 flex弹性布 ...

  4. CSS3与页面布局学习笔记(四)——页面布局大全(负边距、双飞翼、多栏、弹性、流式、瀑布流、响应式布局)

    一.负边距与浮动布局 1.1.负边距 所谓的负边距就是margin取负值的情况,如margin:-100px,margin:-100%.当一个元素与另一个元素margin取负值时将拉近距离.常见的功能 ...

  5. html5+css3+jquery完成响应式布局

    响应式布局,流体布局,自适应布局,静态布局等等,这是移动设备的飞速发展,前端人员不得不跟上潮流的一个方向.实际上各种设备尺寸,分辨率大都不同,真的适应各种设备依旧是不现实的,首先是浏览器差异化,让我们 ...

  6. html5/css3响应式布局介绍及设计流程

    html5/css3响应式布局介绍 html5/css3响应式布局介绍及设计流程,利用css3的media query媒体查询功能.移动终端一般都是对css3支持比较好的高级浏览器不需要考虑响应式布局 ...

  7. CSS3之响应式布局

    在没有C3的时候,响应式布局是通过js来实现的. 开始研究响应式web设计,CSS3 Media Queries是入门. Media Queries,其作用就是允许添加表达式用以确定媒体的环境情况,以 ...

  8. 网站响应式布局/网站自适应问题+rem、em、px、pt及网站字体大小设配

    Bootstrap 网格系统: Bootstrap CSS: Bootstrap 组件及插件: 一.什么是响应式布局?       响应式布局是Ethan Marcotte在2010年5月份提出的一个 ...

  9. flex布局 响应式布局

    移动端页面开发流程   移动端页面布局 一.移动端app分类 1.Native App原生app手机应用程序 使用原生的语言开发的手机应用,Android系统用的是java,ios系统用的是objec ...

随机推荐

  1. Sum Root to Leaf Numbers

    int sumNumbers(TreeNode *root) { ); } int dfs(TreeNode *root, int sum) { ; if (root->left == null ...

  2. HDU 2895 编辑距离

    #include<stdio.h> #include<iostream> #include<string.h> #include<algorithm> ...

  3. FOJ 2161 Jason and Number

    暴力模拟找规律: 552287 2014-04-23 21:08:48 Accepted 2161 Visual C++ 0 ms 192KB 347B Watermelon #include< ...

  4. 硬盘安装ubuntu注意事项

    按照教程 http://teliute.org/linux/Ubsetup/jichu3/jichu3.html 安装64位ubuntu的时候,因为64位版本的iso安装包里没有vmlinuz文件,而 ...

  5. 完整java开发中JDBC连接数据库代码和步骤 JDBC连接数据库

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...

  6. Rehashing

    The size of the hash table is not determinate at the very beginning. If the total size of keys is to ...

  7. 【leetcode】String to Integer (atoi)

    String to Integer (atoi) Implement atoi to convert a string to an integer. Hint: Carefully consider ...

  8. bootbox显示中文的按钮

    $("selector").on('click',function(){ bootbox.confirm({ title : "请确认", buttons: { ...

  9. MongoDB副本集学习(一):概述和环境搭建

    MongoDB副本集概述 以下图片摘自MongoDB官方文档:http://docs.mongodb.org/manual/core/replication-introduction/ Primary ...

  10. Sass 中的 @ 规则

    一. @import Sass 扩展了 CSS 的 @import 规则,让它能够引入 SCSS 和 Sass 文件. 所有引入的 SCSS 和 Sass 文件都会被合并并输出一个单一的 CSS 文件 ...