• R
    • T
    • L
    • B
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>css3 transforms 3D文字翻开</title>
</head> <body>
<div class="component">
<ul class="grid">
<li class="ot-letter-left"><span data-letter="R">R</span></li>
<li class="ot-letter-top"><span data-letter="T">T</span></li>
<li class="ot-letter-right"><span data-letter="L">L</span></li>
<li class="ot-letter-bottom"><span data-letter="B">B</span></li>
</ul>
</div>
<style>
ul,li{ list-style:none;}.grid {
list-style: outside none none;
margin: 0;
padding: 0;
position: relative;
width: 100%;
}
.grid li {
float: left;
font-size: 12em;
line-height: 1.5;
max-height: 290px;
position: relative;
text-align: center;
width: calc(100% / 6);
}
.grid li span {
color: hsla(0, 0%, 0%, 0.6);
display: inline-block;
font-weight: 900;
line-height: 1;
perspective: 550px;
position: relative;
transform-style: preserve-3d;
z-index: 1;
}
.grid li span::before, .grid li span::after {
bottom: 0;
content: attr(data-letter);
left: 0;
line-height: inherit;
position: absolute;
right: 0;
top: 0;
transition: all 0.3s ease 0s;
z-index: 2;
}
.grid li span::before {
color: hsla(0, 0%, 0%, 0.12);
text-shadow: none;
}
.ot-letter-left {
background: none repeat scroll 0 0 #e74d3c;
}
.ot-letter-left span {
text-shadow: 1px 4px 6px #e74d3c, 0 0 0 hsla(0, 0%, 0%, 0.3), 1px 4px 6px #e74d3c;
}
.ot-letter-left span::after {
color: #e74d3c;
}
.ot-letter-left:hover span::after {
color: #ea6253;
}
.ot-letter-right {
background: none repeat scroll 0 0 #ea6657;
}
.ot-letter-right span {
text-shadow: 1px 4px 6px #ea6657, 0 0 0 hsla(0, 0%, 0%, 0.3), 1px 4px 6px #ea6657;
}
.ot-letter-right span::after {
color: #ea6657;
}
.ot-letter-right:hover span::after {
color: #ed7a6e;
}
.ot-letter-top {
background: none repeat scroll 0 0 #ee7f72;
}
.ot-letter-top span {
text-shadow: 1px 4px 6px #ee7f72, 0 0 0 hsla(0, 0%, 0%, 0.3), 1px 4px 6px #ee7f72;
}
.ot-letter-top span::after {
color: #ee7f72;
}
.ot-letter-top:hover span::after {
color: #f09389;
}
.ot-letter-bottom {
background: none repeat scroll 0 0 #e95949;
}
.ot-letter-bottom span {
text-shadow: 1px 4px 6px #e95949, 0 0 0 hsla(0, 0%, 0%, 0.3), 1px 4px 6px #e95949;
}
.ot-letter-bottom span::after {
color: #e95949;
}
.ot-letter-bottom:hover span::after {
color: #eb6e60;
}
.ot-letter-left span::before, .ot-letter-left span::after {
transform-origin: 0 50% 0;
}
.ot-letter-left span::before {
transform: scale(1.08, 1) skew(0deg, 1deg);
}
.ot-letter-left span::after {
text-shadow: -1px 0 0 hsla(0, 100%, 100%, 0.1), 3px 0 1px hsla(0, 0%, 0%, 0.4);
transform: rotateY(-15deg);
}
.ot-letter-left:hover span::before {
transform: scale(0.85, 1) skew(0deg, 20deg);
}
.ot-letter-left:hover span::after {
transform: rotateY(-40deg);
}
.ot-letter-right span::before, .ot-letter-right span::after {
transform-origin: 100% 50% 0;
}
.ot-letter-right span::before {
transform: scale(0.85, 1) skew(0deg, 1deg);
}
.ot-letter-right span::after {
text-shadow: 1px 0 0 hsla(0, 100%, 100%, 0.1), -3px 0 1px hsla(0, 0%, 0%, 0.4);
transform: rotateY(15deg);
}
.ot-letter-right:hover span::before {
transform: scale(0.85, 1) skew(0deg, -20deg);
}
.ot-letter-right:hover span::after {
transform: rotateY(40deg);
}
.ot-letter-top span::before, .ot-letter-top span::after {
transform-origin: 50% 100% 0;
}
.ot-letter-top span::before {
transform: scale(1, 0.95) skew(-4deg, 0deg);
}
.ot-letter-top span::after {
text-shadow: 0 1px 0 hsla(0, 100%, 100%, 0.1), 0 -3px 1px hsla(0, 0%, 0%, 0.4);
transform: rotateX(-15deg);
}
.ot-letter-top:hover span::before {
transform: translateY(-0.05em) scale(1, 0.55) skew(-10deg, 0deg);
}
.ot-letter-top:hover span::after {
transform: translateY(-0.035em) rotateX(-40deg);
}
.ot-letter-bottom span::before, .ot-letter-bottom span::after {
transform-origin: 50% 0 0;
}
.ot-letter-bottom span::before {
transform: scale(1, 1.05) skew(4deg, 0deg);
}
.ot-letter-bottom span::after {
text-shadow: 0 -1px 0 hsla(0, 100%, 100%, 0.1), 0 3px 1px hsla(0, 0%, 0%, 0.4);
transform: rotateX(15deg);
}
.ot-letter-bottom:hover span::before {
transform: translateY(-0.035em) scale(1, 1.2) skew(10deg, 0deg);
}
.ot-letter-bottom:hover span::after {
transform: translateY(0.045em) rotateX(40deg);
}
</style>
</body>
</html>

CSS3 transforms 3D翻开的更多相关文章

  1. 纯css3 transforms 3D文字翻开翻转3D开放式效果

    详细内容请点击 在线预览立即下载 在本教程中,将基于CSS3创建的一个实现一个有趣的3D开放式效果.教程的目的是展示我们如何能带来一些生活上使用CSS3 . html: <ul class=&q ...

  2. 使用 CSS3 实现 3D 图片滑块效果【附源码下载】

    使用 CSS3 的3D变换特性,我们可以通过让元素在三维空间中变换来实现一些新奇的效果. 这篇文章分享的这款 jQuery 立体图片滑块插件,利用了 3D transforms(变换)属性来实现多种不 ...

  3. 使用CSS3实现3D图片滑块效果

    使用 CSS3 的3D变换特性,我们可以通过让元素在三维空间中变换来实现一些新奇的效果. 这篇文章分享的这款 jQuery 立体图片滑块插件,利用了 3D transforms(变换)属性来实现多种不 ...

  4. 使用 CSS3 实现 3D 图片滑块效果

    Slicebox – A fresh 3D image slider with graceful fallback 英文原文地址:http://tympanus.NET/codrops/2011/09 ...

  5. 网页特效:用CSS3制作3D图片立方体旋转特效

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  6. css3的3D和2D

    css3的3D旋转:rorateX():参数为正值时,盒子是围绕x轴,完成从Y轴正方向到Y轴负方向的旋转,视觉上呈现高度上的变化.rorateY():参数为正值时,盒子是围绕Y轴,完成从X轴正方向到X ...

  7. CSS3之3D变换实例详解

    CSS3的3D效果很赞,本文实现简单的两种3D翻转效果.首先看效果和源代码,文末是文绉绉的总结部分^_^ 以下CSS代码为了简洁没有添加前缀,请视情况自行添加(自动化时代推荐使用其他的一些方法,如gu ...

  8. 一款基于css3的3D图片翻页切换特效

    今天给大家分享一款基于css3的3D图片翻页切换特效.单击图片下方的滑块会切换上方的图片.动起你的鼠标试试吧,效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id= ...

  9. 基于css3的3D立方体旋转特效

    今天给大家分享一款基于css3的3D立方体旋转特效.这款特效适用浏览器:360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗. 不支持IE8及以下浏览器.效果图如下 : ...

随机推荐

  1. LINUX信息安全系统设计基础第一周学习总结

     Linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 二.Linux 与 Window ...

  2. UIPasteboard的使用

    剪贴板的使用以及自定义剪贴板. 系统剪贴板的直接调用 其实整个过程非常的简单,我就用我写的一个自定义UILable来说明调用系统剪贴板. 首先,因为苹果只放出来了 UITextView,UITextF ...

  3. 最长回文子串(Manacher算法)

    回文字符串,想必大家不会不熟悉吧? 回文串会求的吧?暴力一遍O(n^2)很简单,但当字符长度很长时便会TLE,简单,hash+二分搞定,其复杂度约为O(nlogn), 而Manacher算法能够在线性 ...

  4. IndexOf、LastIndexOf、Substring的用法

     String.IndexOf String.IndexOf 方法 (Char, Int32, Int32)报告指定字符在此实例中的第一个匹配项的索引.搜索从指定字符位置开始,并检查指定数量的字符位置 ...

  5. 学习之路三十五:Android和WCF通信 - 大数据压缩后传输

    最近一直在优化项目的性能,就在前几天找到了一些资料,终于有方案了,那就是压缩数据. 一丶前端和后端的压缩和解压缩流程 二丶优点和缺点 优点:①字符串的压缩率能够达到70%-80%左右 ②字符串数量更少 ...

  6. 项目笔记---Windows Service调用Windows API问题

    概要 此文来自于最近一个“诡异”的Windows API调用发现Windows Service在调用某些Windows API的过程中失效,在经过漫长的Baidu,之后终于在StackOverFlow ...

  7. Javascript基础系列之(三)数据类型 (布尔型 Boolean)

    javascript同样有布尔型,可选值,true or fasle. var marr = true ; document.write(typeof(marr) + "<br> ...

  8. Linux下巧用my.cnf,mysql连接服务器不需要输入账号密码信息

    Linux下每次用mysql连接连接服务器,常常用如下方式: [root@localhost ~]# mysql -hlocalhost -uroot -p11111 每次都输入用户名,密码,多折腾人 ...

  9. 常用js正则

    selectedName = selectedName.replace(/,$/, '');//去除尾部字符串 selectedCode = selectedCode.replace(/,$/, '' ...

  10. SQLHelper用到的配置文件格式

    格式要牢记 <configuration> <connectionStrings> <add name="dbConnStr" connectionS ...