效果预览

按下右侧的“点击预览”按钮在当前页面预览,点击链接全屏预览。

https://codepen.io/zhang-ou/pen/deVgRM

可交互视频教程

此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。

请用 chrome, safari, edge 打开观看。

https://scrimba.com/c/cb6pkUE

源代码下载

请从 github 下载。

https://github.com/comehope/front-end-daily-challenges/tree/master/014-three-languages-for-web-development

代码解读

定义 dom,一个容器中包含一个 span,span 内有文字:

  1. <div class="book">
  2. <span>HTML</span>
  3. </div>

居中显示:

  1. html, body {
  2. width: 100%;
  3. height: 100%;
  4. display: flex;
  5. align-items: center;
  6. justify-content: center;
  7. background: linear-gradient(to top left, white, dimgray);
  8. }

画出书的正面:

  1. .book {
  2. width: 12rem;
  3. height: 18rem;
  4. background: linear-gradient(navy, deeppink, tomato);
  5. transform: skewY(-10deg);
  6. }

画出书的侧面:

  1. .book {
  2. position: relative;
  3. }
  4. .book::before {
  5. content: '';
  6. position: absolute;
  7. width: 1.5rem;
  8. height: 100%;
  9. background: linear-gradient(navy, deeppink, tomato);
  10. top: 0;
  11. left: -1.5rem;
  12. transform: skewY(45deg);
  13. transform-origin: right;
  14. filter: brightness(0.6);
  15. }

画出书的顶面:

  1. .book::after {
  2. content: '';
  3. position: absolute;
  4. width: 100%;
  5. height: 1.5rem;
  6. background: white;
  7. top: -1.5rem;
  8. left: 0;
  9. transform-origin: bottom;
  10. transform: skewX(45deg);
  11. filter: brightness(0.9);
  12. }

给图书加阴影,让它显得更立体:

  1. .book {
  2. box-shadow: -10px 5px 30px rgba(0, 0, 0, 0.5);
  3. }

设置文字样式:

  1. .book span {
  2. color: whitesmoke;
  3. font-size: 2.2rem;
  4. font-family: sans-serif;
  5. display: block;
  6. background: silver;
  7. text-align: center;
  8. height: 8rem;
  9. margin-top: 5rem;
  10. padding-top: 2rem;
  11. box-sizing: border-box;
  12. text-shadow: -2px 2px 10px rgba(0, 0, 0, 0.3);
  13. position: absolute;
  14. width: 100%;
  15. }

画出文字侧面,与画图书侧面的方法相似:

  1. .book span {
  2. position: relative;
  3. }
  4. .book span::before {
  5. content: '';
  6. position: absolute;
  7. width: 1.5rem;
  8. height: 100%;
  9. background: silver;
  10. top: 0;
  11. left: -1.5rem;
  12. transform-origin: right;
  13. transform: skewY(45deg);
  14. filter: brightness(0.6);
  15. }

文字下增加一行小字号文字:

  1. .book span::after {
  2. content: 'development';
  3. display: block;
  4. font-size: 1rem;
  5. }

dom 改为 3 本书,包含在一个容器之中,并且分别命名样式类:

  1. <div class="books">
  2. <div class="book html">
  3. <span>HTML</span>
  4. </div>
  5. <div class="book css">
  6. <span>CSS</span>
  7. </div>
  8. <div class="book js">
  9. <span>JavaScript</span>
  10. </div>
  11. </div>

3 本书布局:

  1. .books {
  2. display: flex;
  3. width: calc(12rem * 3 + 3rem * 2);
  4. justify-content: space-between;
  5. margin-top: 6rem;
  6. }
  7. .book:nth-child(2) {
  8. top: -3rem;
  9. }
  10. .book:nth-child(3) {
  11. top: -6rem;
  12. }

3 本书配色:

  1. .book.html span,
  2. .book.html span::before {
  3. background: orange;
  4. }
  5. .book.css span,
  6. .book.css span::before {
  7. background: yellowgreen;
  8. }
  9. .book.js span,
  10. .book.js span::before {
  11. background: royalblue;
  12. }

设置 3 本书的小字号文字:

  1. .book.html span:after {
  2. content: '<devolopment />';
  3. }
  4. .book.css span::after {
  5. content: '.devolopment::';
  6. }
  7. .book.js span::after {
  8. content: '{ devolopment }';
  9. }

最后,为图书增加鼠标划过效果:

  1. .book {
  2. transition: 0.3s;
  3. }
  4. .book:hover {
  5. margin-top: -1.5rem;
  6. }

大功告成!

知识点

前端每日实战:14# 视频演示如何用纯 CSS 创作一种侧立图书的特效的更多相关文章

  1. 如何用纯 CSS 创作一种侧立图书的特效

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/deVgRM 可交互视频教程 此视 ...

  2. 前端每日实战:72# 视频演示如何用纯 CSS 创作气泡填色的按钮特效

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/eKqZjy 可交互视频 此视频是可 ...

  3. 前端每日实战:23# 视频演示如何用纯 CSS 创作一个菜单反色填充特效

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览.https://codepen.io/comehope/pen/qYMoPo 可交互视频教程 此视频是 ...

  4. 前端每日实战:24# 视频演示如何用纯 CSS 创作出平滑的层叠海浪特效

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/JvmBdE 可交互视频教程 此视频 ...

  5. 前端每日实战:27# 视频演示如何用纯 CSS 创作一个精彩的彩虹 loading 特效

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/vjvoow 可交互视频教程 此视频 ...

  6. 前端每日实战:12# 视频演示如何用纯 CSS 创作一种文字断开的交互特效

    效果预览 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/LmjNgL 可交互视频教程 此视频是可以交 ...

  7. 前端每日实战:19# 视频演示如何用纯 CSS 创作一种有削铁如泥感觉的菜单导航特效

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/XqYroe 可交互视频教程 此视频 ...

  8. 前端每日实战:4# 视频演示如何用纯 CSS 创作一个金属光泽 3D 按钮特效

    效果预览 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/full/MGeRRO 可交互视频教程 此视频是可以 ...

  9. 前端每日实战:7# 视频演示如何用纯 CSS 创作一个 3D 文字跑马灯特效

    效果预览 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/GdrrZq 可交互视频教程 此视频是可以交 ...

随机推荐

  1. MS入门学习笔记

    1.建立晶体:选择晶系,添加原子:2.导入系统晶体文件:3.建立分子molecule,画原子:4.计算简单分子molecule:注意事项: 1)做了一个H2O分子,接下来要做一个“立体壳子”,因为CA ...

  2. 【c++进阶:c++ 顺序容器vector,string,deque,list,forward_list,array常用性质】

    常用5种顺序容器性质: https://blog.csdn.net/oil_you/article/details/82821833 关于deque https://www.cnblogs.com/L ...

  3. 对vi/vim的一些看法

    早在网上看到别人如何把vi吹得神乎其神了,决定试着用一下.不过还是发现太麻烦了,因为我是在windows系统下面的,网络的原因无法使用linux系统(无校园电信客户端). 首先vim只是一个文本编辑器 ...

  4. node初始化配置no

    原文链接:https://blog.csdn.net/jianleking/article/details/79130667 引言: 很久没有在windows上配过node, 记得以前node环境变量 ...

  5. Apache配置文件介绍

    一.配置文件存放位置 apache配置文件名为httpd.conf 1.yum安装 yum安装后,apache配置文件httpd.conf存放在目录/etc/httpd/conf下 2.源码编译安装 ...

  6. 《Using Python to Access Web Data》 Week5 Web Services and XML 课堂笔记

    Coursera课程<Using Python to Access Web Data> 密歇根大学 Week5 Web Services and XML 13.1 Data on the ...

  7. windows环境下PostgreSQL的安装

    1.首先在如下链接下载PostgreSQL的压缩包,我这里下载的是postgresql-12.1-1-windows-x64-binaries.zip. https://www.enterprised ...

  8. Android - Android 面试题集 -- Android 部分答案

    2.1 Activity1.Activity是什么?Activity是Android的四大组件之一.是用户操作的可视化界面:它为用户提供了一个完成操作指令的窗口.当我们创建完毕Activity之后,需 ...

  9. 【Qt开发】【Linux开发】Qt程序在嵌入式设备(arm) 上运行,鼠标擦除界面的解决方案

    笔者最近想在arm开发板上,开发一个应用程序,经过网上查询发现qt作为跨平台开发软件很不错,于是便选择了qt开发,笔者的qt版本是4.8.6的.由于arm的主频太低,在arm上进行开发编译,效率会大大 ...

  10. 【Linux-驱动】驱动策略----自旋锁

    自旋锁 自旋锁最多只能被一个内核任务持有.要是锁未被持有,请求它的内核任务便会立即得到它并继续执行.如果一个内核任务试图请求一个已经被别的内核任务持有的自旋锁,那么CPU就会一直尽心循环---旋转-- ...