ICode9

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

用CSS border画一个铅笔

2021-10-30 22:34:53  阅读:236  来源: 互联网

标签:em width color 1em solid 铅笔 border CSS


先上效果图

 

 该例子来自 CSS世界 的书中项目

总结技巧如下:

  1. 巧用 border 和 伪元素 来 绘制层叠效果。
  2. 使用 transform-origin 来改变元素的轴心
  3. 使用 filter:drop-shadow 绘制 物体 阴影

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>铅笔</title>
    <style>
        .pencil {
            display: flex;
            width: 50em;
            height: 3.5em;
            font-size: 12px;

            margin: 0 auto;
            padding-top: 100px;

            filter: drop-shadow(0.4em 0.8em 0.3em grey);
        }
        .taper {
            width: 4em;
            /* background-color: burlywood; */
        }

        .taper::before {
            content: '';
            position: absolute;
            border-style: solid;
            border-width: calc(3.5em / 2) 4em calc(3.5em / 2) 0;
            border-color: transparent;
            border-right-color: burlywood;
        }

        .taper::after {
            content: '';
            position: absolute;
            border-style: solid;
            border-width: calc(3.5em / 2) 4em calc(3.5em / 2) 0;
            border-color: transparent;
            border-right-color: black;
            transform-origin: left;
            transform: scale(0.3);
        }

        .barrel {
            width: 40em;
            background-color: green;
            border-top: 1em solid forestgreen;
            border-bottom: 1em solid darkgreen;

            color: silver;
            line-height: 1.5em;
            text-align: center;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            
        }
        .eraser {
            position: relative;
            width: 6em;
            background-color: lightpink;
            border-top:1em solid pink;
            border-bottom:1em solid lightcoral;
            border-radius: 0 0.5em 0.5em 0  ;
        }

        .eraser::before {
            content: '';
            position: absolute;
            width: 1.5em;
            height: 1.5em;
            background-color: silver;
            border-top:1em solid lightgrey;
            border-bottom:1em solid grey;
            top: -1em;
        }
    </style>
</head>
<body>
    <div class="pencil">
        <div class="taper"></div>
        <div class="barrel">一蓑烟雨任平生</div>
        <div class="eraser"></div>
    </div>
</body>
</html>

  

drop-shadow文档

 

标签:em,width,color,1em,solid,铅笔,border,CSS
来源: https://www.cnblogs.com/alone4436/p/15487734.html

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

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

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

ICode9版权所有