前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【CSS——效果实现】爱拼才会赢(蓝桥杯真题-18568)【合集】

【CSS——效果实现】爱拼才会赢(蓝桥杯真题-18568)【合集】

作者头像
Rossy Yan
发布于 2025-03-05 00:53:13
发布于 2025-03-05 00:53:13
10400
代码可运行
举报
运行总次数:0
代码可运行

背景介绍

由爱拼社举办的拼图大赛进行到最后一关,1 号选手小蓝披荆斩棘成为全场黑马。本关卡需要选手使用 CSS Grid 布局完成拼图页面,但是由于小蓝技术水平有限,拼图的效果没有达到预期。现在邀请你作为协助嘉宾帮助小蓝优化拼图页面的效果。 本题需要在已提供的基础项目中,使用 CSS 让拼图正确显示。

准备步骤

开始答题前,需要先打开本题的项目代码文件夹,目录结构如下:

其中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
├── css
│   └── style.css
├── images
└── index.html
  • index.html 是主页面。
  • images 是图片文件夹。
  • css/style.css 是待补充的 css 文件。

在浏览器中预览 index.html 页面效果如下:

目标效果

请使用 Grid 完善 css/style.css 中的 TODO 代码,使 article 元素下第二个 div 在右侧占据 2 列的位置,第 6 个 div 在左侧占据 2 列的位置,最终实现下图效果。

提示:grid-column: start / end; ,其中 start 对应值为数字,表示网格项的起始位置。end 对应值为数字,表示网格项的结束位置。

要求规定

  • 请勿修改 css/style.css 文件外的任何内容。
  • 请严格按照考试步骤操作,切勿修改考试默认提供项目中的文件名称、文件夹路径、class 名、id 名、图片名等,以免造成判题⽆法通过。

判分标准

  • 本题完全实现题目目标得满分,否则得 0 分。

通关代码✔️

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* TODO:待补充代码  在 grid-column 后填空*/
/* 第二个 div */
section div:nth-of-type(2){
	grid-column: 2/4;   /*待补充代码 */
}
/* 第六个 div */
section div:nth-of-type(6) {
	grid-column: 1/3;  /*待补充代码 */
}
/* 以下代码无需修改 */
section {
	width: 70%;
	margin: 0 auto;
	line-height: 0;
	position: relative;
}
section img {
	width: 100%;
	
}
section article {
	position: absolute;
	top: 0;
	width: 100%;
	background: white;
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	grid-gap: 20px;
	mix-blend-mode: lighten;
}
section div {
	background: #000;
	height: 14vw;
}

代码解析

一、HTML 部分

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>爱拼才会赢</title>
    <link rel="stylesheet" href="./css/style.css">
</head>
<body>
    <section>
        <img src="./images/person.png" alt="">
        <article>
            <div></div>
            <div></div>
            <div></div>
            <div></div>
            <div></div>
            <div></div>
            <div></div>
        </article>
    </section>
</body>
</html>
  • 文档类型声明<!DOCTYPE html> 声明了文档类型为 HTML5,让浏览器以 HTML5 标准来解析页面。
  • HTML 根元素<html lang="en"> 定义了 HTML 文档的根元素,并指定语言为英语。
  • 头部信息
    • <meta charset="UTF-8"> 设置字符编码为 UTF - 8,支持多种语言字符的显示。
    • <meta name="viewport" content="width=device-width, initial-scale=1.0"> 用于响应式设计,使页面在不同设备上能正确缩放显示。
    • <title>爱拼才会赢</title> 设置页面标题,显示在浏览器标签上。
    • <link rel="stylesheet" href="./css/style.css"> 引入外部 CSS 样式表,用于美化页面。
  • 主体内容
    • <section> 是一个语义化的容器元素,用于组合相关内容。
    • <img src="./images/person.png" alt="">section 内插入一张图片,src 属性指定图片路径,alt 属性用于图片无法显示时的替代文本。
    • <article> 是一个独立的内容块,这里用于包含拼图块。
    • 内部的 7 个 <div> 元素代表拼图块,目前没有具体内容,仅作为拼图块的占位元素。

二、CSS 部分

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* 第二个 div */
section div:nth-of-type(2) {
    grid-column: 2/4;  
}
/* 第六个 div */
section div:nth-of-type(6) {
    grid-column: 1/3;  
}
/* 以下代码无需修改 */
section {
    width: 70%;
    margin: 0 auto;
    line-height: 0;
    position: relative;
}
section img {
    width: 100%;
}
section article {
    position: absolute;
    top: 0;
    width: 100%;
    background: white;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-gap: 20px;
    mix-blend-mode: lighten;
}
section div {
    background: #000;
    height: 14vw;
}
  • 定位特定元素并设置列布局
    • section div:nth-of-type(2) 选择器选中 section 元素下的第二个 div 元素。grid-column: 2/4; 表示该元素在网格布局中从第 2 列开始,到第 4 列结束,从而在右侧占据 2 列的位置。
    • section div:nth-of-type(6) 选择器选中 section 元素下的第六个 div 元素。grid-column: 1/3; 表示该元素从第 1 列开始,到第 3 列结束,在左侧占据 2 列的位置。
  • section 样式
    • width: 70%; 设置 section 的宽度为视口宽度的 70%。
    • margin: 0 auto; 使 section 在水平方向上居中显示。
    • line-height: 0; 去除行间距,避免图片和其他元素之间出现间隙。
    • position: relative; 设置相对定位,为内部的绝对定位元素(article)提供定位参考。
  • section img 样式width: 100%; 使图片宽度充满其父元素 section
  • section article 样式
    • position: absolute; 设置绝对定位,使其相对于 section 进行定位。
    • top: 0;article 定位在 section 的顶部。
    • width: 100%; 宽度充满 section
    • background: white; 设置背景颜色为白色。
    • display: grid; 启用网格布局模式。
    • grid-template-columns: 1fr 1fr 1fr; 将网格容器划分为 3 列,每列宽度相等(1fr 表示一个灵活的分数单位)。
    • grid-gap: 20px; 设置列与列之间的间隙为 20 像素。
    • mix-blend-mode: lighten; 设置混合模式为 lighten,使拼图块与下方图片混合时,根据颜色混合规则产生特殊效果(使拼图块看起来像是覆盖在图片上)。
  • section div 样式
    • background: #000; 设置背景颜色为黑色,代表拼图块的颜色。
    • height: 14vw; 设置高度为视口宽度的 14%,使拼图块高度随视口宽度变化而等比例变化,保持响应式效果。

三、工作流程▶️

  1. 页面结构搭建:HTML 代码构建了基本的页面结构,包含一个 section 容器,内部有一张图片和一个包含 7 个 div 元素的 article 容器,这些 div 作为拼图块的占位。
  2. 引入样式表:通过 <link> 标签引入外部 CSS 样式表,将样式与 HTML 结构关联起来。
  3. 整体布局设置:CSS 样式首先对 section 进行整体布局设置,包括宽度、居中显示、行间距和定位方式。同时设置图片宽度充满 section,为后续拼图块的覆盖效果做准备。
  4. 启用网格布局:对 article 元素启用网格布局,并定义其列结构为 3 列且等宽,设置列间隙,同时通过绝对定位将其覆盖在图片上方,并设置混合模式以实现与图片的融合效果。
  5. 拼图块定位:利用 grid-column 属性,根据题目要求分别对第二个和第六个 div 进行列位置的调整,使其在网格布局中占据特定的列,从而实现拼图块的正确排列效果。
  6. 拼图块样式设置:为每个 div (拼图块)设置黑色背景和相对视口宽度的高度,使其在页面上显示为具有一定大小和颜色的拼图块。

测试结果👍

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-03-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【CSS——页面布局】新鲜的蔬菜(蓝桥杯真题-2439)【合集】
Rossy Yan
2025/03/07
1080
【CSS——页面布局】新鲜的蔬菜(蓝桥杯真题-2439)【合集】
【CSS3——页面布局】画一只考拉(蓝桥杯真题-2341)【合集】
这段 HTML 代码构建了页面的基本结构,为绘制考拉提供了元素容器。主要通过嵌套的 <div> 元素来划分不同的部分,每个部分都有对应的类名,方便在 CSS 中进行样式设置。
Rossy Yan
2025/02/06
1050
【CSS3——页面布局】画一只考拉(蓝桥杯真题-2341)【合集】
全栈之前端 | 6.CSS3基础知识之网页几种布局方法学习(1)
描述: 前面相信大家已经跟着【WeiyiGeek】作者一起学习了CSS基础知识了,并且了解了盒子模型、以及元素的定位浮动方面的知识。现在我们在此基础上继续深入学习CSS布局,它是学习CSS之路上一个重点,是在进行前端开发时常常使用到的,所以说我们需要认真学习,若有不懂的地方可以在文章末尾,以及作者交流群【在公众号回复微信交流群】进行留言交流。
全栈工程师修炼指南
2023/10/31
7660
全栈之前端 | 6.CSS3基础知识之网页几种布局方法学习(1)
使用网络构建复杂布局超实用的技巧,赶紧收藏吧!
作者:Shadid Haque 译者:前端小智 来源:soshace 点赞再看,微信搜索 【大迁世界】 关注这个没有大厂背景,但有着一股向上积极心态人。本文 GitHub https://github.com/qq44924588... 上已经收录,文章的已分类,也整理了很多我的文档,和教程资料。 1024程序员节,160就能买到400的书,红宝书 5 折 网格布局是现代CSS中最强大的功能之一。使用网格布局可以帮助我们在没有任何外部 UI 框架的情况下构建复杂的、快速响的布局。在这篇文章中,将会介绍所有
前端小智@大迁世界
2020/10/30
1.1K0
使用网络构建复杂布局超实用的技巧,赶紧收藏吧!
【CSS——效果实现】自适应页面(蓝桥杯真题-5136)【合集】
请通过补全 css/style.css 中代码或操作 DOM 的方式,达到根据屏幕大小显示不同布局的效果。
Rossy Yan
2025/02/18
2320
【CSS——效果实现】自适应页面(蓝桥杯真题-5136)【合集】
【CSS】343- CSS Grid 网格布局入门
CSS Grid(网格) 布局使我们能够比以往任何时候都可以更灵活构建和控制自定义网格。Grid(网格) 布局使我们能够将网页分成具有简单属性的行和列。
pingan8787
2019/09/09
2K0
【CSS】343- CSS Grid 网格布局入门
聊一聊CSS的过去与未来,加深对CSS的理解
它涉及设定规则,让浏览器自动处理。你可以改变边距、字体和大小,但这只是浅尝辄止,你懂的吗?
前端达人
2023/08/31
4470
聊一聊CSS的过去与未来,加深对CSS的理解
如何使用Flexbox和CSS Grid,实现高效布局
CSS 浮动属性一直是网站上排列元素的主要方法之一,但是当实现复杂布局时,这种方法不总是那么理想。幸运的是,在现代网页设计时代,使用 Flexbox 和 CSS Grid 来对齐元素,变得相对容易起来。
葡萄城控件
2022/05/09
3.6K0
如何使用Flexbox和CSS Grid,实现高效布局
全栈之前端 | 6.CSS3基础知识之网页几种布局方法学习(2)
描述: 由于篇幅过长的原因,作者将CSS布局文章分为两个小节,前面相信大家已经跟着【WeiyiGeek】作者一起学习了CSS Flexbox以及网格布局的基础知识了,现在我们在此基础上继续深入学习CSS 多列布局、浮动布局以及了解表格布局及其他传统布局,它是学习CSS之路上一个重点,是在进行前端开发时常常使用到的,所以说我们需要认真学习,若有不懂的地方可以在文章末尾,以及作者交流群【在公众号回复微信交流群】进行留言交流。
全栈工程师修炼指南
2023/10/31
3290
全栈之前端 | 6.CSS3基础知识之网页几种布局方法学习(2)
五种方式实现三栏布局
从上到下由页头、内容和页脚组成,内容由左、中、右三列组成,其中左右两列的宽度固定,中间一列自适应。假设左右宽度是 100px,header 和 footer 的高度是 60px。
多云转晴
2020/07/14
1.3K0
五种方式实现三栏布局
CSS进阶12-网格布局 Grid Layout
(注1:如果有问题欢迎留言探讨,一起学习!转载请注明出处,喜欢可以点个赞哦!) (注2:更多内容请查看我的目录。)
love丁酥酥
2018/08/27
6.1K0
CSS进阶12-网格布局 Grid Layout
前端主流布局方法
请注意,本文编写于 153 天前,最后修改于 80 天前,其中某些信息可能已经过时。
曼亚灿
2023/05/18
2.3K0
前端主流布局方法
【Web前端】“CSS 网格”二维布局系统(补充)
CSS 网格布局是一种二维布局系统,用于网页设计。通过使用网格,你可以将内容以行和列的形式进行排列。此外,网格布局还能够简便地实现一些复杂的布局结构。
一条晒干的咸鱼
2024/11/19
1050
【Web前端】“CSS 网格”二维布局系统(补充)
Grid布局简介
没错,这其实就是我们小时候写的小格子本本,其实它跟我们今天要讲的主题Grid布局非常类似,其实Grid布局就是它的升级加强版。
桃翁
2018/08/16
7.5K2
Grid布局简介
CSS Grid 新手入门
另外,下面一段话摘自A Complete Guide to Grid,对于CSS Grid会有更加清楚地释义
糊糊糊糊糊了
2018/09/28
2.2K0
CSS Grid 新手入门
grid网格布局
​ 距今来看已经十多年了,确确实实占据了前端布局中很大的地位,相比大家对flex都很熟悉,所以今天我们的主角就是-------> Grid
Snine
2022/02/11
2K0
grid网格布局
万字总结 CSS 布局
本文总结了主流的几种 CSS 的布局方法,无论你是一个想要学习 CSS 布局的新手,还是一个比较有经验但想要进一步巩固与了解最新CSS布局知识的前端开发者,这篇指南都能帮你全面了解如今CSS布局发展的现状。
用户8921923
2022/10/24
5.8K0
万字总结 CSS 布局
Grid layout + 媒体查询轻易实现常用的响应式布局
最近在整理前端知识体系,怎么可以少了布局这一环呢?先问大家一个问题,如果让css只保留一种布局,留下来解决前端布局问题?你会选择那个布局呢?如果问我,我会选择 网格布局,根据二八原则,网格布局基本上可以帮助我解决 80% 的布局场景,颇有一套布局打遍天下布局的气势,因此非常值得一探究竟。
老码小张
2023/11/28
7750
Grid layout + 媒体查询轻易实现常用的响应式布局
一次性把所有普通和经典的网页布局讲得通通透透的,多图预警,建议收藏
超干货长文预警。这次把网页布局方案讲得通通透透的,等高布局,水平垂直居中,经典的圣杯布局等等全都有了。建议收藏
夜尽天明
2020/09/17
5.9K0
一次性把所有普通和经典的网页布局讲得通通透透的,多图预警,建议收藏
IT课程 CSS基础 031_网格布局 Grid
网格是由一系列水平及垂直的线构成的一种布局模式。根据网格,我们能够将设计元素进行排列,帮助我们设计一系列具有固定位置以及宽度的元素的页面,使我们的网站页面更加统一。
zhaoJian.Net
2024/04/03
1430
IT课程 CSS基础 031_网格布局 Grid
推荐阅读
相关推荐
【CSS——页面布局】新鲜的蔬菜(蓝桥杯真题-2439)【合集】
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验