原文地址:https://segmentfault.com/a/1190000015607676

学习后效果地址:https://scrimba.com/c/c8PQ3PTB

感想:利用css的制图、css的过渡transition等

HTML code:

<!-- 定义一个desk容器:包含纸张、尺子、笔记本、日历、铅笔 -->
<div class="desk">
<span class="paper"></span>
<span class="ruler"></span>
<span class="notebook"></span>
<span class="calendar"></span>
<span class="pencil"></span>
</div>

CSS code:

html, body {
margin:;
padding:;
}
/* 设置body的子元素水平垂直居中 */
body{
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
}
/* 设置desk的样式 */
.desk{
position:relative;
/* font-size:12;这是默认值,只可增大,同时影响desk的width、height */
font-size: 12px;
width: 35em;
height: 35em;
/* border: 1px solid black; */
--b: 0.5em solid darkslategray;
}
/* 直接定义desk的子元素共有属性 */
.desk * {
position: absolute;
border: var(--b);
/* 设置width、height的值包括border、padding、content */
box-sizing: border-box;
/* 过渡时间 */
transition: 1s;
}
.desk *::before,
.desk *::after{
content: '';
position: absolute;
box-sizing: border-box;
}
/* 画出纸张的轮廓 */
.paper{
width: 12em;
height: 15em;
border-radius: 0 0 0 1.5em;
color: skyblue;
background-color: currentColor;
top: 7em;
left: 2em
}
/* 设置paper纸张左侧卷曲的部分 */
.paper::before{
width: 2em;
height: 16em;
background-color: currentColor;
border: var(--b);
border-radius: 1.5em 0;
left: -0.5em;
bottom: 0.8em;
filter: saturate(150%) brightness(0.9);
}
.paper::after{
width: 2em;
height: 2.5em;
background-color: currentColor;
border: var(--b);
border-radius: 1.75em 0 0 1.75em;
border-right: none;
bottom: -0.5em;
left: -0.5em;
}
/* 增加鼠标悬停效果 */
.desk:hover .paper{
top:;
left:;
}

76.纯 CSS 创作一组单元素办公用品的更多相关文章

  1. 前端每日实战:76# 视频演示如何用纯 CSS 创作一组单元素办公用品(内含2个视频)

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

  2. 69.纯 CSS 创作一个单元素抛盒子的 loader

    原文地址:https://segmentfault.com/a/1190000015470411#articleHeader0 HTML code: <div class="loade ...

  3. 如何用纯 CSS 创作一个单元素抛盒子的 loader

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

  4. 前端每日实战:69# 视频演示如何用纯 CSS 创作一个单元素抛盒子的 loader

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

  5. 如何用纯 CSS 创作一组昂首阔步的圆点

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

  6. 炫!一组单元素实现的 CSS 加载进度提示效果

    之前的文章个大家分享过各种类型的加载效果(Loading Effects),这里再给大家奉献一组基于单个元素实现的 CSS 加载动画集合.这些加载效果都是基于一个 DIV 元素实现的,十分强悍. 温馨 ...

  7. 纯CSS实现表单验证

    ladies and 乡亲们,表单验证你在做吗?客户端or服务器端,javascript or jquery,动手写 or 使用插件,今天我们来探索下使用纯css实现表单验证,借以学习css sele ...

  8. 1.纯 CSS 创作一个按钮文字滑动特效 + 弹幕(残缺)

    原文地址:1# 视频演示如何用纯 CSS 创作一个按钮文字滑动特效 扩展后地址:https://scrimba.com/c/cJkzMfd HTML代码: <html> <head& ...

  9. 3.纯 CSS 创作一个容器厚条纹边框特效

    原文地址:3.纯 CSS 创作一个容器厚条纹边框特效 没有啥好点子呀,不爽 HTML代码: <div class="box"> <div class=" ...

随机推荐

  1. webpack学习(三)配置loader

    首先搞清楚两个问题: 1 什么是loader? 2 为啥要用各种loader 答: loader 就是各种打包规则,为什么要用是显而易见的,因为webpack还没智能到给它什么文件都能打包,对于js文 ...

  2. 【u232】围棋游戏

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 为了增强幼儿园小朋友的数数能力,小虎老师给了一个家庭游戏作业.让小虎那一块空的围棋盘,随机在一些方格中 ...

  3. H3C 静态黑洞路由应用

  4. java 文件过滤器 java.io.FilenameFilter

    File 类里有方法: String[] list(FilenameFilter filter)    返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录. File ...

  5. UVA 437 "The Tower of Babylon" (DAG上的动态规划)

    传送门 题意 有 n 种立方体,每种都有无穷多个. 要求选一些立方体摞成一根尽量高的柱子(在摞的时候可以自行选择哪一条边作为高): 立方体 a 可以放在立方体 b 上方的前提条件是立方体 a 的底面长 ...

  6. 2019-9-24-dotnet-remoting-抛出异常

    title author date CreateTime categories dotnet remoting 抛出异常 lindexi 2019-09-24 15:39:50 +0800 2018- ...

  7. [vue/no-parsing-error] Parsing error: x-invalid-end-tag.eslint-plugin-vue

    [vue/no-parsing-error] Parsing error: x-invalid-end-tag.eslint-plugin-vue   解决方案:vscode里面选择设置->搜索 ...

  8. 在网上找到的一些Java封装的utils类

    这是网址:https://github.com/hanyunpeng0521/utils

  9. 19.yield和send的区别

    转载:https://www.jianshu.com/p/ccb5e7da3fd8 https://www.cnblogs.com/xhcdream/p/8304953.html https://ww ...

  10. java中把某个字符串中的单引号替换成双引号

    String regexp = "\'";String str = "'good'";System.out.println("替换前:" + ...