css布局和选择器
学习目标
- 了解定位的概念
- 掌握如何实现元素的任意布局
重点
难点
- 掌握实际开发特效的实现
难点
- 掌握CSS复杂选择器的使用
重点
- 掌握CSS属性选择器的使用方法
- 掌握CSS特效制作的方法
重点
难点
CSS Float(浮动)
Float(浮动),只能使元素向左或向右移动,其周围的元素的内容会被浮动的元素的内容挤到周围。
Float(浮动),往往是用于图像,但它在布局时一样非常有用。
属性 | 描述 |
---|---|
float | 使元素浮动到左边或者右边(left、right) |
- 浮动元素只能左右移动而不能上下移动。
- 一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
- 浮动元素之后的元素将围绕它。
- 浮动元素之前的元素将不会受到影响。
- 浮动元素的空间将不存在,所以这个元素后边的元素会占据浮动元素原本的空间,导致浮动元素覆盖后面的元素,后面的元素需要使用clear属性清除浮动的覆盖。
案例01
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
img{
float: right;
}
</style>
</head>
<body>
<img src="image/avatar.jpg"/>
觉得很卡机的话那的艰苦撒旦的艰苦撒谎空间大倒萨立刻就发生范德萨浪费
疯狂的思路发生分类考试的价格快速拉高饿死了咖啡连锁店过的思路开发公
疯狂的思路发生分类考试的价格快速拉高饿死了咖啡连锁店过的思路开发公
疯狂的思路发生分类考试的价格快速拉高饿死了咖啡连锁店过的思路开发公
疯狂的思路发生分类考试的价格快速拉高饿死了咖啡连锁店过的思路开发公
</body>
</html>
效果展示
图片浮动到最右边,将正常排版的文字挤到旁边,并不会覆盖住文字。
案例02
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
ul{
list-style-type: none;
}
li{
float: left;
padding: 20px;
background-color: #DC143C;
color: white;
}
h4{
background-color: blueviolet;
color: white;
}
</style>
</head>
<body>
<ul>
<li>家具</li>
<li>服饰</li>
<li>汽车</li>
<li>装饰</li>
<li>鞋包</li>
<li>儿童</li>
</ul>
<h4>内容</h4>
</body>
</html>
效果展示
清除浮动
清除浮动的属性一般用于浮动元素后面的元素,用户清除上面浮动元素对其产生的影响
属性 | 描述 |
---|---|
clear | 清除上面浮动元素的影响(left、right、both) |
案例03
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
ul{
list-style-type: none;
}
li{
float: left;
padding: 20px;
background-color: #DC143C;
color: white;
}
h4{
background-color: blueviolet;
color: white;
clear: both;/*清除上面浮动元素的影响,并从新的行开始*/
}
</style>
</head>
<body>
<ul>
<li>家具</li>
<li>服饰</li>
<li>汽车</li>
<li>装饰</li>
<li>鞋包</li>
<li>儿童</li>
</ul>
<h4>内容</h4>
</body>
</html>
效果展示
总结
- 浮动的特征:
- 把任何元素看成:
元素 = 空间 + 内容
- 浮动的元素只能浮动到左边 或者 右边,不能居中
- 浮动后的元素的空间不存在,但内容还存在
- 浮动元素的内容会和下面的元素显示在同一行
- 浮动元素的内容会把下面的元素的的内容挤压到旁边
- 把任何元素看成:
- 清除浮动
- 想让浮动的元素独占一行,不影响后面的元素排版,需要给后面的第一个元素加
clear:bath
清除浮动 - 当一个元素的所有子元素都浮动后,子元素的空间都不存在了,这个元素的高度会变为
0px
,导致这个元素的背景等看不到,需要给这个元素加overflow:hidden;
或者display:inline-block;
。
- 想让浮动的元素独占一行,不影响后面的元素排版,需要给后面的第一个元素加
CSS position (定位)
position 属性指定了元素的定位类型。
属性 | 描述 |
---|---|
Static | 静态定位,默认值,就是没有定位。 |
Relative | 相对定位,相对当前元素位置 |
Fixed | 固定定位,在页面上固定的位置出现 |
Absolute | 绝对定位,相对于上级已经定位的元素的位置 |
static 静态定位(默认)
HTML元素的默认值,即没有定位,元素出现在正常的流中。
静态定位的元素不会受到 top
, bottom
, left
, right
影响。
fixed 固定定位
元素的位置相对于浏览器窗口是固定位置。
即使窗口是滚动的它也不会移动。
案例04
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>