用CSS border画一个铅笔
先上效果图

该例子来自 CSS世界 的书中项目
总结技巧如下:
- 巧用 border 和 伪元素 来 绘制层叠效果。
- 使用 transform-origin 来改变元素的轴心
- 使用 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>
用CSS border画一个铅笔的更多相关文章
- css 如何“画”一个抽奖转盘
主要描述的是如何运用 css 绘制一个抽奖转盘,并运用原生 js 实现转盘抽奖效果. 先来张效果图: 布局 一般来说,转盘一般有四个部分组成:外层闪烁的灯.内层旋转的圆盘.圆盘上的中奖结果.指针. 所 ...
- Effective前端3:用CSS画一个三角形
p { text-indent: 2em } .triangle-container p { text-indent: 0 } img { margin: 15px 0 } 三角形的场景很常见,打开一 ...
- Effective前端1---chapter 2 用CSS画一个三角形
1.CSS画三角形的画法 第一步:三角形可以用border画出来,首先一个有四个border的div长这样: <div class="triangle"></di ...
- Effective前端(3)用CSS画一个三角形
来源:https://zhuanlan.zhihu.com/p/26160325 三角形的场景很常见,打开一个页面可以看到各种各样的三角形: 由于div一般是四边形,要画个三角形并不是那么直观.你可以 ...
- css画一个提示框
用css画一个如下图的提示框: 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- 【前端切图】用css画一个卡通形象-小猪佩奇
最近在腾讯云技术社区遇到了一位奇才,用css画出了一个社会人小猪佩奇,不得不服.研究了一下他的文章https://segmentfault.com/a/1190000014909658,感觉甚是有趣, ...
- CSS画一个三角形,CSS绘制空心三角形,CSS实现箭头
壹 ❀ 引 这两天因为项目工作较少,闲下来去看了GitHub上关于面试题日更收录的文章,毕竟明年有新的打算.在CSS收录中有一题是 用css创建一个三角形,并简述原理 .当然对于我来说画一个三角形是 ...
- div+css画一个小猪佩奇
用DIV+CSS画一个小猪佩奇,挺可爱的,嘻嘻. HTML部分(全是DIV) <!-- 小猪佩奇整体容器 --> <div class="pig_container&quo ...
- 用CSS的border画三角形
用border画三角形,实际上属于一种奇淫巧技. 利用的是border的一个特性:当一个元素的宽高都为0时,给border设置宽度(至少给2个相邻的边框设置宽度),border就会撑开这个元素. 四个 ...
- 用CSS画一个带阴影的三角形的示例代码
1. 思路 怎么用CSS3画一个带阴影的三角形呢 ? 有童鞋说, 这还不简单吗 网上有很多解决方案, 但其实大多都是实现不太完美的, 存在一些问题 假设我们做一个向下的三角形箭头 常见的方法大致有两种 ...
随机推荐
- yb课堂之单机和分布式应用的登陆校验解决方案 《七》
单机tomcat应用登陆校验 session保存在浏览器和应用服务器会话之间 用户登陆成功,服务端会保存一个session,当然客户端有一个sessionId 客户端会把sessionId保存在coo ...
- Python 潮流周刊#60:Python 的包管理工具真是多啊(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- SQL Server 截取字符串
select top 100 substring(qr_code,8,8) ,* from [LiuJun_PKh_lcfc_hf] --where right(ri,8) or substring( ...
- 2023 CSP 游记
目录 \(\text{CSP-J}\) 游记 \(\text{CSP-S}\) 游记 \(\text{CSP-J}\) 游记 省流:\(\text{B}\) 题挂了 \(100\text{ pts}\ ...
- Redis的事务transactions与管道pipeline
1.Redis的事务仅仅是保证事务里的操作会被连续独占的执行,Redis的命令执行是单线程, 2.Redis不保证事务的所有指令可以同时成功或者同时失败,只可以决定是否开始执行全部指令的能力,因此也没 ...
- stable diffusion 入门教程
sd基础 工作原理&入门 输入提示词后 有文本编码器将提示词编译成特征向量,vae编码器将特征向量传入潜空间内,特征向量在潜空间内不断降噪,最后通过vae解码器将降噪之后的特征向量 解码成一个 ...
- mysql执行步骤口诀:发连缓分析,优化执行器
mysql执行步骤口诀:发连缓分析,优化执行器 mysql执行步骤: 1.我们在客户端发起一个SQL的查询: 2.连接器判断用户登录以及用户权限: 3.缓存命中,走缓存(mysql缓存不是redis缓 ...
- 【JavaWeb】HttpClient
需要的依赖: <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --> <de ...
- 【Windows】搭建FTP服务器
1.开启FTP服务和IIS服务 2.设置IIS服务 添加FTP站点[右键] 设置站点名称和物理路径 绑定IP地址和FTP端口号 可以自定义虚拟主机名称 下面勾选[无SSL]即可 身份验证和授权设置 在 ...
- 【perl】01
1.环境搭建 -- 解释器 / 编译器 Perl 在 Window 平台上有 ActiveStatePerl 和 Strawberry Perl 编译器. ActiveState Perl和 Stra ...