一、浮动
1. 浮动特性:
- 浮动元素有左浮动(float:left)和右浮动(float:right)俩种
- 浮动的元素会向左或向右浮动,碰到父元素边界、其他元素才停下来
- 相邻浮动的块元素可以并在一行,超出父级宽度就换行
- 浮动让行内元素或块元素自动转化为行内块元素(此时不会有行内元素间隙问题)
- 浮动元素后面没有浮动的元素会占据浮动元素的位置,没有浮动的元素内的文字会避开浮动的元素,形成文字饶图的效果
- 父元素如果没有设置尺寸(一般是高度不设置),父元素内整体浮动的元素无法撑开父元素,父元素需要清楚浮动
- 浮动元素之间没有垂直margin的合并
2. 清除浮动
- 父级上增加属性overflow:hidden
- 在最后一个子元素的后面加一个空的div,给它样式属性clear:both(不推荐)
- 使用成熟的清浮动样式类,clearfix
.clearfix:after,.clearfix:before{ content: "";display: table;} # 避免塌陷、清除浮动
.clearfix:after{ clear:both;} # 清除浮动
.clearfix{zoom:1;}
清除浮动的使用方法:
.con2{... overflow:hidden}
或者
<div class="con2 clearfix">
二、定位
1. 文档流
文档流,是指盒子按照html标签编写的顺序依次从上到下,从左到右排列,块元素占一行,行内元素在一行之内从左到右排列,先写的先排列,后写的排列在后面,每个盒子都占据自己的位置。
2. 关于定位
我们可以使用css的position属性来设置元素的定位类型,position的设置项如下:
position设置项 | 功能 |
---|---|
relative | 生成相对定位元素,元素所占据的文档流的位置保留,元素本身相对自身位置进行偏移 |
absolute | 生成绝对定位,元脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相对于上一个设置了定位的父级元素来进行定位,如果找不到,则相对于body元素进行定位。 |
fixed | 生成固定定位元素,元素脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相对于浏览器窗口进行定位 |
static | 默认值,没有定位,元素出现在正常的文档流中,相对于取消定位属性或者不设置定位元素 |
inherit | 从父元素继承position属性的值 |
3. 定位元素的偏移
定位元素还需要用left、right、top或者bottom来设置相对于参照元素的偏移量
4. 定位元素层级
定位元素是浮动的正常的文档流之上的,可以用z-index属性来设置元素的层级
伪代码如下:
.box01{
......
position:absolute; /* 设置了绝对定位 */
left:200px; /* 相对于参照元素左边向右偏移200px */
top:100px; /* 相对于参照元素顶部向下偏移100px */
z-index:10 /* 将元素层级设置为10 */
}
5. 定位元素特性
绝对定位和固定定位的块元素和行内元素会自动转化为行内块元素
三、background属性
1. 属性解释:
background属性是css中应用比较多,且比较重要的一个属性,它是负责给盒子设置背景图片颜色的,background是一个复合属性,它可以分解成如下几个设置项:
- background-color 设置背景颜色
- background-image 设置背景图片地址
- background-repeat 设置背景图片如何重复平铺
- background-position 设置背景图片的位置
- background-attachment 设置背景图片是固定还是随着页面滚动条滚动
实际应用中,我们可以用background属性将上面所有的设置项放在一起,而且也建议这么做,这么做性能更高,而且兼容性更好,比如:
background:#00FF00 url(bgimage.gif) no-repeat left center fixed
"#00FF00“是设置background-color
url(bgimage.gif)是设置background-image
no-repeat是设置background-repeat
left center 是设置background-position
fixed是设置background-attachment
各个设置项空格隔开,有的设置项不写也是可以的,它会使用默认值。
四、雪碧图
雪碧图,又称为精灵图,就是将网页制作中使用的多个小图片合并成一个图片,使用css技术将这张合成的图片应用在网页不同的地方,雪碧图可以减少网页加载时的http请求数,优化网页性能。
步骤:
- 使用Photoshop新建一张背景透明的图片
- 将小图片复制到此图片中,排列好每个图像的位置,图片幅面不够可以用画布大小调整大小
- 按照所有小图片的范围裁剪图片,存在透明背景的png图片