60.纯 CSS 创作一块乐高积木
原文地址:https://segmentfault.com/a/1190000015369542
感想:y轴旋转,相对定位,今天有点懵呀,唉。
HTML code:
<!-- 定义dom,容器中包含一组3个面 -->
<!-- brick: 砖 ; sides : 边; front: 前面 -->
<div class="brick">
<div class="sides">
<span class='front'></span>
<span class='right'></span>
<span class="top"></span>
</div>
<div class="studs">
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
</div>
CSS code:
html, body {
margin:;
padding:;
}
/* 设置body子元素水平垂直居中 */
body {
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
/* 背景颜色设置下面样式无效,背景设置有效 */
background: radial-gradient(circle at center, white, skyblue);
}
/* 设置.brick容器的样式 */
.brick{
/* 为子元素的定位做准备 */
position: relative;
/* 本身默认 font-size: 12px; 所以可以删除 */
font-size: 12px;
width: 40em;
height: 30em;
border: 1px solid blue;
}
/* 画出积木三面共有属性 */
.brick .sides > * {
position: absolute;
background-color: #237fbd;
}
/* 画出积木的正面 */
.brick .sides .front{
top: 19em;
left: 7em;
width: 9em;
height: 6.8em;
/* 组合成立方体 */
transform-origin: right;
transform: skewY(30deg);
}
/* 画出积木的右面 */
.brick .sides .right {
top: 19em;
left: calc(7em + 9em);
width: 18em;
height: 6.8em;
filter: brightness(0.8);
transform-origin: left;
transform: skewY(-30deg);
}
/* 画出积木的顶面 */
.brick .sides .top {
top: calc(19em - 10.4em);
left: calc(7em + 9em);
width: 18em;
height: 10.4em;
filter: brightness(1.2);
transform-origin: left bottom;
transform: rotate(-60deg) skewY(30deg);
}
/* 不需要.studs */
.studs{
position: absolute;
border: 1px solid red;
}
/* 突粒 */
.studs span {
position: absolute;
width: 3.6em;
height: 3em;
background-color: #237fbd;
/* 突粒下的影子居然是用边框设置的 */
border-radius: 1.8em / 1em;
}
.studs span:nth-child(1) {
--n:;
}
.studs span:nth-child(3) {
--n:;
}
.studs span:nth-child(5) {
--n:;
}
.studs span:nth-child(7) {
--n:;
}
.studs span:nth-child(2) {
--n:;
}
.studs span:nth-child(4) {
--n:;
}
.studs span:nth-child(6) {
--n:;
}
.studs span:nth-child(8) {
--n:;
}
/* 画出左侧的凸粒 */
.studs span:nth-child(odd) {
top: calc(4.6em + (var(--n) - 1) / 2 * 2.6em);
left: calc(23.3em - (var(--n) - 1) / 2 * 4.6em);
}
/* 画出右侧的凸粒 */
.studs span:nth-child(even) {
top: calc(6.9em + (var(--n) - 2) / 2 * 2.6em);
left: calc(27.9em - (var(--n) - 2) / 2 * 4.6em);
}
/* 画出凸粒的顶面 */
.studs span::before {
content: '';
position: absolute;
width: inherit;
height: 2em;
background-color: #4cb7ff;
border-radius: 50%;
}
60.纯 CSS 创作一块乐高积木的更多相关文章
- 前端每日实战:60# 视频演示如何用纯 CSS 创作一块乐高积木
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/qKKqrv 可交互视频 此视频是可 ...
- 3.纯 CSS 创作一个容器厚条纹边框特效
原文地址:3.纯 CSS 创作一个容器厚条纹边框特效 没有啥好点子呀,不爽 HTML代码: <div class="box"> <div class=" ...
- 2.纯 CSS 创作一个矩形旋转 loader 特效
原文地址:2.纯 CSS 创作一个矩形旋转 loader 特效 扩展后地址:https://scrimba.com/c/cNJVWUR 扩展地址:https://codepen.io/pen/ HT ...
- 1.纯 CSS 创作一个按钮文字滑动特效 + 弹幕(残缺)
原文地址:1# 视频演示如何用纯 CSS 创作一个按钮文字滑动特效 扩展后地址:https://scrimba.com/c/cJkzMfd HTML代码: <html> <head& ...
- 74.纯 CSS 创作一台 MacBook Pro
原文地址:https://segmentfault.com/a/1190000015568609 HTML code: <div class="macbook"> &l ...
- 69.纯 CSS 创作一个单元素抛盒子的 loader
原文地址:https://segmentfault.com/a/1190000015470411#articleHeader0 HTML code: <div class="loade ...
- 57.2拓展之纯 CSS 创作黑暗中会动的眼睛和嘴巴
效果地址:https://scrimba.com/c/cbNkBnuV HTML code: <!-- 定义dom, .eyes容器中包含2个元素 --> <div class=&q ...
- 57.1拓展之纯 CSS 创作黑暗中的眼睛和嘴巴
效果地址:https://scrimba.com/c/cJ8NPpU2 HTML code: <div class="eyes"> <span class=&qu ...
- 57.纯 CSS 创作一双黑暗中的眼睛
原文地址:https://segmentfault.com/a/1190000015327725 感想:原来边框还能这样玩-->做会眨眼的眼睛 HTML code: <div class= ...
随机推荐
- man 命令帮助文件输出乱码
man 命令重定向的时候有写控制字符再直接显示的时候没有问题, 但是重定向到文件中的时候,被解释错误,显示为 ^H 或者乱码 解决方法: man ps | col -b >a.txt 可以消除所 ...
- os、os.path模块(文件/目录方法)
1.模块的概念:模块是一个包含所有定义的变量.函数的文件,模块可以被其余模块调用. 2.利用OS模块实现对系统文件的. os模块中常见的方法: gercwd() 返回当前工作目录 chdir( ...
- 18-10-09 Linux常用命令大全(非常全!!!)
Linux常用命令大全(非常全!!!) Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制, ...
- componentWillMount和componentDidMount的区别
1.componentWillMount 将要装载,在render之前调用: componentDidMount,(装载完成),在render之后调用 2.componentWillMount 每 ...
- tomcat 启动脚本走过的坑
最近由于 程序写的问题 tomcat经常需要重启,所以就让我写给监控tomcat并启动的脚本 例: 看着一起正常 然后就写到 crontab 计划任务里了 后来发现不管用, 找了好多文档 就是找不到问 ...
- emmet简单记录
一.引式符号 html:5 or ! . class # id []标签内属性 pycharm不支持 {}标签的内容 pycharm不支持 ()分组标签 pycharm不支持 二.关系符号 1 ...
- 有人WIFI ble101配置
新买来的模块,默认为slave模式,波特率57600,8位数据位,无检验位,1位停止位. 发送+++a,进入命令模式. 需要加回车符 1.设置模块名称 AT+NAME=BT_Shining 2.设置发 ...
- s21day07 python笔记
s21day07 python笔记 一.昨日内容回顾及补充 回顾 补充 将前面所提到的功能,统一改称为方法 二.深浅拷贝 基本格式 v1 = [1,2,3] import copy v2 = copy ...
- linux日常命令之二
ps -ef 查看当前系统所有进程,ps 进程查看命令,-e 显示所有进程,-f 全格式. free -h 查看系统实际使用内存的情况. 显示格式为: total used f ...
- webpack初步学习
https://segmentfault.com/a/1190000006178770 该篇文章足够webpack入门的学习了,对webpack有个初步的了解和认识.