CSS实现一些效果

1、CSS滑动门技术

核心技术:Css的精灵(主要是背景位置)和盒子padding撑开宽度,以便能适应不同字段的数的导航栏。
一般的经典布局

<li>
	<a href="#">
		<span> 导航内容</span>
	</a>
</li>

总结:
1,a设置背景左侧,padding撑开合适的宽度。
2,span设置背景右侧,padding撑开合适宽度 剩下由文字继续撑开宽度。
3,之所以a包含span就是因为整个导航是可点击的。

2、鼠标经过显示边框

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      div img {
        width: 300px;
        height: 200px;
      }
      div{
        width: 300px;
        height: 200px;
        position: relative;
        margin: 20px auto;
      }
      div:hover::before{ /*鼠标经过之后 前面插入一个伪元素*/
        content: "";
        border: 10px solid rgba(255,255,255,.4);
        width: 100%;
        height: 100%;
        display: block; /*伪元素是行内元素 要转换成块级元素 才可以有宽高*/
        position: absolute;
        top:0;
        left: 0;
        box-sizing: border-box; /*设置box-sizing为border-box值 把padding和border都算入width里面*/
      }
    </style>
</head>
<body>
    <div>
      <img src="https://img10.360buyimg.com/pop/s590x470_jfs/t1/66632/27/5867/97611/5d400157E85345d78/d506e622fb78c807.jpg.webp" alt=""/>
    </div>
</body>
</html>

效果:
在这里插入图片描述

3、过度动画

translate:要过度的属性 花费时间 运动曲线 何时开始;如果有多组属性变化,用逗号隔开。

属性描述CSS
translation简写属性,用于在一个属性中设置四个过度属性3
translation-property规定应用过度的CSS属性的名称3
translation-duration定义过渡效果花费的时间,默认是03
translation-timing-function规定过渡效果的时间曲线。默认是“ease"3
translation-delay规定过渡效果何时开始3

translation-duration 花费时间 单位是秒
过渡效果时间曲线有:linear匀速 ease逐渐慢下来 ease-in 加速 ease-out 减速 ease-in-out先加速后减速
示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      div{
        width: 200px;
        height: 100px;
        background-color: pink;
        transition: width 0.6s ease 0s,height 0.3s ease 0s; /*注意过渡动画要写在div中而不是hover*/
      }
      div:hover{ /*鼠标经过变换大小*/
        width: 600px;
        height: 300px;
      }
    </style>
</head>
<body>
  <div></div>
</body>
</html>

开门大吉例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      section{
        width: 600px;
        height: 400px;
        margin: 100px auto;
        background-image: url("https://img10.360buyimg.com/pop/s590x470_jfs/t1/66632/27/5867/97611/5d400157E85345d78/d506e622fb78c807.jpg.webp");
        position: relative;
        border: 1px solid #000;
        perspective: 1500px;/*透视距离 就是眼睛与电脑的距离*/
      }
      .door-l,.door-r{
        width: 50%;
        height: 100%;
        position: absolute;
        top :0;
        background: red;
        transition: all 1s; /*所有的动画效果 在1秒内完成*/
      }
      .door-l{
        border-right: 1px solid #000000;
        left: 0;
        transform-origin: left; /*让左边的盒子绕着左边的线旋转*/
      }
      .door-r{
        border-left: 1px solid #000000;
        right: 0;
        transform-origin: right;/*让右边的盒子绕着右边的线旋转*/
      }
      .door-l::before,.door-r::before{
        content: "";
        position: absolute;
        top:50%;
        width: 20px;
        height: 20px;
        border: 1px solid #000000;
        border-radius: 50%;
        transform:translateY(50%);/*垂直居中*/
      }
      .door-l::before{
        right: 5px;
      }
      .door-r::before{
        left: 5px;
      }
      section:hover .door-l{
        transform: rotateY(-130deg);/*绕着Y轴旋转130度*/
      }
      section:hover .door-r{
        transform: rotateY(130deg);
      }
    </style>
</head>
<body>
  <section>
    <div class="door-l"></div>
    <div class="door-r"></div>
  </section>
</body>
</html>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值