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属性不写的话,是不会有东西出来的。

  • 相关阅读:
    LeetCode 1356. 根据数字二进制下1的数目排序
    Ubuntu LaTeX 中文环境配置 与 VSCode LaTeX Workshop
    LeetCode 57. 插入区间
    VSCode Ubuntu下调试失败 无法打开 libc-start.c raise.c等
    LeetCode 30. 串联所有单词的子串
    日期处理函数
    Stream 和 byte[] 之间的转换
    Math.Round {实现四舍五入的小技巧}
    重写alert弹窗
    js轮播图
  • 原文地址:https://www.cnblogs.com/thestudy/p/5601820.html
Copyright © 2011-2022 走看看