• CSS3实战开发 表单发光特效实战开发


    首先,我们先准备好html代码:

    复制代码
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta name="keywords" content="css3教程,css3实战开发,css3案例,css3特效,互联网" > <link rel="stylesheet" href="styles.css"> <title>CSS3实战开发之发光控件的实现</title> </head> <body> <div class="container"> <form method="post" action="http://www.itdriver.cn"> <div class="input-group"> <input type="text" placeholder="请告诉我,你在寻找什么" > <span class="input-group-btn"> <button class="btn" type="submit">立即搜索</button> </span> </div> </form> </div> </body> </html>
    复制代码

    此时,我们先看一下此时未加样式时的运行效果:

    接着我们再设置页面外部容器的样式:

    复制代码
    @charset "utf-8";
    *{ /*清除所有元素默认内边距和外边距*/
        padding:0;
        margin:0;    
    }
    
    /* 设置外部容器样式 开始 */
    .container{ 
        80%;
        margin:auto;    
    }
    
    .container form{
        margin:10em;    
    }
    
    form { font-size:.8em; }
    /* 设置外部容器样式 结束 *
    复制代码

    在修改完表单布局以及内外边距后,我们再设置表单组input-group及其内部元素的样式:

    复制代码
    .input-group input { /*设置表单组中输入框的样式*/
        height:3em;
        line-height:3em;
        20em;
        
        border:1px solid #cccccc;
        
        border-top-left-radius:1.5em;
        border-bottom-left-radius:1.5em;
        padding-left:1.2em;
    }
    
    .btn{ /* 设置按钮样式的内边距 */
        padding:0 .5em;
    }
    
    
    .input-group .input-group-btn .btn{ /* 设置表单组中按钮的样式 */
        height:3.12em;
        border:1px solid #cccccc;
        
        border-top-right-radius:1.5em;
        border-bottom-right-radius:1.5em;
        
        border-left:none;
    }
    
    /*设置表单组元素统一向左浮动*/
    .input-group input,.input-group button{
        float:left;
    }
    复制代码

    此时我们来预览一下表单应用样式后的效果:

    从效果图我们可以发现,搜索表单组的样式已经出来了,但是并不是我们期待的发光效果。

    我们要知道如果单凭CSS2或CSS1,是实现不了发光动画效果的,这个时候我们可以借助CSS3的动画效果。

    现在我们利用CSS3新增动画特性,定义动画帧:

    复制代码
    /* 定义动画帧 开始 */
    @-webkit-keyframes glow {
        0% {
            border-color: #cccccc;
            box-shadow: 0 0 5px rgba(102,153,255,.2), inset 0 0 5px rgba(102,153,255,.1);
        }    
        100% {
            border-color: #66FFFF;
            box-shadow: 0 0 20px rgba(102,153,255,.6), inset 0 0 10px rgba(102,153,255,.4);
        }
    }
    
    @-moz-keyframes glow {
        0% {
            border-color: #cccccc;
            box-shadow: 0 0 5px rgba(102,153,255,.2), inset 0 0 5px rgba(102,153,255,.1);
        }    
        100% {
            border-color: #66FFFF;
            box-shadow: 0 0 20px rgba(102,153,255,.6), inset 0 0 10px rgba(102,153,255,.4);
        }
    }
    
    @-o-keyframes glow {
        0% {
            border-color: #cccccc;
            box-shadow: 0 0 5px rgba(102,153,255,.2), inset 0 0 5px rgba(102,153,255,.1);
        }    
        100% {
            border-color: #66FFFF;
            box-shadow: 0 0 20px rgba(102,153,255,.6), inset 0 0 10px rgba(102,153,255,.4);
        }
    }
    
    @-ms-keyframes glow {
        0% {
            border-color: #cccccc;
            box-shadow: 0 0 5px rgba(102,153,255,.2), inset 0 0 5px rgba(102,153,255,.1);
        }    
        100% {
            border-color: #66FFFF;
            box-shadow: 0 0 20px rgba(102,153,255,.6), inset 0 0 10px rgba(102,153,255,.4);
        }
    }
    
    @keyframes glow {
        0% {
            border-color: #cccccc;
            box-shadow: 0 0 5px rgba(102,153,255,.2), inset 0 0 5px rgba(102,153,255,.1);
        }    
        100% {
            border-color: #66FFFF;
            box-shadow: 0 0 20px rgba(102,153,255,.6), inset 0 0 10px rgba(102,153,255,.4);
        }
    }
    /* 定义动画帧 结束 */
    复制代码

    我在一开始也讲了,当表单组中的元素或组件获得焦点的时候,该元素或组件有发光效果。

    此时我们给表单组中的元素应用获得焦点时的样式:

    复制代码
    .input-group input:focus,
    .input-group .input-group-btn .btn:focus{ /*当表单组中组件获得焦点的时候,执行动画*/
        outline:none;
        -webkit-animation: glow 800ms ease-out infinite alternate;
        -moz-animation: glow 800ms ease-out infinite alternate;
        -o-animation: glow 800ms ease-out infinite alternate;
        -ms-animation: glow 800ms ease-out infinite alternate;
        animation: glow 800ms ease-out infinite alternate;
    }
    复制代码
  • 相关阅读:
    从带Per-Building数据的KML/COLLADA中创建3D Tiles
    将Cesium Tools用于更好的构建管理
    使用Cesium Stories在3D Tilesets中检查Features
    使用Cesium Stories来可视化时序数据
    使用3D Tiles Overview学习3D Tiles
    使用EdgyGeo Cesium工具查询下载数据集
    探索新冠肺炎(COVID-19)对全球航班的影响
    [一]Cesium利其器——Visual Studio Code
    Cesium中文网的朋友们
    Gym 101908C
  • 原文地址:https://www.cnblogs.com/axl234/p/3914045.html
Copyright © 2020-2023  润新知