CSS实现九宫格布局(自适应)的示例代码

CSS实现九宫格布局(自适应)是一种常见的网页布局方式,下面是完整的攻略。

什么是九宫格布局?

九宫格是一种网页布局方式,将元素分为3x3的九宫格形状,每个格子中放置一个元素。九宫格布局常用于展示网站的产品、服务、图片等内容。

CSS实现九宫格布局的步骤

第一步:HTML结构

首先需要设置HTML结构,要求将元素按照3x3的九宫格形状排列。

<div class="grid-container">
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
</div>

上面的代码将元素包裹在grid-container的容器中,并分别使用grid-item的类名设置每个元素。

第二步:CSS设置

设置CSS样式,包含以下内容:

1. 父容器布局

使用display: grid将容器设为网格布局,使用grid-template-columns: repeat(3, 1fr)设置每行的列数,本例中列数为3。此外,使用grid-gap属性设置列间距和行间距。

.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 10px;
}

2. 子元素布局

指定每个子元素的位置,首先需要给每个元素设置grid-columngrid-row属性,表示元素所占的列数和行数。下面是示例代码:

.grid-item:nth-child(1) {
  grid-column: 1 / 2;
  grid-row: 1 / 2;
}
.grid-item:nth-child(2) {
  grid-column: 2 / 3;
  grid-row: 1 / 2;
}
.grid-item:nth-child(3) {
  grid-column: 3 / 4;
  grid-row: 1 / 2;
}
.grid-item:nth-child(4) {
  grid-column: 1 / 2;
  grid-row: 2 / 3;
}
.grid-item:nth-child(5) {
  grid-column: 2 / 3;
  grid-row: 2 / 3;
}
.grid-item:nth-child(6) {
  grid-column: 3 / 4;
  grid-row: 2 / 3;
}
.grid-item:nth-child(7) {
  grid-column: 1 / 2;
  grid-row: 3 / 4;
}
.grid-item:nth-child(8) {
  grid-column: 2 / 3;
  grid-row: 3 / 4;
}
.grid-item:nth-child(9) {
  grid-column: 3 / 4;
  grid-row: 3 / 4;
}

上面的代码使用nth-child()伪类,对每个元素进行定位。其中,grid-column属性设置了元素所占用的列数,例如:

  • 第一个元素占用第一列到第二列,使用grid-column: 1 / 2;表示。
  • 第二个元素占用第二列到第三列,使用grid-column: 2 / 3;表示。

grid-row属性同理。

3. 图片居中

如果网页中包含图片,需要设置图片的居中样式,使用以下代码实现:

.grid-item img {
  display: block;
  margin-left: auto;
  margin-right: auto;
  max-width: 100%;
  max-height: 100%;
}

上面的代码使用margin-leftmargin-right的值为auto实现图片居中。使用max-width: 100%max-height: 100%代码将图片的大小限制在格子内。

至此,九宫格布局的示例代码已经完成。

示例代码

下面是一个简单的九宫格布局示例,包含九个元素和图片,具体代码如下所示:

<div class="grid-container">
  <div class="grid-item">
    <img src="./images/1.jpg"/>
    <p>元素1</p>
  </div>
  <div class="grid-item">
    <img src="./images/2.jpg"/>
    <p>元素2<p>
  </div>
  <div class="grid-item">
    <img src="./images/3.jpg"/>
    <p>元素3</p>
  </div>
  <div class="grid-item">
    <img src="./images/4.jpg"/>
    <p>元素4</p>
  </div>
  <div class="grid-item">
    <img src="./images/5.jpg"/>
    <p>元素5</p>
  </div>
  <div class="grid-item">
    <img src="./images/6.jpg"/>
    <p>元素6</p>
  </div>
  <div class="grid-item">
    <img src="./images/7.jpg"/>
    <p>元素7</p>
  </div>
  <div class="grid-item">
    <img src="./images/8.jpg"/>
    <p>元素8</p>
  </div>
  <div class="grid-item">
    <img src="./images/9.jpg"/>
    <p>元素9</p>
  </div>
</div>
.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 10px;
}

.grid-item:nth-child(1) {
  grid-column: 1 / 2;
  grid-row: 1 / 2;
}
.grid-item:nth-child(2) {
  grid-column: 2 / 3;
  grid-row: 1 / 2;
}
.grid-item:nth-child(3) {
  grid-column: 3 / 4;
  grid-row: 1 / 2;
}
.grid-item:nth-child(4) {
  grid-column: 1 / 2;
  grid-row: 2 / 3;
}
.grid-item:nth-child(5) {
  grid-column: 2 / 3;
  grid-row: 2 / 3;
}
.grid-item:nth-child(6) {
  grid-column: 3 / 4;
  grid-row: 2 / 3;
}
.grid-item:nth-child(7) {
  grid-column: 1 / 2;
  grid-row: 3 / 4;
}
.grid-item:nth-child(8) {
  grid-column: 2 / 3;
  grid-row: 3 / 4;
}
.grid-item:nth-child(9) {
  grid-column: 3 / 4;
  grid-row: 3 / 4;
}

.grid-item img {
  display: block;
  margin-left: auto;
  margin-right: auto;
  max-width: 100%;
  max-height: 100%;
}

示例说明

  • 本示例中使用了三张九宫格形状的图片进行展示;
  • CSS中将每个元素占用的列数和行数进行了设置,页面中每个元素都处于正确的位置;
  • 图片展示的时候使用了CSS实现图片居中的样式;

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CSS实现九宫格布局(自适应)的示例代码 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • CSS 实现 10 种现代布局的代码

    CSS 实现现代布局有很多种方式,但是通常我们可以通过浮动、定位、Flexbox 和 CSS Grid 等技术来实现。下面是一份完整的攻略,让你了解如何实现 10 种常见的现代布局,并包含了两个示例说明。 1. 上下左右布局 这种布局方式也被称为定位布局,需要使用到 position 属性来设置元素的位置。通常,我们可以将容器设置为 position: re…

    css 2023年6月10日
    00
  • 在HTML文档中嵌入CSS的三种常用方式

    下面是详细讲解在HTML文档中嵌入CSS的三种常用方式: 1. 内联样式表 内联样式表是直接在HTML标签中添加style属性来实现样式的定义,具有优先级最高的特点,适用于单一元素样式的定义。内联样式表的格式如下: <p style="color: red; font-size: 16px;">这是一个红色字体大小为16px的…

    css 2023年6月9日
    00
  • jQuery DIV弹出效果实现代码

    当需要在页面中展示一些提示信息、弹出层等时,我们可以通过jQuery的DIV弹出效果来实现。下面是实现该效果的完整攻略: 1. 准备工作 在进行代码编写前,我们需要先引入jQuery库和样式文件,同时也要写好弹出层的HTML代码。 <!DOCTYPE html> <html> <head> <meta charset…

    css 2023年6月10日
    00
  • 原生JavaScript实现进度条

    下面是“原生JavaScript实现进度条”的完整攻略,包括实现过程、代码示例和具体讲解。 1. 实现过程 1.1 顶部进度条 实现顶部进度条的关键是获取当前页面的加载进度,并将其转化为进度条的宽度并实时更新,下面是代码示例: <!DOCTYPE html> <html> <head> <meta charset=&…

    css 2023年6月10日
    00
  • 基于JavaScript实现图片剪切效果

    实现图片剪切效果是前端开发的常见需求。本攻略将介绍如何基于 JavaScript 实现简单的图片剪切效果。 步骤一:准备工作 1. 安装依赖 本示例代码需要使用 jQuery 库和 Cropper 插件,请确保在页面中引入以下两个文件: <!– 引入jQuery库 –> <script src="//cdn.bootcss.c…

    css 2023年6月9日
    00
  • vue.js项目使用原生js实现移动端的轮播图

    下面是实现“vue.js项目使用原生js实现移动端的轮播图”的完整攻略: 准备工作 安装vue-cli 首先需要安装vue-cli,它是一款官方提供的vue.js脚手架工具。可以通过以下命令安装: npm install -g vue-cli 创建vue.js项目 创建vue.js项目的命令为: vue init webpack my-project 其中“…

    css 2023年6月10日
    00
  • HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等

    HTML5中通过li-canvas可以轻松实现各种图像和文字的绘制。以下是绘制单图、多图、圆角图片和单行、多行文字的攻略。 绘制单图 使用li-canvas绘制单个图片非常简单。首先需要在HTML中创建一个canvas元素,然后使用下面的JavaScript代码实现: var canvas = document.getElementById("my…

    css 2023年6月11日
    00
  • CSS 设置滚动条样式的实现

    CSS 设置滚动条样式是一种可以增强网页体验的方法。下面是实现此技术的完整攻略: 1. 了解浏览器对滚动条样式的支持情况 不同的浏览器对滚动条的自定义支持情况不同。而且,随着各种浏览器的升级,支持度也会有所改变。以下列举目前主要浏览器的滚动条自定义支持情况: Chrome:支持大部分的滚动条自定义样式 Firefox:支持滚动条颜色、大小、背景图、阴影等样式…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部