zoukankan      html  css  js  c++  java
  • 伪类before和after

      有时候,我们需要大量的重复代码去实现一个非常简单的功能,这不仅浪费时间,而且效率低下,例如:

    <div class="aa">你好</div>
    <div class="aa">我好</div>
    <div class="aa">大家好</div>
    <div class="aa">前面和后面</div>

    <div class="aa">你好</div>
    <div class="aa">我好</div>
    <div class="aa">大家好</div>
    <div class="aa">前面和后面</div>

    <div class="aa">你好</div>
    <div class="aa">我好</div>
    <div class="aa">大家好</div>
    <div class="aa">前面和后面</div>

    <div class="aa">你好</div>
    <div class="aa">我好</div>
    <div class="aa">大家好</div>
    <div class="aa">前面和后面</div>

      我们如果需要为每一个div添加一个动态的括号滑动出现和消失的css3动画,那么,接下来可以想象就是不停地对每一个div 的前面和后面或者里面添加两个div。这样费事费力的差事每一个会偷懒的程序猿都不会干的,于是,这里我们可以用伪类轻松解决。

      在css中,为aa添加两个伪类——

    .aa::before{
    display: inline-block;
    content: '[';
    transform: translateX(30px);
    opacity: 0.1;

    }
    .aa::after{
    display: inline-block;
    content: ']';
    transform: translateX(-30px);
    opacity: 0.1;

    }

    仅仅是这样就足够了,可以看到每一个aa 的div前后都有了括号(调一下opacity可以看的更清楚)。

    如果需要动态效果,也只需要——

    .aa::before,.aa::after{
    transition-property: transform opacity ;
    transition-duration: 0.8s;
    transition-timing-function: linear;
    }

    .aa:hover::before,:hover::after{
    transform: rotateX(0);
    opacity: 1;
    }

    便可以轻松愉快的搞定了。

    较为注意的是,使用transfrom:rotateX的时候,如果它们不是行内元素就可能无效。

    还有,如果content属性不写的话,是不会有东西出来的。

  • 相关阅读:
    MySQL Date函数的正确用法
    CentOS tree命令详解
    VMware虚拟机的CentOS无法上网的解决方法
    CentOS安装emacs24.2命令
    【复杂】CentOS 6.4下PXE+Kickstart无人值守安装操作系统
    CentOS定位、查找文件的命令
    CentOS查找目录或文件
    CentOS安装Emacs文本编辑器
    centos6.5的软件安装,用户管理等
    CentOS安装OpenOffice
  • 原文地址:https://www.cnblogs.com/thestudy/p/5601820.html
Copyright © 2011-2022 走看看