一、按比例划分

<div class="test">
<p id="p1">Hello</p>
<p id="p2">W3School</p>
</div>
<style>
.test{
display:-moz-box;
display:-webkit-box;
display:box;
width:300px;
}
#p1{
-moz-box-flex:1.0;
-webkit-box-flex:1.0;
box-flex:1;
border:1px solid red;
}
#p2{
-moz-box-flex:2.0;
-webkit-box-flex:2.0;
box-flex:2;
border:1px solid blue;
}
</style>

如下图所示:

二、box具体的属性如下:

box-orient | box-direction | box-align | box-pack | box-lines

box-orient 用来确定父容器里的子容器的排列方式,是水平还是垂直,可选属性如下所示:
   horizontal | vertical | inline-axis | block-axis | inherit

(1)horizontal | inline-axis
给box设置 horizontal 或 inline-axis 属性效果表现一致。都可以将子元素进行水平排列.

  1. <div class="test">
  2. <p id="p1">Hello</p>
  3. <p id="p2">W3School</p>
  4. </div>
  5. css代码如下:
  6. <style>
  7. .test{
  8. display:-moz-box;
  9. display:-webkit-box;
  10. display:box;
  11. width:300px;
  12. height:200px;
  13. -moz-box-orient:horizontal;
  14. -webkit-box-orient:horizontal;
  15. box-orient:horizontal;
  16. }
  17. #p1{
  18. -moz-box-flex:1.0;
  19. -webkit-box-flex:1.0;
  20. box-flex:1;
  21. border:1px solid red;
  22. }
  23. #p2{
  24. -moz-box-flex:2.0;
  25. -webkit-box-flex:2.0;
  26. box-flex:2;
  27. border:1px solid blue;
  28. }
  29. </style>

如下图所示:

(2)vertical 可以让子元素进行垂直排列;

  1. <style>
  2. *{margin:0;padding:0;}
  3. .test{
  4. display:-moz-box;
  5. display:-webkit-box;
  6. display:box;
  7. width:300px;
  8. height:200px;
  9. -moz-box-orient:vertical;
  10. -webkit-box-orient:vertical;
  11. box-orient:vertical;
  12. }
  13. #p1{
  14. -moz-box-flex:1.0;
  15. -webkit-box-flex:1.0;
  16. box-flex:1;
  17. border:1px solid red;
  18. }
  19. #p2{
  20. -moz-box-flex:2.0;
  21. -webkit-box-flex:2.0;
  22. box-flex:2;
  23. border:1px solid blue;
  24. }
  25. </style>

如下图所示:

(3)inherit。 Inherit属性让子元素继承父元素的相关属性。
效果和第一种效果一样,都是水平对齐;

2. box-direction

box-direction 用来确定父容器里的子容器的排列顺序,具体的属性如下代码所示:
   normal | reverse | inherit
normal是默认值,按照HTML文档里的结构的先后顺序依次展示, 如果box-direction 设置为 normal,则结构顺序还是 id为p1元素,id为p2元素。
reverse: 表示反转。如果设置reverse反转,则结构排列顺序为 id为p2元素,id为p1元素。如下代码:

  1. <style>
  2. *{margin:0;padding:0;}
  3. .test{
  4. display:-moz-box;
  5. display:-webkit-box;
  6. display:box;
  7. width:300px;
  8. height:200px;
  9. -moz-box-direction:reverse;
  10. -webkit-box-direction:reverse;
  11. box-direction:reverse;
  12. }
  13. #p1{
  14. -moz-box-flex:1.0;
  15. -webkit-box-flex:1.0;
  16. box-flex:1;
  17. border:1px solid red;
  18. }
  19. #p2{
  20. -moz-box-flex:2.0;
  21. -webkit-box-flex:2.0;
  22. box-flex:2;
  23. border:1px solid blue;
  24. }
  25. </style>

如下图所示:

3. box-align:

box-align 表示容器里面字容器的垂直对齐方式,可选参数如下表示:
start | end | center | baseline | stretch

(1) start:表示居顶对齐

  1. <style>
  2. *{margin:0;padding:0;}
  3. .test{
  4. display:-moz-box;
  5. display:-webkit-box;
  6. display:box;
  7. width:300px;
  8. height:200px;
  9. -moz-box-align:start;
  10. -webkit-box-align:start;
  11. box-align:start;
  12. }
  13. #p1{
  14. -moz-box-flex:1.0;
  15. -webkit-box-flex:1.0;
  16. box-flex:1;
  17. height:160px;
  18. border:1px solid red;
  19. }
  20. #p2{
  21. -moz-box-flex:2.0;
  22. -webkit-box-flex:2.0;
  23. box-flex:2;
  24. height:100px;
  25. border:1px solid blue;
  26. }
  27. </style>

如上 P1 高度为160px p2 为100px; 对齐方式如下图所示:

如果改为end的话,那么就是 居低对齐了,如下:

center表示居中对齐,如下:

stretch 在box-align表示拉伸,拉伸与其父容器等高。如下代码:

在firefox下 和父容器下等高,满足条件,如下:

在chrome下不满足条件;如下:

4. box-pack

box-pack表示父容器里面子容器的水平对齐方式,可选参数如下表示:
  start | end | center | justify

box-pack:start; 表示水平居左对齐,对于正常方向的框,首个子元素的左边缘被放在左侧(最后的子元素后是所有剩余的空间)
对于相反方向的框,最后子元素的右边缘被放在右侧(首个子元素前是所有剩余的空间)代码如下所示:

  1. <style>
  2. *{margin:0;padding:0;}
  3. .test{
  4. display:-moz-box;
  5. display:-webkit-box;
  6. display:box;
  7. width:400px;
  8. height:120px;
  9. border:1px solid #333;
  10. -moz-box-pack:start;
  11. -webkit-box-pack:start;
  12. box-pack:start;
  13. }
  14. #p1{
  15. width:100px;
  16. height:108px;
  17. border:1px solid red;
  18. }
  19. #p2{
  20. width:100px;
  21. height:108px;
  22. border:1px solid blue;
  23. }
  24. </style>

如下图所示:

box-pack:center;  表示水平居中对齐,均等地分割多余空间,其中一半空间被置于首个子元素前,另一半被置于最后一个子元素后; 如下图所示:

box-pack:end; 表示水平居右对齐;对于正常方向的框,最后子元素的右边缘被放在右侧(首个子元素前是所有剩余的空间)。
对于相反方向的框,首个子元素的左边缘被放在左侧(最后子元素后是所有剩余的空间)。如下图所示:

box-pack:Justify:
在box-pack表示水平等分父容器宽度(在每个子元素之间分割多余的空间(首个子元素前和最后一个子元素后没有多余的空间))
如下:

display:box,按比列划分,水平均分,及垂直等高的更多相关文章

  1. ElegantSnap 一个优雅的,易用的iOS/tvOS/macOS自动布局框架, 超级详细的使用教程,多视图水平等宽/垂直等高排列

    ElegantSnap ElegantSnap(Base on SnapKit) to make Auto Layout easy and elegant on both iOS and OS X. ...

  2. CSS3.0盒模型display:box;的使用

    CSS3.0盒模型display:-webkit-box;的使用 box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构.css实现的布局方式.经典的一个布局应用就是布局的垂 ...

  3. CSS3盒模型display:box详解

    display:box;box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构.css实现的布局方式.经典的一个布局应用就是布局的垂直等高.水平均分.按比例划分. 目前box ...

  4. 转: css3: display:box详解

    示例见:  css3: flexbox (BTW: blog不能包含iframe script真不方便啊~~) display:box;box-flex是css3新添加的盒子模型属性,它的出现可以解决 ...

  5. CSS3盒模型display:box简述

    display:box;box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构.css实现的布局方式.经典的一个布局应用就是布局的垂直等高.水平均分.按比例划分. box-f ...

  6. [转]CSS3盒模型display:box详解

    时间:2014-02-25来源:网络作者:未知编辑:RGB display:box;box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构.css实现的布局方式.经典的一个布 ...

  7. CSS3盒模型display:box;box-flex:3;

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  8. 【前端】display: box布局教程 [转]

    css display:box 新属性   一.display:box; 在元素上设置该属性,可使其子代排列在同一水平上,类似display:inline-block;. 二.可在其子代设置如下属性 ...

  9. 被废了的display:box弹性盒模型

    这几天在研究弹性布局,看书中写的是display:box,结果在chrome浏览器中是正常的,想着移动端大部分浏览器也是webkit内核的应该也没啥问题,结果确实没问题,但仔细一看,高度呢?好吧,严重 ...

随机推荐

  1. go练习4--json 序列号反序列化

    //定义结构体 //首字母大写 , json:"msg_id" 是 tag type Message struct { MsgId string `json:"msg_i ...

  2. Thrift入门之mac下的安装流程

    新建一个maven项目,先下载maven依赖  http://thrift.apache.org/download <dependency> <groupId>org.apac ...

  3. Malformed \uxxxx encoding

    今天碰到个问题. FATAL [btir.server.ServerStartup:54] - <java.lang.IllegalArgumentException: Malformed \u ...

  4. 微信小程序 --- for循环渲染

    循环标签:wx:for <view wx:for="{{['aa','bb','cc']}}"> {{index}} {{item}} </view> 这里 ...

  5. JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金)

    第一: 限制只能是整数 <input type = "text" name= "number" id = 'number' onkeyup= " ...

  6. javascript飞机大战-----006创建敌机

    先写一个敌机类 /* 创建敌机: */ function Enemy(blood,speed,imgs){ //敌机left this.left = 0; //敌机top this.top = 0; ...

  7. ZOJ 3537 Cake(凸包判定+区间DP)

    Cake Time Limit: 1 Second Memory Limit: 32768 KB You want to hold a party. Here's a polygon-shaped c ...

  8. CH5E09 能量相连【区间DP】

    5E09 能量项链 0x5E「动态规划」练习 描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且, ...

  9. 第二次去苹果店维修MacBook

    今天上午,在使用外接鼠标的情况下,屏幕上鼠标指针乱窜.乱点.不受控制的故障再次出现,这次拍下了视频. 再次去苹果网站预约Genius Bar(天才吧),中午的时候去了苹果店.这次没有像上次那样检查身份 ...

  10. Ora-1157 ora-1110错误解决案例一枚

    1.数据库打开报错如下: SQL> alter database open; alter database open * ERROR at line 1: ORA-01157: cannot i ...