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. hiho一下 第九十五周 数论四·扩展欧几里德

    题目 : 数论四·扩展欧几里德 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho周末在公园溜达.公园有一堆围成环形的石板,小Hi和小Ho分别站在不同的石板上 ...

  2. python4delphi Python could not be properly initialized. We must quit.

    要用32位的DLL,不要用64位的dll Unable to load Python 2.7 dll with Delphi 2010 #6  Closed GoogleCodeExporter op ...

  3. Linux system V

    Sysvinit 的小结 Sysvinit 的优点是概念简单.Service 开发人员只需要编写启动和停止脚本,概念非常清楚:将 service 添加/删除到某个 runlevel 时,只需要执行一些 ...

  4. 利用nginx泛域名解析配置二级域名和多域名

    利用nginx泛域名解析配置二级域名和多域名 网站的目录结构为 html ├── bbs └── www html为nginx的安装目录下默认的存放源代码的路径. bbs为论坛程序源代码路径 www为 ...

  5. ASP.NET 画图与图像处理-如何直接输出到页面

    有时候我们生成的图片并不需要保存到磁盘中,而是直接输出到页面,比如验证码.实时报表等,如何做呢?请参考如下:     protected void Page_Load(object sender, E ...

  6. CodeForces - 405A

    Gravity Flip Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Submit ...

  7. 案例(JQuery的ajax无刷新评论)

    CommentsTest.html代码: <head> <meta http-equiv="Content-Type" content="text/ht ...

  8. Xamarin.Android开发实践(六)

    Xamarin.Android通知详解 一.发送通知的机制 在日常的app应用中经常需要使用通知,因为服务.广播后台活动如果有事件需要通知用户,则需要通过通知栏显示,而在Xamarin.Android ...

  9. FFmpeg源代码结构图

    转自:http://blog.csdn.net/leixiaohua1020/article/details/44220151 FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码 ...

  10. C/C++中extern关键字详解

    转自:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html 1 基本解释:extern可以置于变量或者函数前,以标示变 ...