文档中的每个属性都可以被看做是盒子,具有宽高等属性,具体为: 1. width&height 宽、高 2. padding 内间距 3. border 边框 4. margin 外边距,相邻元素的外边距会合并 盒子模型有两种,一种为W3C盒子,即默认盒子,width&height的属性为内容所占的宽高,而盒子的宽为width+paddingLeft+paddingRight+borderLeft+borderRight,高同理。所占屏幕空间的宽为width+paddingLeft+paddingRight+borderLeft+borderRight +marginLeft+marginRight,高同理。 另一种为IE盒子,也称边框盒子,IE盒子的width为整个盒子的宽,内容区的宽为width-paddingLeft-paddingRight-borderLeft-borderRight,高同理。IE盒子所占屏幕空间的宽为width+marginLeft+marginRight,高同理。使用box-sizing属性可以改变盒子模型,content-box为默认模型,border-box为IE盒子模型。
对页面布局不加任何修饰,元素自动布局。
元素在页面中的显示顺序与元素在代码中出现的顺序是一致的。块级元素独占一行空间,宽度默认为父级的100%,高度由其内容高度所决定。行内元素与其他元素共享一行空间,宽高由其内容所决定。默认布局:从上到下,从左到右,从外到内 display:block、inline、inline-block行内块级元素 (改变行内、块级)浮动布局的主要用法是为了让块级元素在一行中显示(列级布局),或者让文字在图片的周围显示。 float属性取值:left/right/none/inherit 向左浮动/向右浮动/默认不浮动/浮动方式继承父元素。float:right 从右往左依次为第一第二第三个元素。 float 会脱离文档流,对后续元素结构有影响,所以需要清除浮动。 清除浮动的三种方法
伪元素XX::after { content:''; display:block; clear:both; } clear:both清除浮动对父元素进行 overflow:hidden。定位属性left、right、top、bottom
静态定位,position:static;默认定位方式。相对定位,position:relative;,不脱离文档流,原先位置保留,如果不设置left等属性,依然在原先位置,移动时是相对于当前元素所在位置进行移动。固定定位,position: fixed;,相对于浏览器视口区进行定位,脱离文档流,默认在原先位置固定定位。不会随着浏览器的滚动而滚动。绝对定位,position: absolute;,元素脱离文档流。默认在原先位置脱离文档流,显示在其他元素上方,有定位祖先元素,相对于定位祖先元素定位,没有定位祖先元素的,相对于定位祖先元素进行定位。粘性定位。position: sticky; ,不脱离文档流,跨越特定阈值前为相对定位,之后为固定定位。元素固定的相对偏移是相对于离他最近的具有滚动条的祖先元素,如果祖先元素都不可以滚动,那么是相对于视口区来计算元素的偏移量。层叠顺序。当两个定位元素叠加在一起的时候,可以使用“z-index”来改变两个定位元素出现的顺序z-index 取值无需指定单位,值大的显示在上方。CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。 使用弹性盒布局的父元素 display:flex; flex-direction: row (列布局) flex-direction: column (行布局)
flex容器:设置主轴方向、是否换行、对齐方式flex元素:宽比例(定宽和百分比)、伸缩倍数display:flex;flex-direction:row;列布局,在一行内放很多列 ,flex-direction:column;行布局,在一列内放很多行flex-warp:warp; 自动换行,flex-warp:nowarp; 默认不换行,进行伸缩,flex-warp:warp-reverse;自动换行,倒序输出速写默认值:flex-flow:row nowarp;