CSS3一些总结
1.标准流
2.浮动
- 浮动的元素将脱离标准流
- 浮动后的元素
不会占有原有的位置
- 浮动有 左浮动 | 右浮动 | 不浮动
- 浮动的元素不会浮出当前元素的父元素之外,即浮动元素的外边缘不会超出其父元素的内边缘。
- 浮动元素之间不会重叠。
- 没有上下浮动
- 设置浮动属性后,display属性将完全失效,元素将可以设置宽高,且不会独占一行。
1.清除浮动
在使用浮动之后,清除浮动是必不可少的。
语法:
clear: left | right | both
清除浮动的常用方式:
- 结尾处添加空div标签, clear: both。[或在下一个元素上加 clear: both]
- 浮动元素的父级div 添加 overflow: hidden;
- 浮动元素的父级定义宽高属性。
3.定位
1.属性值
1.relative[相对定位]
- 以当前相对定位的元素
原有的位置
作为参照物 移动指定的距离 - 相对定位的元素移动后,
原有的位置
仍然会被占用
2.absolute[绝对定位]
- 绝对定位的元素移动后,
原有的位置不会被占用
- 以其他
定位的元素[默认值static不算]
作为参照物移动指定的距离 - 视为树型结构,将当前绝对定位的元素作为叶子节点向树的根级查找
最近且具有定位属性的元素
作为参照物品,之后进行移动。若查找到根级仍然未找到,则以body作为参照物。
3.fixed[固定定位]
- 以当前浏览器窗口作为参照物固定元素。页面的滚动不会引起元素位置的变化。
4.static
- 默认值,无任何意义。
2.z-index[堆叠顺序]
- 元素使用定位属性后,元素之间可能会发生堆叠。
- 可以使用z-index属性调整元素之间的重叠顺序
- z-index属性仅可以在使用了定位的元素上使用
- 数值型,值越大越在前面,若为负值,则表示越在后面。
4.display
CSS规范规定,每一个网页元素都有一个display属性,用于确定该元素的类型。例如div元素,默认display属性值为"block",称之为"块元素",span元素的默认display属性值为"inline",称之为"行内元素"。
块元素与行元素之间是可以互相转换的。
块元素:具有宽高属性,并且独占一行。
行元素:没有宽高属性,不会独占一行。
行内块元素:具有宽高属性,不会独占一行。
display常见属性值
- none:隐藏对象
- inline:指定对象为内联元素(行内元素)
- block:指定对象为块元素
- inline-block:指定对象为内联块元素
- table-cell:指定对象作为表格单元格
- flex:弹性盒
5.盒子模型
盒子模型是css中一个重要的概念,通过理解盒子模型才能对页面进行更好的排版。
W3C组织建议把网页上的元素看成是一个一个的盒子。
盒子模型主要定义四个区域:内容(content)、内边距(padding)、边框(border)、外边距(margin)
元素实际宽度 = 左右侧外边距 + 左右侧边框 + 内容声明宽度 + 左右侧内边距
1.外边距
围绕在元素边框周围的空白区域
- 会在元素外创建额外的空白区域
- 外边距是透明的
语法
margin: value;
1.外边距简写
margin: value; /*四个方向相同*/
margin: value(上下) value(左右);
margin: value(上) value(左右) value(下);
margin: value(上) value(右) value(下) value(左);
2.外边距合并
外边距合并 形成一个外边距
- 块级元素的垂直相邻的外边距会合并
- 行内元素没有外边距。
- 浮动元素的外边距不会合并
- 外边距值可以设置为负值,需要小心使用。
1.上下合并
当两个块状元素上下排列,且都具有外边距属性,则上下以最大的外边距距离进行合并。
2.包含合并
当一个块状元素包含一个块状元素,且都具有外边距属性,则外边距会自动合并。
解决方案:为父块状元素添加一个边框属性即可。
2.边框
- 会扩大元素边框所占用的区域
边框三要素:宽度、边框样式、颜色
语法
border: 1px solid red; /*简写*/
border-width: ; /*可选,边框宽度,默认3像素*/
border-style: ; /*必选,边框样式,不写则不显示边框*/
border-color: ; /*可选,边框颜色,默认黑色*/
边框样式有五种常用样式可选:
- dotted - 点状
- solid - 实线
- double - 双线(宽度最起码设置为3像素,否则显示不下)
- dashed - 虚线
- none - 无边框
3.内边距
- 内容区域和边框之间的空间
- 会扩大元素边框所占用的区域
语法
padding: value;
值可以为像素或者百分比,不可为负数
1.内边距简写
padding: value; /*四个方向相同*/
padding: value(上下) value(左右);
padding: value(上) value(左右) value(下);
padding: value(上) value(右) value(下) value(左);
4.盒子模型
-
标准盒(W3C规范标准)
-
怪异盒(IE盒模型)
通过Box-sizing切换盒子模型 -
conteng-box(标准)
padding和border不被包含在width和height内,元素的实际大小为宽高+border+padding
,此为标准模式下的盒模型 -
border-box(怪异)
padding和border被包含在定义的width和height中,元素实际的大小为你定义了多宽就是多宽。此属性为怪异模式下的盒模型。