盒子是 CSS 的基础概念,我们需要使用它来配置元素的外观以及文档的整体布局。

padding 属性定义了元素的内边距,百分比和包含块的宽度有关,高度不考虑在内
<style type="text/css">
p {
/* 顶部内边距10px,左右内边距20px,下边内边距30px */
padding: 10px 20px 30px;
}
</style>
margin 属性定义了原色的外边距,百分比和包含块的宽度有关
width和height属性可以控制元素的尺寸
min-width和min-height属性为元素设置最小尺寸
max-width和max-height属性为元素设置最大尺寸
百分比是根据包含块的宽度来计算的
box-sizing 属性以确切的方式定义适应某个区域的具体内容
盒子的标准模型的宽是 content+border-width+padding,使用 box-sizing 属性可以将border-width和padding计算到设置的width中,比如设置的width为100px,padding-width 为10px,使用 box-sizing 属性使宽度仍为 100px 而不是 120px。
当内容太多,容器过小,内容就会溢出。使用overflow可以改变溢出行为。
visibility 可以控制元素的可见性,
属性的值:
display 属性可以改变元素盒类型,相应的会改变元素在页面上的布局方式
属性的值:
float 属性会创建浮动盒,浮动盒会将元素边界移动到包含块或另一个浮动盒的边界
属性的值:
如果设置多个浮动元素,默认情况下会堆叠显示。
clear属性使浮动元素的一个或两个边界不能挨着另一个浮动元素
属性的值:
position 属性设置了元素的定位方法
left、top、right、bottom属性定位元素偏移量
position 属性的值:
column 属性使内容多列分布,类似于报纸排版
使用 column-count 指定列数或者 column-width 指定列宽,以便内容在垂直的多列中分布
参考资料:
弹性布局可以更好的支持流动界面。
将任意容器指定为flex布局:
<style type="text/css">
.box {
display: flex;
/ * webkit内核浏览器加上厂商前缀 */
display: -webkit-flex;
}
</style>
将行内元素指定为flex布局:
.p {
display: inline-flex;
}
设置为flex属性后子元素的float、clear、vertical-align属性将失效
采用flex布局的元素称为flex容器,他的所有子元素成为容器成员。

容器默认有两个轴,水平的主轴和垂直的交叉轴,项目默认沿主轴排列
确定主轴(main axis)的方向
属性的值:
默认情况下项目排列在一条主轴上,如果项目过多需要还行,flex-wrap 规定如何换行,属性的值:
定义项目在主轴上的对齐方式
属性的值:
定义项目在交叉轴上的对齐方式
属性的值:
属性定义多根轴线情况下的对齐方式,如果只有一根轴线属性无效,属性的值:
定义项目排列顺序,值为数值,越小排列越靠前
定义项目缩放比例,默认值为0
如果值为0,即使有空余空间也不放大
如果所有项目值为1,则平分空间
如果项目值分别为1、2、1,则按比例分配空间
定义项目缩小比例,默认值0
如果值为1,空间不足时项目将缩小
如果值为1、0、1,空间不足时值为0的项目不缩小
属性容许单个项目拥有与其他项目不同的对齐方式,可覆盖 align-items 属性

