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 相关文章推荐
使用CSS禁止textarea调整大小功能的方法
Mar 13 HTML / CSS
基于 HTML5 WebGL 实现的垃圾分类系统
Oct 08 HTML / CSS
html5中valid、invalid、required的定义
Feb 21 HTML / CSS
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
Apr 14 HTML / CSS
html5简介_动力节点Java学院整理
Jul 07 HTML / CSS
canvas像素点操作之视频绿幕抠图
Sep 11 HTML / CSS
详解Html5页面实现下载文件(apk、txt等)的三种方式
Oct 22 HTML / CSS
web字体加载方案优化小结
Nov 29 HTML / CSS
用position:sticky完美解决小程序吸顶问题的实现方法
Apr 24 HTML / CSS
html+css实现分层金字塔的实例
Jun 02 HTML / CSS
HTML怎么设置下划线?html文字加下划线方法
Dec 06 HTML / CSS
CSS中使用grid布局实现一套模板多种布局
Jul 15 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
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
PHP中使用Imagick实现各种图片效果实例
2015/01/21 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
PHP实现的简单sha1加密功能示例
2017/08/27 PHP
php的instanceof和判断闭包Closure操作示例
2020/01/26 PHP
javascript的事件触发器介绍的实现
2014/06/05 Javascript
js实现简单计算器
2015/11/22 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
JavaScript中的冒泡排序法
2016/08/03 Javascript
Javascript将JSON日期格式化
2016/08/23 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
nodejs进阶(6)—连接MySQL数据库示例
2017/01/07 NodeJs
轻松理解Javascript变量的相关问题
2017/01/20 Javascript
MUI 上拉刷新/下拉加载功能实例代码
2017/04/13 Javascript
Angular5中调用第三方库及jQuery的添加的方法
2018/06/07 jQuery
小程序封装路由文件和路由方法(5种全解析)
2019/05/26 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
2015/03/06 Python
在Python中定义一个常量的方法
2018/11/10 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
2019/09/06 Python
解析Python3中的Import
2019/10/13 Python
Python Web静态服务器非堵塞模式实现方法示例
2019/11/21 Python
python对指定字符串逆序的6种方法(小结)
2020/04/02 Python
python将字典内容写入json文件的实例代码
2020/08/12 Python
Python中pass的作用与使用教程
2020/11/13 Python
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
工作的心得体会
2013/12/31 职场文书
迟到检讨书大全
2014/01/25 职场文书
初中同学会活动方案
2014/08/22 职场文书
2015年护士节活动总结
2015/02/10 职场文书
幼师小班个人总结
2015/02/12 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书
队名及霸气口号大全
2015/12/25 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书