ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

76.纯 CSS 创作一组单元素办公用品

2019-06-02 09:38:57  阅读:320  来源: 互联网

标签:em width height 76 paper desk 办公用品 border CSS


原文地址: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: 0;
    padding: 0;
}
/* 设置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: 0;
    left: 0;
}

 

标签:em,width,height,76,paper,desk,办公用品,border,CSS
来源: https://www.cnblogs.com/FlyingLiao/p/10961970.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有