用css3弹性盒子模型实现九宫格布局

html结构:

	<div class="box">
		<div class="top">
			<div class="left">左上</div>
			<div class="center">上</div>
			<div class="right">右上</div>
		</div>
		<div class="middle">
			<div class="left">左</div>
			<div class="center">中</div>
			<div class="right">右</div>
		</div>
		<div class="bottom">
			<div class="left">左下</div>
			<div class="center">下</div>
			<div class="right">右下</div>
		</div>
	</div>

css样式:

.box {
  display: -webkit-box;/* 旧版,声明弹性盒子 */
  -webkit-box-orient: vertical;/* 旧版,主轴方向 */
  -webkit-box-direction: normal; /* 旧版,反向,正序为normal */
  -webkit-box-pack: justify; /* 旧版,主轴的对其方式,两端靠齐 */
  -webkit-box-align: center; /* 旧版,交叉轴的对其方式,收缩居中 */
  display: flex; /* 新版,声明弹性盒子 */
  flex-direction: column; /* 新版,垂直反向,结合了旧版的-webkit-box-orient和-webkit-box-direction */
  flex-wrap: nowrap; /* 新版,父元素主轴尺寸不够的时候子元素换行,旧版没有找到对应的属性 */
  justify-content: space-between; /* 新版,主轴的对其方式,两端靠齐,与旧版-webkit-box-pack对应 */
  align-items: center; /* 新版,交叉轴的对其方式,收缩居中,与旧版-webkit-box-align对应 */
}
.top,.middle,.bottom {
  width: 100%;
  display: -webkit-box;/* 旧版,声明弹性盒子 */
  -webkit-box-orient: horizontal;/* 旧版,主轴方向 */
  -webkit-box-direction: normal; /* 旧版,反向,正序为normal */
  -webkit-box-pack: justify; /* 旧版,主轴的对其方式,两端靠齐 */
  -webkit-box-align: center; /* 旧版,交叉轴的对其方式,收缩居中 */
  display: flex; /* 新版,声明弹性盒子 */
  flex-direction: row; /* 新版,垂直反向,结合了旧版的-webkit-box-orient和-webkit-box-direction */
  flex-wrap: nowrap; /* 新版,父元素主轴尺寸不够的时候子元素换行,旧版没有找到对应的属性 */
  justify-content: space-between; /* 新版,主轴的对其方式,两端靠齐,与旧版-webkit-box-pack对应 */
  align-items: center; /* 新版,交叉轴的对其方式,收缩居中,与旧版-webkit-box-align对应 */
}
.top,.middle,.bottom,.left,.center,.right {
  -webkit-box-flex: 0;
  flex-basis: auto;
  flex-grow: 0;
  flex-shrink: 0;
  flex: 0 0 auto;
}
.top,.left {
  -webkit-box-ordinal-group: 1;
  order: 1;
}
.middle,.center {
  -webkit-box-ordinal-group: 2;
  order: 2;
}
.bottom,.right {
  -webkit-box-ordinal-group: 3;
  order: 3;
}

简略效果图:

时间: 2024-11-08 00:43:14

用css3弹性盒子模型实现九宫格布局的相关文章

css3弹性盒子模型之box-flex

css3弹性盒子模型之box-flex 浏览器支持 目前没有浏览器支持 box-flex 属性. Firefox 支持替代的 -moz-box-flex 属性. Safari.Opera 以及 Chrome 支持替代的 -webkit-box-flex 属 box-flex是css3新添加的盒子模型属性),它的出现打破了我们经常使用的浮动布局,实现垂直等高.水平均分.按比例划分.但是它有一定的局限性,在firefox.chrome这浏览器下需要使用它们的私有属性来定义:firefox(-moz)

css3弹性盒子模型之box-flex(修正版一)

http://www.rainleaves.com/html/1095.html css3弹性盒子模型之box-flex(修正版一) 发表于 2011/12/06 9 条回复 18,699 views 今天看到蓝色理想上面有一篇文章讲<css3弹性盒模型布局模块介绍>里面讲到用box-flex,突然觉得有点心慌,上次看到响应式网页设计里面也同样讲到flex box自适应布局,而上次竟然没有引起自己的注意,想深入研究一下,竟然给忘记了,于是就在这种不断的忘记中彻底变成outer.今天借此机会,好

浅谈css3弹性盒子模型

昨晚听了一个微信小程序的公开课,在布局时,无意间看到了弹性盒子的身影,之前只知道box-flex,但是由于兼容性问题,使用者很少,毕竟市面上的大多浏览器都必须加前缀才能实现,也就意味着多写几行代码,其实这都不是事,可是大部分CXY都比较懒,能一行代码搞定的事绝不写两行.废话有点多了.转回正题. 我学东西遵循着,是什么?为什么?怎么用?有什么问题?下面我就按这四个方向深入聊聊,水平有限,有问题的地方请多多指教.. 一.是什么? 相信大多数CXY遇到问题,不知是骡子还是马,都会习惯性谷歌之,我也不例

css3弹性盒子模型

当下各种手机,平板尺寸不一,如果盒模型只能固定尺寸,不能随意压缩,将不能很好的迎合这个时代.所以css3推出了新的盒模型——弹性盒子模型(Flexible Box Model). 弹性盒模型可以水平布局,可以垂直布局,还可以调换顺序,可以设置不等的百分比等. 1.弹性盒子column分栏 1 <h2>1.弹性盒子column分栏</h2> 2 <div class="freebox"> 3 <img src="image/moon.j

CSS3弹性盒模型,Flex布局教程

布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现. CSS3中引入flex的弹性盒模型,这是一个可以让你告别浮动.完美实现垂直水平居中的新特性. 尽管目前css3在PC端上的兼容性还不是那么完美,但是在移动端已基本实现兼容. 网络上有很多关于flex布局很好的教程.总结的也很完美,我就直接收藏了,以备查询 详解css3弹性盒模型(Flexbox) 移动端开发小记 – Flexbox

CSS3弹性盒模型flexbox布局基础版

原文链接:http://caibaojian.com/using-flexbox.html 最近看了社区上的一些关于flexbox的很多文章,感觉都没有我这篇文章实在,最重要的兼容性问题好多人都没有提出解决方案.另外本人2014年5月还废寝忘食的翻译了国外的<CSS3弹性盒模型flexbox完整教程>和<CSS3弹性盒模型flexbox布局实例>,这么好的文章没有人来发现,实在是遗憾. 文章写作背景 查询Can I use上的使用情况,发现最新的浏览器基本支持这个属性,IE10开始

CSS3中的弹性盒子模型

介绍 在css2当中,存在标准模式下的盒子模型和IE下的怪异盒子模型.这两种方案表示的是一种盒子模型的渲染模式.而在css3当中,新增加了弹性盒子模型,弹性盒子模型是一种新增加的强大的.灵活的布局方案.弹性盒子模型是css3中新提出的一种布局方案.是一种为了应对针对不同屏幕宽度不同设备的一整套新的布局方案.主要是对一个容器中的子元素进行排列.对齐和分配空白空间的方案的调整. 新旧版本的弹性盒子模型在之前,css3曾经推出过旧版本的弹性盒子模型.相对于新版本的弹性盒子模型而言,旧版本的内容与新版本

web前端入门到实战:CSS3中的弹性盒子模型

介绍 在css2当中,存在标准模式下的盒子模型和IE下的怪异盒子模型.这两种方案表示的是一种盒子模型的渲染模式.而在css3当中,新增加了弹性盒子模型,弹性盒子模型是一种新增加的强大的.灵活的布局方案.弹性盒子模型是css3中新提出的一种布局方案.是一种为了应对针对不同屏幕宽度不同设备的一整套新的布局方案.主要是对一个容器中的子元素进行排列.对齐和分配空白空间的方案的调整. 新旧版本的弹性盒子模型在之前,css3曾经推出过旧版本的弹性盒子模型.相对于新版本的弹性盒子模型而言,旧版本的内容与新版本

flex-direction css3属性设定弹性盒子模型子元素反向排列

设定弹性盒子模型(display:flex)让子元素反向排列 示例说明:display: flex; 声明了盒子为flex弹性盒子布局,flex: 1; 声明了子元素占1份, flex-direction: row-reverse; /*这个属性就是在水平方向上反转*/<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>设定