热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

h5css3_03练习

基础案例01-轮播图进度条训练描述完成鼠标经过即可训练提示添加背景图片,设置初始化样式利用盒子,定位盒子的位置,设置li的宽和高设置span的小高度,设置span的伪元素跟span

基础案例


01-轮播图进度条


训练描述

完成鼠标经过即可


训练提示



  1. 添加背景图片,设置初始化样式

  2. 利用盒子,定位盒子的位置,设置li的宽和高

  3. 设置span的小高度,设置span的伪元素跟span一样大小,并且左下角对齐,宽度默认为0

  4. 当鼠标经过则给伪元素宽度


操作步骤



  1. 创建index文件,新建css文件夹,创建base.css文件并初始化基本代码,新建images文件夹


  2. 创建index.css保存至css文件夹,首页html文件引入css样式


  3. 编写结构代码



    • 创建父盒子,设置嵌套的盒子











    • 设置默认的样式

      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. 声明动画,让第一份盒子出去后,马上就回来,并且运动速率是匀速地

  3. 引入动画,重复播放



操作步骤

​ 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. 设置基本的图片,加入其他图片后进行旋转


操作步骤

​ 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);
}
}


推荐阅读
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 本文介绍了几种常用的图像相似度对比方法,包括直方图方法、图像模板匹配、PSNR峰值信噪比、SSIM结构相似性和感知哈希算法。每种方法都有其优缺点,适用于不同的应用场景。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 通过 CSS 中的 transition 属性,可以轻松实现元素状态变化时的平滑过渡效果。本文将详细介绍如何使用 transition 属性,并提供一个具体的示例。 ... [详细]
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 命令模式是一种行为设计模式,它将请求封装成一个独立的对象,从而允许你参数化不同的请求、队列请求或者记录请求日志。本文将详细介绍命令模式的基本概念、组件及其在实际场景中的应用。 ... [详细]
  • 解决 Windows Server 2016 网络连接问题
    本文详细介绍了如何解决 Windows Server 2016 在使用无线网络 (WLAN) 和有线网络 (以太网) 时遇到的连接问题。包括添加必要的功能和安装正确的驱动程序。 ... [详细]
  • 利用REM实现移动端布局的高效适配技巧
    在移动设备上实现高效布局适配时,使用rem单位已成为一种流行且有效的技术。本文将分享过去一年中使用rem进行布局适配的经验和心得。rem作为一种相对单位,能够根据根元素的字体大小动态调整,从而确保不同屏幕尺寸下的布局一致性。通过合理设置根元素的字体大小,开发者可以轻松实现响应式设计,提高用户体验。此外,文章还将探讨一些常见的问题和解决方案,帮助开发者更好地掌握这一技术。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 本文详细介绍了如何利用Duilib界面库开发窗体动画效果,包括基本思路和技术细节。这些方法不仅适用于Duilib,还可以扩展到其他类似的界面开发工具。 ... [详细]
author-avatar
手机用户2502909693
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有