首页 > 其他分享 >实现九宫格布局

实现九宫格布局

时间:2024-12-05 09:35:18浏览次数:3  
标签:flex 九宫格 center 实现 布局 width display

九宫格布局在前端开发中是一个非常常见的需求,实现方式也多种多样。以下列出几种常用的方法,并附带代码示例:

1. Flexbox 布局:

Flexbox 是现代 CSS 布局中最灵活和强大的工具之一,非常适合实现九宫格布局。

<!DOCTYPE html>
<html>
<head>
<title>九宫格 - Flexbox</title>
<style>
.container {
  display: flex;
  flex-wrap: wrap;
  width: 300px; /* 调整容器宽度 */
  height: 300px; /* 调整容器高度 */
}

.item {
  width: 100px; /* 每个格子的宽度 */
  height: 100px; /* 每个格子的高度 */
  background-color: #eee;
  border: 1px solid #ccc;
  box-sizing: border-box; /* 包含边框在宽度内 */
  display: flex; /* 让内容居中 */
  justify-content: center;
  align-items: center;
}
</style>
</head>
<body>

<div class="container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
  <div class="item">7</div>
  <div class="item">8</div>
  <div class="item">9</div>
</div>

</body>
</html>

2. Grid 布局:

Grid 布局是另一种强大的布局工具,可以更方便地创建二维布局。

<!DOCTYPE html>
<html>
<head>
<title>九宫格 - Grid</title>
<style>
.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 三列,每列宽度相等 */
  grid-template-rows: repeat(3, 1fr); /* 三行,每行高度相等 */
  width: 300px;
  height: 300px;
  gap: 1px; /* 格子间隙 */
}

.item {
  background-color: #eee;
  display: flex;
  justify-content: center;
  align-items: center;
}
</style>
</head>
<body>

<div class="container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
  <div class="item">7</div>
  <div class="item">8</div>
  <div class="item">9</div>
</div>

</body>
</html>

3. 浮动布局 (Float): 虽然 Flexbox 和 Grid 是更推荐的现代方法,但浮动布局仍然可以实现九宫格,只是需要清除浮动。

<!DOCTYPE html>
<html>
<head>
<title>九宫格 - Float</title>
<style>
.container {
  width: 303px; /* 考虑边框宽度 */
}
.item {
  width: 100px;
  height: 100px;
  background-color: #eee;
  border: 1px solid #ccc;
  box-sizing: border-box;
  float: left;
  display: flex;
  justify-content: center;
  align-items: center;
}
.clearfix::after {
  content: "";
  display: block;
  clear: both;
}
</style>
</head>
<body>

<div class="container clearfix">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">

标签:flex,九宫格,center,实现,布局,width,display
From: https://www.cnblogs.com/ai888/p/18587784

相关文章

  • 实现一个居中半透明的模态窗
    <!DOCTYPEhtml><html><head><title>ModalExample</title><style>body{font-family:sans-serif;}.modal{display:none;/*Hiddenbydefault*/position:fixed;/*Stayinplace*/z-index:1;/*Sitonto......
  • 实现一个stick-footer布局
    实现stick-footer布局,也就是让页脚始终贴在页面底部,即使内容不足以撑满整个视口高度。以下是几种常见的实现方法,并附带代码示例:1.Flexbox布局:这是现代前端最推荐的stick-footer实现方式,简洁且兼容性好。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8......
  • div等元素如何阻止点击穿透和实现点击穿透?
    在前端开发中,阻止点击穿透(也称为点击吞噬)和实现点击穿透是常见的需求,尤其是在处理叠加元素(例如弹出层、模态框)时。div元素本身并没有直接的“阻止点击穿透”或“实现点击穿透”属性。我们需要结合CSS和JavaScript来实现这些效果。1.阻止点击穿透(防止点击底层元素):几种......
  • 写页面布局时你有考虑过分辨率因素吗?还要考虑哪些因素呢?
    是的,在写前端页面布局时,分辨率是必须考虑的重要因素之一。还要考虑以下因素:1.屏幕尺寸和分辨率:不同设备的屏幕尺寸差异巨大:从小型智能手表到大型桌面显示器,需要确保布局在各种屏幕尺寸下都能正常显示。分辨率的多样性:即使屏幕尺寸相同,分辨率也可能不同,这会影响元素的......
  • 解释下深度优先遍历和广度优先遍历的区别及如何实现
    深度优先遍历(DFS)和广度优先遍历(BFS)都是图和树数据结构的遍历算法,它们的主要区别在于访问节点的顺序。深度优先遍历(DFS)概念:DFS就像走迷宫一样,沿着一条路走到底,遇到死胡同再回溯到上一个岔路口,选择另一条路继续走,直到遍历完所有节点。它优先探索当前节点的分支,尽......
  • 说说你对网格布局的理解
    在前端开发中,网格布局(GridLayout)是一种强大的二维布局系统,它将网页划分成由行和列组成的网格,允许开发者精确定位和排列元素。相比于传统的浮动布局和Flexbox,Grid布局更擅长处理复杂的、二维的页面结构。我的理解可以概括为以下几点:1.核心概念:网格容器(GridContainer):应用......
  • vxe-table 实现按回车键自动新增一行
    在开发可编辑表格是,客户提了一个需求,默认情况下回车键是自动跳转下一行,当处于最后一行时,按下回车键需要自动新增一行。并将光标移动到新的行,实现也是非常简单的,vxe-table新版本是支持这个功能的。回车自动换行功能是通过参数keyboard-config.isLastEnterAppendRow来控制是否启......
  • 线程条件变量 生产者消费者模型 Linux环境 C语言实现
    只能用来解决同步问题,且不能独立使用,必须配合互斥锁一起用头文件:#include<pthread.h>类型:pthread_cond_tPTHREAD_COND_INITIALIZER初始化初始化:intpthread_cond_init(pthread_cond_t*cond,NULL);清理:intpthread_cond_destroy(pthread_cond_t*cond);P操作:......
  • 线程信号量 Linux环境 C语言实现
    既可以解决多个同类共享资源的互斥问题,也可以解决简易的同步问题头文件:#include<semaphore.h>类型:sem_t初始化:intsem_init(sem_t*sem,intpshared,unsignedintvalue);//程序中第一次对指定信号量调用p、v操作前必须做初始化清理:intsem_destroy(sem_t*sem);//程序......
  • Python+OpenCV实现车牌自动识别:智能交通的黑科技
    Python+OpenCV实现车牌自动识别:智能交通的黑科技提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录Python+OpenCV实现车牌自动识别:智能交通的黑科技前言技术要点解析1.导入相关模块2.图像预处理2.1高斯去噪2.2边缘检测2.3阈值化3.车牌定位3......