作者:手机用户2502909693 | 来源:互联网 | 2023-09-18 09:30
基础案例01-轮播图进度条训练描述完成鼠标经过即可训练提示添加背景图片,设置初始化样式利用盒子,定位盒子的位置,设置li的宽和高设置span的小高度,设置span的伪元素跟span
基础案例
01-轮播图进度条
训练描述
完成鼠标经过即可
训练提示
- 添加背景图片,设置初始化样式
- 利用盒子,定位盒子的位置,设置li的宽和高
- 设置span的小高度,设置span的伪元素跟span一样大小,并且左下角对齐,宽度默认为0
- 当鼠标经过则给伪元素宽度
操作步骤
创建index文件,新建css文件夹,创建base.css文件并初始化基本代码,新建images文件夹
创建index.css保存至css文件夹,首页html文件引入css样式
编写结构代码
创建父盒子,设置嵌套的盒子
设置默认的样式
html, body {
height: 100%;
}
body {
background: url(../images/vivo-banner-z3ys-bg.jpg) no-repeat center top;
background-size: cover; /*覆盖*/
position: relative;
}
.progress {
position: absolute;
display: block;
width: 100%;
height: auto;
bottom: 40px;
text-align: center;
}
.progress li {
position: relative;
display: inline-block;
width: 40px;
height: 20px;
margin: 0 4px;
text-align: center;
z-index: 3;
cursor: pointer;
}
.progress li span {
position: absolute;
width: 40px;
height: 2px;
left: 50%;
margin-left: -20px;
bottom: 0;
background-color: rgba(0, 0, 0, .2);
-webkit-transition: all .3s .1s ease-out;
transition: all .3s .1s ease-out;
}
设置伪元素样式和鼠标经过样式
.progress li span::after {
content: "";
position: absolute;
width: 0;
height: 100%;
left: 0;
bottom: 0;
background-color: #666;
-webkit-transition: all .3s .1s ease-out;
transition: all .3s .1s ease-out;
}
.progress li:hover span {
height: 5px;
}
.progress li:hover span::after {
width: 100%;
-webkit-transition: width 5s ease;
transition: width 5s ease;
}
02- 热点新闻文字持续滚动
训练描述
这种方式一般叫做无缝滚动,通常需要两份内容,滚动停不下来
训练提示
先进行基本的布局,将内容复制一份,排列在一行
- 声明动画,让第一份盒子出去后,马上就回来,并且运动速率是匀速地
引入动画,重复播放
操作步骤
1,创建基本的结构
从前有座山,山里有座庙,庙里有个页面找呀找不到
从前有座山,山里有座庙,庙里有个页面找呀找不到
2,排版基本的样式
* {
margin: 0;
padding: 0;
}
html,body {
width: 100%;
height: 100%;
}
.container {
max-width: 640px;
height: 100%;
margin: 0 auto;
background-color: #f8f8f8;
}
.gonggao {
padding-top: 80px;
}
.gg-pic {
float: left;
width: 100px;
height: 40px;
background-color: sandybrown;
}
.gg-text {
margin-left: 100px;
height: 40px;
line-height: 40px;
font-size: 16px;
font-family: 'Microsoft Yahei';
overflow: hidden;
}
.gg-info {
width: 200%;
position: relative;
animation: gonggao 4s linear infinite;
}
.gg-info p {
position: absolute;
top: 0;
width: 50%;
}
.gg-info p:first-child {
left: 0;
}
.gg-info p:last-child {
left: 50%;
}
@keyframes gonggao {
from {
transform: translateX(0);
}
to {
transform: translateX(-50%);
}
}
扩展案例
03-防《迅雷》首页旋转图片
训练描述
1,导航底部的线,在鼠标经过的时候有一个以中间向两边打开的过渡
2,首屏图片周围有旋转的图片
训练提示
- 先完成导航,导航通过固定定位在最上面,鼠标经过大盒子还有背景颜色
- 设置基本的图片,加入其他图片后进行旋转
操作步骤
1,新建导航基本的结构
2,创建导航CSS样式
header {
position: fixed;
z-index: 100;
top: 0;
left: 0;
right: 0;
-webkit-transition: .3s ease;
transition: .3s ease;
}
header:hover {
background-color: rgba(0,0,0,.8);
}
.header-inner {
max-width: 1200px;
margin: 0 auto;
}
.xl-logo {
float: left;
margin-top: 14px;
width: 78px;
height: 37px;
}
.xl-logo img {
width: 100%;
height: 100%;
}
.xl-nav {
text-align: right;
white-space: nowrap;
}
.xl-nav li {
position: relative;
display: inline-block;
margin-left: 2.5%;
}
.xl-nav li a {
display: inline-block;
font-size: 14px;
color: #fff;
padding: 0 10px;
line-height: 64px;
}
.xl-nav li a::after {
opacity: 0;
position: absolute;
content: "";
left: 0;
right: 0;
bottom: 0;
width: 100%;
height: 2px;
-webkit-transform: scaleX(0);
-ms-transform: scaleX(0);
transform: scaleX(0);
-webkit-transition: all .4s ease;
transition: all .4s ease;
background-color: #fff;
}
.xl-nav li a:hover::after {
opacity: 1;
-webkit-transform: scaleX(1);
-ms-transform: scaleX(1);
transform: scaleX(1);
}
.xl-nav li.active a::after {
opacity: 1;
-webkit-transform: scaleX(1);
-ms-transform: scaleX(1);
transform: scaleX(1);
}
3,创建首屏图片的基本结构
4,声明首屏样式和图片位置
5,创建首屏图片基本样式
.home-inner {
position: relative;
width: 100%;
height: 1080px;
overflow: hidden;
margin-bottom: -152px;
background-color: #080325;
zoom: 0.6;
/*缩小当前的盒子*/
}
.home-inner-c {
position: relative;
top: 50%;
left: 50%;
margin: -540px 0 0 -960px;
width: 1920px;
height: 1080px;
background-image: url(../images/banner_bg.jpg);
background-repeat: no-repeat;
background-position: center top;
}
.banner-earth {
position: absolute;
top: 82px;
left: 0;
right: 0;
display: block;
margin: auto;
background: url(../images/earth01.png) no-repeat;
width: 730px;
height: 730px;
}
.banner-line {
position: absolute;
top: 70px;
left: 0;
right: 0;
width: 750px;
height: 750px;
margin: auto;
}
/*
A>B 表示选择A元素的所有子B元素(只选择第一代)
A B 表示选择A元素的所有子B元素(选择在A标签里面所有的B元素,不止第一代)
A+B表示HTML中紧随A的B元素:用一个结合符只能选择两个相邻兄弟中的第二个元素
*/
.banner-line > i {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
display: block;
margin: auto;
}
6,创建两个旋转盒子的样式和动画
.circle01 {
background-image: url(../images/spr_bannerPathway.png);
background-position: -2436px 0px;
background-repeat: no-repeat;
width: 719px;
height: 719px;
-webkit-animation: ani_line 30s linear infinite;
animation: ani_line 30s linear infinite;
}
.circle02 {
background-image: url(../images/spr_bannerPathway.png);
background-position: -2436px -724px;
background-repeat: no-repeat;
width: 648px;
height: 674px;
animation: ani_line 3s steps(180) infinite reverse;
}
@keyframes ani_line {
0% {
-webkit-transform: none;
transform: none;
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}