1、定位
作用:灵活的改变盒子在网页中的位置
实现: 1.定位模式:
position
2.
边偏移:设置盒子的位置
left
right
top
bottom
使用场景:让多个标签在同一个位置实现
1.1相对位置
position: relative
特点: 1、不脱标,占用自己原来位置
2、显示模式特点保持不变
3、设置边偏移则相对自己原来位置移动
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
.div{
position: relative;
top:100px;
left:200px;
background-color: pink;
width: 100px;
height: 100px;
}
</style>
</head>
<body>
<div class="div"></div>
</body>
</html>
1.2绝对位置
position: absolute
使用场景:子级绝对定位,父级相对定位(
子绝父相
)
特点: 1、脱标,不占位
2、显示模式具备行内块特点
3、设置边偏移则相对最近的已经定位的祖先元素改变位置
4、如果祖先元素都未定位,则相对浏览器可视区改变位置
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
.father{
position: relative;
}
.father span{
position: absolute;
top:0;
left:0;
background-color: pink;
width: 100px;
height: 100px;
}
</style>
</head>
<body>
<div class="father">
<span></span>
</div>
</body>
</html>
1.3定位居中
实现步骤:1. 绝对定位
2.
水平、垂直边偏移为
50%
3.
子级向左、上移动自身尺寸的一半
左、上的外边距为
–
尺寸的一半
transform: translate(-50%, -50%)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
.father span{
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
width: 100px;
height: 100px;
background-color: pink;
}
</style>
</head>
<body>
<div class="father">
<span></span>
</div>
</body>
</html>
1.4固定定位
position: Ũxed
场景:元素的位置在网页滚动时不会改变
特点: 1、脱标,不占位
2、显示模式具备行内块特点
3、设置边偏移相对浏览器窗口改变位置
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
.father span{
position: fixed;
right: 0;
top: 0;
width: 100px;
height: 100px;
background-color: pink;
}
</style>
</head>
<body>
<div class="father">
<span></span>
</div>
</body>
</html>
1.5堆叠层级z-index
默认效果:按照标签书写顺序,后来者居上
作用:设置定位元素的层级顺序,改变定位元素的显示顺序
属性名:
z-index
属性值:
整数数字
(默认值为
0
,取值越大,层级越高)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
.box{
position: absolute;
width: 100px;
height: 100px;
background-color: pink;
z-index: 1;
}
.box2{
position: absolute;
width: 100px;
height: 100px;
background-color: skyblue;
left: 100px;
top: 100px;
z-index: 2;
}
</style>
</head>
<body>
<div class="box"></div>
<div class="box2"></div>
</body>
</html
2、高级技巧
2.1CSS精灵
CSS
精灵,也叫
CSS Sprites
,是一种网页
图片应用处理方式
。把网页中
一些背景图片
整合到
一张图片
文件中,再
background-position
精确的定位出背景图片的位置。
优点:减少服务器被请求次数,减轻服务器的压力,提高页面加载速度
实现步骤:
1.
创建盒子,
盒子尺寸
与
小图
尺寸
相同
2.
设置盒子
背景图
为精灵图
3. 添加
background-position
属性,改变
背景图位置
3.1
使用
PxCook
测量小图片
左上角坐标
3.2
取
负数
坐标为
background-position
属性值(向左上移动图片位置)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
*{
margin: 0;
padding: 0;
box-sizing: border-box;
}
li{
list-style: none;
}
.service{
margin: 100px auto;
width: 1190px;
height: 42px;
/* background-color: pink; */
}
.service ul{
display: flex;
}
.service li{
display: flex;
padding-left: 40px;
width: 297px;
height: 42px;
/* background-color: aqua; */
}
.service li h5{
margin-right: 10px;
width: 36px;
height: 42px;
background: url(./img/sprite.png) 0-192px; ;
}
.service li:nth-child(2) h5{
background-position: -41px -192px;
}
.service li:nth-child(3) h5{
background-position: -82px -192px;
}
.service li:nth-child(4) h5{
background-position: -123px -192px;
}
.service li p{
font-size: 18px;
color: #444;
font-weight: 700;
line-height: 42px;
}
</style>
</head>
<body>
<div class="service">
<ul>
<li>
<h5></h5>
<p>品类齐全,轻松购物</p>
</li>
<li>
<h5></h5>
<p>多仓直发,极速配送</p>
</li>
<li>
<h5></h5>
<p>正品行货,精致服务</p>
</li>
<li>
<h5></h5>
<p>天天低价,畅选无忧</p>
</li>
</ul>
</div>
</body>
</html>
2.2字体图标
字体图标:
展示的是图标,本质是字体
作用:在网页中添加
简单的、颜色单一
的小图标
优点 1、
灵活性
:灵活地修改样式,例如:尺寸、颜色等
2、轻量级
:体积小、渲染快、降低服务器请求次数
3、兼容性
:几乎兼容所有主流浏览器
4、使用方便
:先下载再使用
2.2.1下载字体
iconfont
图标库:
https://www.iconfont.cn/
登录
→
素材库
→
官方图标库
→
进入图标库
→
选图标,加入购物车
→
购物车,添加至项目,确定
→
下载至本地
2.2.2使用字体
1.
引入字体样式表(
iconfont.css
)
2.
标签使用字体图标类名
iconfont
:字体图标基本样式(字体名,字体大小等等)
icon-xxx
:图标对应的类名
2.2.3上传矢量图
作用:项目特有的图标上传到 iconfont 图标库,生成字体
上传步骤:上传 → 上传图标 → 选择 svg 矢量图,打开 → 提交 → 系统审核
3、CSS修饰样式
3.1垂直对齐方式
属性名:vertical-align
属性值 | 效果 |
baseline | 基线对齐(默认) |
top | 顶部对齐 |
middle | 居中对齐 |
bottom | 底部对齐 |
3.2过度
作用:可以为一个元素在不同状态之间切换的时候添加
过渡效果
属性名:
transition
(复合属性)
属性值:
过渡的属性
花费时间
(s)
提示:1、
过渡的属性可以是具体的
CSS
属性
2、也可以为
all
(两个状态属性值不同的所有属性,都产生过渡效果)
3、transition
设置给元素本身
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
.div{
width: 100px;
height: 100px;
background-color: pink;
transition: all 1s;
}
.div:hover{
width: 500px;
height: 500px;
background-color: green;
}
</style>
</head>
<body>
<div class="div">123</div>
</body>
</html>
3.3透明度
作用:设置
整个元素的透明度
(包含背景和内容)
属性名:
opacity
属性值:
0 – 1
1、0
:完全透明(元素不可见)
2、1
:不透明
3、0-1
之间小数:半透明
3.4光标类型cursor
作用:鼠标悬停在元素上时指针显示样式
属性名:cursor
属性值 | 效果 |
default | 默认值,通常是箭头 |
pointer | 小手效果,提示用户可以点击 |
text | 工字形,提示用户可以选择文字 |
move | 十字光标,提示用户可以移动 |