CSS3弹性盒模型开发笔记(一)

时间:2021-05-08

弹性盒模型(Flexible Box Moudle),该模型用于决定元素在盒子中的分布方式以及处理盒子的可用空间。这与XUL(Firefox浏览器的用户交互语言)相似,其他语言也使用相同的盒模型。如XAML,GladeXML等。通过弹性盒模型,可以轻松地创建自适应浏览器窗口的流动布局或自适应字体大小的弹性布局。

兼容性:弹性盒模型规范是W3C标准化组织于2009年发布的,目前还没有主流浏览器对其进行支持,不过采用Webkit和Mozilla渲染引擎的浏览器都自定义了一套私有属性,用来支持弹性盒模型。

采用Webkit渲染引擎的浏览器主要包括Safari和Chrome浏览器,该引擎支持以-webkit为前缀的私有属性。

Mozilla渲染引擎的浏览器主要包括Firefox浏览器,该引擎支持以-moz为前缀的私有属性。

相关属性:

box-align:定义子元素在盒子垂直方向上的空间分配方式
box-direction:定义盒子的显示顺序
box-flex:定义子元素在盒子内的自适应尺寸
box-flex-group:定义自适应子元素群组
box-lines:定义子元素分列显示
box-ordinal-group:定义子元素在盒子内的显示位置
box-orient:定义盒子分部的坐标轴
box-pack:定义子元素在盒子内水平方向的空间分配方式

box-orient属性

该属性可用于定义盒子元素内部的流动布局方向.在使用弹性盒子模型时,需要先把父容器的display属性设置为box或者inline-box。
语法:

box-orient:horizontal | vertail | inline-axis | block-axis | inherit

取值简单说明:

horizontal:盒子元素从左到右在一条水平线上显示它的子元素。

vertail:盒子元素从上到下在一条垂直线上显示它的子元素。

inline-axis:盒子元素沿着内联轴显示它的子元素。

block-axis:盒子元素沿着块轴显示它的子元素。

实战体验:设计多栏布局

html代码:

XML/HTML Code复制内容到剪贴板
  • <divid="box">
  • <divid="box0"><imgsrc="images/web_01.gif"/></div>
  • <divid="sub-box">
  • <divid="box1"><imgsrc="images/web_02.gif"/></div>
  • <divid="box2"><imgsrc="images/web_03.gif"/></div>
  • <divid="box3"><imgsrc="images/web_04.gif"/></div>
  • </div>
  • </div>
  • CSS3代码:

    CSS Code复制内容到剪贴板
  • <styletype="text/css">
  • body{
  • margin:0;padding:0px;
  • text-align:center;
  • background:#170843;
  • }
  • #box{
  • margin:auto;
  • text-align:center;
  • width:975px;
  • }
  • #box1{width:185px;}
  • #box2{width:601px;}
  • #box3{width:189px;}
  • #sub-box{
  • display:-moz-box;
  • display:-webkit-box;
  • display:box;
  • box-orient:horizontal;
  • -moz-box-orient:horizontal;
  • -webkit-box-orient:horizontal;
  • }
  • </style>
  • 演示效果:

    box-direction属性

    box-direction属性可以改变盒子元素中内部元素的流动顺序,该属性基本语法:

    box-direction:normal | reverse | inherit

    取值简单说明:

    normal:正常显示顺序,即如果盒子元素的box-origent属性值为horizontal,则其包含的子元素按照从左到右的顺序显示,即每个子元素的左边总是靠近前一个子元素的右边;如果盒子元素的box-origent属性值设置为vertical,则其包含的子元素按照从上到下的顺序显示。

    reverse:反向显示,盒子所包含的子元素的显示顺序将于normal相反。

    inherit:继承上级元素的显示顺序。

    实战体验:反向布局网页(以上面的案例为基础):

    CSS3代码:

    CSS Code复制内容到剪贴板
  • <style>
  • body{
  • margin:0;padding:0px;
  • text-align:center;
  • background:#170843;
  • }
  • #box{
  • margin:auto;
  • text-align:center;
  • width:975px;
  • }
  • #box1{width:185px;}
  • #box2{width:601px;}
  • #box3{width:189px;}
  • #sub-box{
  • display:-moz-box;
  • display:-webkit-box;
  • display:box;
  • box-orient:horizontal;
  • -moz-box-orient:horizontal;
  • -webkit-box-orient:horizontal;
  • box-direction:reverse;
  • -moz-box-direction:reverse;
  • -webkit-box-direction:reverse;
  • }
  • </style>
  • 演示效果:

    box-ordinal-group属性

      box-direction属性可以改变盒子内部元素的流动顺序,而box-ordinal-group属性能够设置每个子元素在盒子中的具体显示位置,语法如下:

    box-ordinal-group:<integer>

    取值说明:

    属性值是一个自然数,从1 开始,用来设置子元素的位置符号。子元素的分布将根据这个属性值从小到大进行排列。在默认情况下,子元素将根据元素的位置进行排列。
    注意:如果没有指定box-ordinal-group属性值的子元素,则其序号默认都为1,并且序号相同的元素将按照他们在文档中的加载的顺序进行排列。

    实战体验:垂直网页布局

    HTML代码:

    XML/HTML Code复制内容到剪贴板
  • <divid="box">
  • <divid="box1"><imgsrc="images/web1_01.gif"/></div>
  • <divid="box2"><imgsrc="images/web1_02.gif"/></div>
  • <divid="box3"><imgsrc="images/web1_03.gif"/></div>
  • <divid="box4"><imgsrc="images/web1_04.gif"/></div>
  • </div>
  • CSS3代码:

    CSS Code复制内容到剪贴板
  • <styletype="text/css">
  • body{
  • margin:0;
  • padding:0;
  • text-align:center;
  • background:#d9bfe8;
  • }
  • #box{
  • margin:auto;
  • text-align:left;
  • width:988px;
  • }
  • #box{
  • display:-moz-box;
  • display:-webkit-box;
  • display:box;
  • box-orient:vertical;
  • -moz-box-orient:vertical;
  • -webkit-box-orient:vertical;
  • }
  • #box1{
  • -moz-box-ordinal-group:2;
  • -webkit-box-ordinal-group:2;
  • box-ordinal-group:2;
  • }
  • #box2{
  • -moz-box-ordinal-group:3;
  • -webkit-box-ordinal-group:3;
  • box-ordinal-group:3;
  • }
  • #box3{
  • -moz-box-ordinal-group:1;
  • -webkit-box-ordinal-group:1;
  • box-ordinal-group:1;
  • }
  • #box4{
  • -moz-box-ordinal-group:4;
  • -webkit-box-ordinal-group:4;
  • box-ordinal-group:4;
  • }
  • </style>
  • 演示效果:

    以上就是关于CSS3弹性盒模型基础开发知识总结,希望对大家认识CSS3弹性盒模型有所帮助。

    本文地址:http://blog.csdn.net/lovejulyer/article/details/51231951

    声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

    相关文章