问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

CSS Grid布局:什么是网格布局

发布网友 发布时间:2022-04-23 07:27

我来回答

2个回答

懂视网 时间:2022-04-06 15:42

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

效果预览

1823763689-5ba9be40dcb54_articlex.png

源代码下载

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;
}

大功告成!

热心网友 时间:2022-04-06 12:50

CSS Grid现在已经被W3C纳入到CSS3的一个布局模块当中,被称为CSS Grid Layout Mole。而我们较为熟悉的还是将其想像成网格或者栅格,也就是早期的960gs。不管是网格还是栅格或者现在的CSS Grid Layout Mole,我想掌握这些技术对于我们将来在Web项目中实现布局只有好处没有坏处。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
怎么去掉winrar广告? 安徽省无为一中高二理料分数线查询 预测国家二十年后农村老人养老政策 哪位专家能预测未来2o年后的中国农村吗? 云南北辰高级中学简介 如何自制美味的芹菜炒粉丝? 学电脑专业需要懂电脑原理和打字吗 大学里会专门学习五笔打字(电脑专业的)吗?谢谢 肝腹水可以治疗好吗 肝腹水体重增加怎么治疗 安卓和ios的ppsspp怎么安装游戏 如何使用css grid布局实现限宽容器全屏效果 psp怎么用手机下载游戏? psp用手机怎么下载游戏 PSP怎么安装游戏? 真空泵的抽气原理是什么? 抽气泵是不是就是真空泵 真空泵的工作原理是什么? 真空泵都有哪些结构特点? 真空泵有哪些类型? 真空抽气泵的原理 如何正确使用真空泵? 循环水利用真空泵的详细图解,工作原理,实用范围。 真空泵安装示意图 循环水真空泵的循环水多用真空泵结构图及使用方法 罗茨真空泵抽气过程 帮忙找下,下图真空泵的工作原理及图片 旋片真空泵的工作原理图是怎样的? 活塞式真空泵结构图? 真空泵的原理及结构原理图 grid HTML布局该怎么布局? PSP游戏怎么下载安装 前端,能说说你对grid布局的理解吗? css的grid布局和表格的区别是什么 这种网页的css怎么写? psp游戏手机怎么下载啊? css 950px grid 网格布局边框问题 PSP游戏怎么下载和安装? 如何利用chrome显示网页的布局css grid PSP里的游戏怎么下载 PSP游戏怎么下载和安装! css的布局怎么样学? PSP如何安装游戏和下载游戏 PSP游戏如何下载、安装? 未开封的沙丁鱼罐头,如果用煤气怎么加热使用? 下载了psp游戏,要怎么安装啊? 苹果手机刷系统? 罐头鱼可以放进微波炉里加热吗?我突然间好想吃罐头鱼… css+div 网页样式与布局 案例教程 的项目资源 主要是后面几个的_百度知... ncl cssgrid是什么插值方法
  • 焦点

最新推荐

猜你喜欢

热门推荐