一. a标签的伪类选择器
1.通过我们的观察发现a标签存在一定的状态
- 1.1默认状态, 从未被访问过
- 1.2被访问过的状态
- 1.3鼠标长按状态
- 1.4鼠标悬停在a标签上状态
2.什么是a标签的伪类选择器?
- a标签的伪类选择器是专门用来修改a标签不同状态的样式的
3.格式
- :link 修改从未被访问过状态下的样式
- :visited 修改被访问过的状态下的样式
- :hover 修改鼠标悬停在a标签上状态下的样式
- :active 修改鼠标长按状态下的样式
a:link{
color: tomato;
}
a:visited{
color: green;
}
a:hover{
color: orange;
}
a:active{
color: pink;
}
4.注意点
- 4.1a标签的伪类选择器可以单独出现也可以一起出现
- 4.2a标签的伪类选择器如果一起出现, 那么有严格的顺序要求
编写的顺序必须要个的遵守爱恨原则 love hate - 4.3如果默认状态的样式和被访问过状态的样式一样, 那么可以缩写
a{
// 简写格式
color: green;
}
a:hover{
color: orange;
}
a:active{
color: pink;
}
二 :a标签的伪类选择器练习
1.在企业开发中编写a标签的伪类选择器最好写在标签选择器的后面
2.在企业开发中和a标签盒子相关的属性都写在标签选择器中(显示模式/宽度/高度/padding/margin)
3.在企业开发中和a标签文字/背景相关的都写在伪类选择器中
ul li a{
width: 120px;
height: 40px;
display: inline-block;
}
ul li a:link{
background-color: pink;
color: white;
text-decoration: none;
}
ul li a:hover{
color: red;
background-color: #ccc;
}
ul li a:active{
color: yellow;
}
三. 过渡模块
div{
width: 100px;
height: 50px;
background-color: red;
/*告诉系统哪个属性需要执行过渡效果*/
transition-property: width, background-color;
/*告诉系统过渡效果持续的时长*/
transition-duration: 5s, 5s;
/*transition-property: background-color;*/
/*transition-duration: 5s;*/
}
/*:hover这个伪类选择器除了可以用在a标签上, 还可以用在其它的任何标签上*/
div:hover{
width: 300px;
background-color: blue;
}
![过渡模块
](http://upload-images.jianshu.io/upload_images/1482909-de9fd4fa86de87cc.gif?imageMogr2/auto-orient/strip)
######1,过渡三要素
1.1必须要有属性发生变化
1.2必须告诉系统哪个属性需要执行过渡效果
1.3必须告诉系统过渡效果持续时长
######2.注意点
当多个属性需要同时执行过渡效果时用逗号隔开即可
transition-property: width, background-color;
transition-duration: 5s, 5s;
###四. 过渡模块-其它属性
> transition-delay: 2s; //告诉系统延迟多少秒之后才开始过渡动画
transition-timing-function: linear; //告诉系统过渡动画的运动的速度
###### transition-timing-function: 有五个取值 linear, ease , ease-in , ease-out , ease-in-out
![transition-timing-function](http://upload-images.jianshu.io/upload_images/1482909-22e31879960d948d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
###五. 过渡连写格式
>######1.过渡连写格式
transition: 过渡属性 过渡时长 运动速度 延迟时间;
transition: background-color 5s linear 0s;
>######2.过渡连写注意点
2.1和分开写一样, 如果想给多个属性添加过渡效果也是用逗号隔开即可
transition: width 5s linear 0s,background-color 5s linear 0s;
2.2连写的时可以省略后面的两个参数, 因为只要编写了前面的两个参数就已经满足了过渡的三要素
transition: width 5s,background-color 5s,height 5s;
2.3如果多个属性运动的速度/延迟的时间/持续时间都一样, 那么可以简写为:
transition:all 5s;
###六. 编写过渡套路
>1.1不要管过渡, 先编写基本界面
1.2修改我们认为需要修改的属性
1.3再回过头去给被修改属性的那个元素添加过渡即可
###七. 弹性效果
<html lang="en">
<head>
<meta charset="UTF-8">
<title>91-过渡模块-弹性效果</title>
<style>
{
margin: 0;
padding: 0;
}
div{
height: 100px;
background-color: red;
margin-top: 100px;
text-align: center;
line-height: 100px;
}
div span{
font-size: 80px;
/transition-property: margin;/
/transition-duration: 3s;*/
transition: margin 3s;
}
div:hover span{
margin: 0 20px;
}
</style>
</head>
<body>
<div>
<span>呼</span>
<span>伦</span>
<span>贝</span>
<span>尔</span>
<span>大</span>
<span>草</span>
<span>原</span>
<span>儿</span>
</div>
</body>
</html>
![弹性效果](http://upload-images.jianshu.io/upload_images/1482909-a162ac8d89d6f8e5.gif?imageMogr2/auto-orient/strip)
### 八. 手风琴效果
<html lang="en">
<head>
<meta charset="UTF-8">
<title>92-过渡模块-手风琴效果</title>
<style>
{
margin: 0;
padding: 0;
}
ul{
width: 960px;
height: 300px;
margin: 100px auto;
border: 1px solid #000;
overflow: hidden;
}
ul li{
list-style: none;
width: 160px;
height: 300px;
background-color: red;
float: left;
/border: 1px solid #000;/
/box-sizing: border-box;/
/transition-property: width;/
/transition-duration: 0.5s;*/
transition: width 0.5s;
}
ul:hover li{
width: 100px; //ul 被hover 所得li宽度都变成100px
}
ul li:hover{
width: 460px; //更具体,优先级更高 只有被hover 的li 才会变宽
}
</style>
</head>
<body>
<ul>
<li>
<li>
<li>
<li>
<li>
<li>
</ul>
</body>
</html>
![手风琴效果](http://upload-images.jianshu.io/upload_images/1482909-f87a1cab40520713.gif?imageMogr2/auto-orient/strip)