如何使用CSS的Grid布局实现小鸡邮票(附代码)
本篇文章给大家带来的内容是关于如何使用CSS的Grid布局实现小鸡邮票(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
效果预览

源代码下载
https://github.com/comehope/front-end-daily-challenges
代码解读
定义 dom,容器表示邮票:
<div class="stamp"> </div>
居中显示:
body { margin: 0; height: 100vh; display: flex; align-items: center; justify-content: center; background-color: teal; }
设置容器尺寸:
.stamp { position: relative; width: 57em; height: 71em; font-size: 5px; padding: 5em; background-color: white; }
用重复背景绘制出邮票的齿孔:
.stamp { display: flex; flex-direction: column; align-items: center; justify-content: center; } .stamp::after, .stamp::before { content: ''; width: 100%; height: 100%; position: absolute; background: radial-gradient(circle, teal 50%, transparent 50%), radial-gradient(circle, teal 50%, transparent 50%); background-size: 3.5em 3.5em; } .stamp::before { top: 1.5em; background-repeat: repeat-y; background-position: -3% 0, 103% 0; } .stamp::after { left: 1.5em; background-repeat: repeat-x; background-position: 0 -2.5%, 0 102.5%; }
在 html 文件中增加小鸡的 dom 元素,子元素分别表示头部、喙、身体、尾巴、腿、爪子、太阳、桔子:
<div class="stamp"> <div class="rooster"> <span class="head"></span> <span class="beak"></span> <span class="body"></span> <span class="tail"></span> <span class="leg"></span> <span class="foot"></span> <span class="sun"></span> <span class="orange-stuff"></span> </div> </div>
设置 grid 布局的行列尺寸:
.rooster { display: grid; grid-template-columns: 22.5em 13em 1.75em 14.5em 4.5em; grid-template-rows: 12.5em 14.5em 15em 8em 5.5em; background-color: wheat; padding: 2em; margin-top: -2em; }
画出扇形的头部:
.head { grid-column: 4; grid-row: 2; background-color: burlywood; border-top-left-radius: 100%; }
画出小鸡的眼睛和脸上的红晕:
.head { position: relative; } .head::after { content: ''; position: absolute; width: 2.8em; height: 2.8em; border-radius: 50%; background-color: black; right: 30%; box-shadow: 2em 4em 4em rgba(255, 100, 0, 0.5); }
画出扇形的喙:
.beak { grid-column: 5; grid-row: 2; height: 4.5em; background-color: darkorange; border-bottom-right-radius: 100%; }
画出半圆形的身体:
.body { grid-column: 2 / 5; grid-row: 3; width: 30em; background-color: saddlebrown; border-radius: 0 0 15em 15em; }
用伪元素,通过阴影画出翅膀:
.body { position: relative; overflow: hidden; } .body::after { content: ''; position: absolute; width: 20em; height: 10em; border-radius: inherit; box-shadow: 4em 2em 4em rgba(0, 0, 0, 0.3); left: calc((30em - 20em) / 2); }
画出扇形的尾巴:
.tail { grid-column: 1; grid-row: 1 / 3; height: 22.5em; background-color: burlywood; align-self: end; border-top-left-radius: 100%; }
画出扇形的腿:
.leg { grid-column: 4; grid-row: 4; width: 8em; background-color: burlywood; border-bottom-right-radius: 100%; }
画出扇形的小爪子:
.foot { grid-column: 4; grid-row: 5; width: 5.5em; background-color: darkorange; border-top-right-radius: 100%; }
画出半圆形的太阳:
.sun { grid-column: 3 / 5; grid-row: 1; width: 17em; --h: calc(17em / 2); height: var(--h); background-color: darkorange; border-radius: 0 0 var(--h) var(--h); }
画出圆形的桔子和半圆形的叶片,注意此处叶片的画法与前面画半圆形的画法不同:
.orange-stuff { grid-column: 1; grid-row: 3 / 6; width: 16em; height: 16em; background-color: darkorange; align-self: end; justify-self: end; border-radius: 50%; position: relative; } .orange-stuff::before { content: ''; position: absolute; width: 8em; height: 8em; background: linear-gradient(45deg, transparent 50%, saddlebrown 50%); border-radius: 50%; top: -6.8em; left: 10%; }
在 dom 中再增加一些文本,包括标题、作者和面值:
<div class="stamp"> <div class="puppy"> <!-- 略 --> </div> <p class="text"> <span class="title">Rooster</span> <span class="author">comehope</span> <span class="face-value">120</span> </p> </div>
设置标题的文字样式:
.text { position: relative; width: calc(100% + 2em * 2); height: 6em; font-family: sans-serif; } .text .title { position: absolute; font-size: 6em; font-weight: bold; color: brown; }
设置作者的文字样式:
.text .author { position: absolute; font-size: 3em; bottom: -1.2em; color: dimgray; }
设置面值的文字样式:
.text .face-value { position: absolute; font-size: 14em; right: 0; line-height: 0.9em; color: darkcyan; }
大功告成!
以上是如何使用CSS的Grid布局实现小鸡邮票(附代码)的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

创建 Bootstrap 分割线有两种方法:使用 标签,可创建水平分割线。使用 CSS border 属性,可创建自定义样式的分割线。

HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

在 Bootstrap 中插入图片有以下几种方法:直接插入图片,使用 HTML 的 img 标签。使用 Bootstrap 图像组件,可以提供响应式图片和更多样式。设置图片大小,使用 img-fluid 类可以使图片自适应。设置边框,使用 img-bordered 类。设置圆角,使用 img-rounded 类。设置阴影,使用 shadow 类。调整图片大小和位置,使用 CSS 样式。使用背景图片,使用 background-image CSS 属性。

要调整 Bootstrap 中元素大小,可以使用尺寸类,具体包括:调整宽度:.col-、.w-、.mw-调整高度:.h-、.min-h-、.max-h-

在 Vue.js 中使用 Bootstrap 分为五个步骤:安装 Bootstrap。在 main.js 中导入 Bootstrap。直接在模板中使用 Bootstrap 组件。可选:自定义样式。可选:使用插件。

要设置 Bootstrap 框架,需要按照以下步骤:1. 通过 CDN 引用 Bootstrap 文件;2. 下载文件并将其托管在自己的服务器上;3. 在 HTML 中包含 Bootstrap 文件;4. 根据需要编译 Sass/Less;5. 导入定制文件(可选)。设置完成后,即可使用 Bootstrap 的网格系统、组件和样式创建响应式网站和应用程序。

如何使用 Bootstrap 按钮?引入 Bootstrap CSS创建按钮元素并添加 Bootstrap 按钮类添加按钮文本

答案:可以使用 Bootstrap 的日期选择器组件在页面中查看日期。步骤:引入 Bootstrap 框架。在 HTML 中创建日期选择器输入框。Bootstrap 将自动为选择器添加样式。使用 JavaScript 获取选定的日期。
