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


Posted in HTML / CSS onFebruary 12, 2022

简介

        本文用示例介绍CSS进行九宫格布局的方法。

        朋友圈、微博等很多社交平台都是使用九宫格布局来展示图片的,九宫格布局也是前端面试经常会问的问题。

        本文只展示自适应布局的方案。不展示手动指定宽度的那种方案。

方案1:grid

grid是专门用来处理二维的,最适合用来二维布局。

代码

<!doctype html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <title>This is title</title>
    <style>
        .container {
            display: grid;
            grid-template-columns: 1fr 1fr 1fr;
            grid-template-rows: 100px 100px 100px;
            grid-gap: 10px;
            padding: 10px;
        }
        .item {
            border: 1px solid black;
    </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>

结果

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

方案2:flex+calc()

因为flex是面向一维的,所以我们需要加上calc这个函数控制其垂直方向。

代码

<!doctype html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <title>This is title</title>
    <style>
        .container {
            width: 100%;
            display: flex;
            /*换行*/
            flex-wrap: wrap;
        }
        .item {
            width: calc(calc(100% / 3) - 10px);
            height: 100px;
            margin: 5px;
            box-sizing: border-box;
            border: 1px solid black;
    </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>

结果

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

方案3:absolute

代码

<!doctype html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <title>This is title</title>
    <style>
        html,body{
            height:100%;
            margin:0;
        }
        .container{
            position:absolute;
            left:0;
            top:0;
            right:0;
            bottom:0;
        .item{
            float:left;
            height:100px;
            width: calc(calc(100% / 3) - 10px);
            position:relative;
            border: 1px solid black;
        .item:before{
            content:'';
            left:10px;
            right:10px;
            top:10px;
            bottom:10px;
            border-radius:10px;
        .item:after{
            content:attr(data-index);
            height:30px;
            margin:auto;
            text-align:center;
    </style>
</head>
<body>
<div class="container">
    <div class="item" data-index="1">
    </div>
    <div class="item" data-index="2">
    <div class="item" data-index="3">
    <div class="item" data-index="4">
    <div class="item" data-index="5">
    <div class="item" data-index="6">
    <div class="item" data-index="7">
    <div class="item" data-index="8">
    <div class="item" data-index="9">
</div>
</body>
</html>

结果

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

到此这篇关于CSS实现九宫格布局(自适应)的示例教程的文章就介绍到这了,更多相关css九宫格布局内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
CSS3 background-image颜色渐变的实现代码
Sep 13 HTML / CSS
10 套华丽的CSS3 按钮小结
Oct 03 HTML / CSS
用CSS3实现Win8风格的方格导航菜单效果
Apr 10 HTML / CSS
css3中背景尺寸background-size详解
Sep 02 HTML / CSS
一款恶搞头像特效的制作过程 利用css3和jquery
Nov 21 HTML / CSS
使用CSS3制作饼状旋转载入效果的实例
Jun 23 HTML / CSS
HTML5中canvas中的beginPath()和closePath()的重要性
Aug 24 HTML / CSS
canvas绘制文本内容自动换行的实现代码
Jan 14 HTML / CSS
html5指南-2.如何操作document metadata
Jan 07 HTML / CSS
html5响应式开发自动计算fontSize的方法
Jan 13 HTML / CSS
canvas 绘图时位置偏离的问题解决
Sep 16 HTML / CSS
聊聊CSS粘性定位sticky案例解析
Jun 01 HTML / CSS
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
Jan 18 #HTML / CSS
MIME类型中application/xml与text/xml的区别介绍
Jan 18 #HTML / CSS
HTTP中的Content-type详解
Jan 18 #HTML / CSS
POST提交数据常见的四种方式
Jan 18 #HTML / CSS
Html5获取用户当前位置的几种方式
html粘性页脚的具体使用
Jan 18 #HTML / CSS
CSS三大特性继承性、层叠性和优先级详解
Jan 18 #HTML / CSS
You might like
全国FM电台频率大全 - 23 四川省
2020/03/11 无线电
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
简单实用的网站PHP缓存类实例
2014/07/18 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
CI(CodeIgniter)框架视图中加载视图的方法
2017/03/24 PHP
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
Javascript中valueOf与toString区别浅析
2013/03/19 Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
2014/01/02 Javascript
javascript得到当前页的来路即前一页地址的方法
2014/02/18 Javascript
Extjs grid panel自带滚动条失效的解决方法
2014/09/11 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
nodeJS实现简单网页爬虫功能的实例(分享)
2017/06/08 NodeJs
ES6基础之字符串和函数的拓展详解
2019/08/22 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
2020/09/04 Javascript
gearman的安装启动及python API使用实例
2014/07/08 Python
详细探究Python中的字典容器
2015/04/14 Python
基于numpy.random.randn()与rand()的区别详解
2018/04/17 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
Python操作SQLite数据库过程解析
2019/09/02 Python
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
日本无添加化妆品:HABA
2016/08/18 全球购物
ToysRus日本官网:玩具反斗城
2018/09/08 全球购物
优秀的个人求职信范文
2014/05/09 职场文书
好的旅游活动方案
2014/08/19 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
学校政风行风整改方案
2014/10/25 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
公司表扬信格式
2015/05/04 职场文书
2015年小学教导处工作总结
2015/05/26 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS
Android中View.post和Handler.post的关系
2022/06/05 Java/Android
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers