栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > Html/CSS > CSS教程

了解::after,::before伪元素制作动画效果

CSS教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

了解::after,::before伪元素制作动画效果

使用自定义数据属性和伪元素

今天和大家分享一个使用Html5 自定义数据属性 和 CSS 的伪元素来实现一个简单的图片动画效果。
这也是我在使用了大半年Html5和css今天才发现的一个技巧,迫不及待的分享给慕课网的小伙伴,希望慕课网的小伙伴不要笑话。
相信大家都对 ::after,::before,这两个CSS伪元素都不陌生,这两个元素一般都要配合content属性来为该元素添加装饰内容。content这个虚拟元素默认是行内元素。对于我个人来说,常用的是这两种方法 content:”这是一段文字”或者是 content:” ”为空来修饰一个元素属性,但今天才发现content的功能远远不止于此。好了,直接来代码。




    
    
    
    body {
 font-family: '微软雅黑', Calibri, Arial, sans-serif;
 color: #89867e;
 background: #f9f9f9;
    }
    *, *:after, *:before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
    a {text-decoration: none;outline: none;}
    a img {border: none;}
    
    .caption {display: inline-block;position: relative;margin: 10px;}
    .caption img {display: block;max-width: 100%;}
    .caption::before,
    .caption::after {
 position: absolute;
 width: 100%;
 color: #fff;
 padding: 20px;
 opacity: 0;
 z-index: 1;
 -webkit-transition: opacity .3s;
    -moz-transition: opacity .3s;
  transition: opacity .3s;
    }
    .caption::before {
 content: attr(data-title); 
 top: 0;
 height: 30%;
 background: rgb(197, 71, 26);
 font-size: 40px;
 font-weight: 300; 
    }
    .caption::after {
 content: attr(data-description) ; 
 top: 30%;
 height: 70%;
 background: #a21f00;
 font-size: 16px;
 text-align: right;
    }
    .caption:hover::before,
    .caption:hover::after {
 opacity: 1;
    }
    
    .caption2{display: inline-block;position: relative;margin: 10px;overflow: hidden;background: #000;}
    .caption2 img{
 display: block;
 max-width: 100%;
 -webkit-transition:opacity 0.3s ease-in-out;
    -moz-transition:opacity 0.3s ease-in-out;
  transition:opacity 0.3s ease-in-out;
    }
    .caption2:hover img{
 opacity: .5;
    }
    .caption2::before,
    .caption2::after{
 position: absolute;
 background: #fff;
 width: 100%;
 height: 50%;
 color: #fff;
 padding: 20px;
 -webkit-transition:-webkit-transform 0.3s ease-in-out;
    -moz-transition:-moz-transform 0.3s ease-in-out;
  transition:transform 0.3s ease-in-out;
    }
    .caption2::before{
 content: attr(data-title);
 top: 0;
 z-index: 1;
 background: #B87046;
 font-size: 40px;
 font-weight: 300;
 -webkit-transform: translateY(-100%);
 -moz-transform: translateY(-100%);
 transform: translateY(-100%);
    }
    .caption2::after{
 content: attr(data-description);
 top: 50%;
 background: #E6453E;
 font-size: 16px;
 text-align: left;
 -webkit-transform: translateY(100%);
 -moz-transform: translateY(100%);
 transform: translateY(100%);
    }
    .caption2:hover::before,
    .caption2:hover::after{
 -webkit-transform: translateY(0);
 -moz-transform: translateY(0);
 transform: translateY(0);
    }

    
    span[data-descr] {
      position: relative;
      text-decoration: underline;
      color: #00F;
      cursor: help;
    }

    span[data-descr]:hover::after {
      content: attr(data-descr);
      position: absolute;
      left: 0;
      top: 24px;
      min-width: 200px;
      border: 1px #aaaaaa solid;
      border-radius: 10px;
      background-color: #ffffcc;
      padding: 12px;
      color: #000000;
      font-size: 14px;
      z-index: 1;
    }

    



    



    



这是上面代码的实现
我们有一些 文字 有一些 提示。
把鼠标放上去看看.

使用鼠标的:hover来出发过渡动画,过渡动画的实现主要由CSS3 的transition属性来实现的,不太了解的可以去《十天精通CSS3》的课程,有详细的讲解了transition实现过渡动画的实现,相信你比我更懂。

利用::after,::before可以做出浮动提示框(deom3),有兴趣的朋友可以去优化一下,做出漂亮的提示框。

然后我去MDN上查了一下content属性,不查还真不知道,原来content值有如此多种。很多都是我们不常用的,有需要的小伙伴可以试试,但我们开发上比较常用的还是之前提到的。

content: normal    
content: none      

content: 'prefix'  
content: url(http://www.example.com/test.html)    
content: chapter_counter  
content: attr(value string)      
content: open-quote
content: close-quote
content: no-open-quote
content: no-close-quote

content: open-quote chapter_counter     

content: inherit 

注:代码部分来源于 http://tympanus.net/codrops/2013/07/05/using-custom-data-attributes-and-pseudo-elements/

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/243441.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号