html盒子中盒子排列,解析CSS的box model盒模型及其内的子元素布局控制

css的两种盒模型介绍CSS中Box model是分为两种,第一种是W3C的标准模型,另一种是IE的传统模型,他们相同之处都是对元素计算尺寸的模型,具体说就是对元素的width,height,padding,border以及元素实际尺寸的计算关系;他们不同之处呢?两者的计算方法不一至:

1、W3C的标准Box Model:

复制代码代码如下:

/*外盒尺寸计算(元素空间尺寸)*/ Element空间高度 = content height + padding + border + margin Element 空间宽度 = content width + padding + border + margin /*内盒尺寸计算(元素大小)*/ Element Height = content height + padding + border (Height为内容高度) Element Width = content width + padding + border (Width为内容宽度)

2、IE)传统下Box Model(IE6以下,不含IE6版本或“QuirksMode下IE5.5+”):

复制代码代码如下:

/*外盒尺寸计算(元素空间尺寸)*/ Element空间高度 = content Height + margin (Height包含了元素内容宽度,边框宽度,内距宽度) Element空间宽度 = content Width + margin (Width包含了元素内容宽度、边框宽度、内距宽度) /*内盒尺寸计算(元素大小)*/ Element Height = content Height(Height包含了元素内容宽度,边框宽度,内距宽度) Element Width = content Width(Width包含了元素内容宽度、边框宽度、内距宽度)

其实原则上来说Box Model是分得很细的,我们这里主要分了两个比较明显的地方,就是外盒模型和内合模型,如上面计算公式所示(后面我将会详细介绍一下CSS中的Box Model)。这样说大家可能还不太好理解,下面我们一起来看一个实际的例子,比如说现在有一个叫boxtest的Div,其具有下面一个属性

.boxtest {     border: 20px solid;     padding: 30px;     margin: 30px;     background: #ffc;     width: 300px;  }

我们先来看一下W3C标准浏览器(Firefox,Safari,Chrome,Opera,IE6+)和传统浏览器(IE6以下版本浏览器)的Layout截图

c009715845a0a8ef0ca6d9f3aef018da.png

上图中明显可以看出IE6以下版本浏览器的宽度包含了元素的padding,border值,换句话来说在IE6以下版本其内容真正的宽度是(width-padding-boder)。用内外盒来说的话,W3C标准浏览器的内盒宽度等于IE6以下版本浏览器的外盒宽度。

盒模型的子元素控制

1.子元素上下对齐方式 box-align例子:

CSS Code复制内容到剪贴板

.demo {

-webkit-box-align:center;

-moz-box-align:center;

-ms-box-align:center;

box-align:center;

}

值::

baseline – 基线

center – 居中

end – 底部

inherit – 继承

initial – 默认

start – 顶部

stretch – 拉伸

2.子元素左右对齐方式 box-pack例子:

CSS Code复制内容到剪贴板

.demo {

-webkit-box-pack:center;

-moz-box-pack:center;

-ms-box-pack:center;

box-pack:center;

}

值:

center – 居中

end – 底部

inherit – 继承

initial – 默认

start – 顶部

justify – 拉伸

3.子元素排列方式 box-orient例子:

CSS Code复制内容到剪贴板

.demo {

-webkit-box-orient: horizontal;

-moz-box-orient: horizontal;

-ms-box-orient: horizontal;

box-orient: horizontal;

}

值:

horizontal – 水平

vertical – 垂直

inherit – 继承

initial – 默认

inline-axis – 内轴

block-axis – 块轴

4.子元素排列顺序 box-ordinal-group例子:

CSS Code复制内容到剪贴板

.child {

-webkit-box-ordinal-group:2;

-moz-box-ordinal-group:2;

box-ordinal-group:2;

}

5.规定框的子元素的显示方向 box-direction例子:

CSS Code复制内容到剪贴板

.demo {

-webkit-box-direction:reverse;

-moz-box-direction:reverse;

-ms-box-direction:reverse;

box-direction:reverse;

}

值:

reverse – 反方向

normal – 默认

inherit – 继承

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值