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制作倾斜导航条和毛玻璃效果
Sep 12 HTML / CSS
css3实现信纸/同学录效果的示例代码
Dec 11 HTML / CSS
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
Dec 30 HTML / CSS
详解如何用canvas画一个微笑的表情
Mar 14 HTML / CSS
html5 音乐播放器 audio 标签使用概述
Jul 15 HTML / CSS
html5使用canvas实现跟随光标跳动的火焰效果
Jan 07 HTML / CSS
HTML5拖拉上传文件的简单实例
Jan 11 HTML / CSS
h5网页水印SDK的实现代码示例
Feb 19 HTML / CSS
amazeui 验证按钮扩展的实现
Aug 21 HTML / CSS
h5页面背景图很长要有滚动条滑动效果的实现
Jan 27 HTML / CSS
MIME类型中application/xml与text/xml的区别介绍
Jan 18 HTML / CSS
css样式important规则的正确使用方式
Jun 10 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脚本的10个技巧(1)
2006/10/09 PHP
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
2008/09/10 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
PHP两个n位的二进制整数相加问题的解决
2018/08/26 PHP
javascript XML数据显示为HTML一例
2008/12/23 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
jQuery使用之处理页面元素用法实例
2015/01/19 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
基于vue.js实现侧边菜单栏
2017/03/20 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
babel7.x和webpack4.x配置vue项目的方法步骤
2019/05/12 Javascript
React-redux实现小案例(todolist)的过程
2019/09/29 Javascript
Node.js API详解之 readline模块用法详解
2020/05/22 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
vue实现页面切换滑动效果
2020/06/29 Javascript
js实现点击上传图片并设为模糊背景
2020/08/02 Javascript
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
CentOS中使用virtualenv搭建python3环境
2015/06/08 Python
Django如何配置mysql数据库
2018/05/04 Python
浅谈python中真正关闭socket的方法
2018/12/18 Python
Python爬虫之UserAgent的使用实例
2019/02/21 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
2019/08/13 Python
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
网络安全方面的面试题
2016/01/07 面试题
送给程序员的20个Java集合面试问题
2014/08/06 面试题
质量承诺书范文
2014/03/27 职场文书
《春晓》教学反思
2014/04/20 职场文书
学校就业推荐信范文
2014/05/19 职场文书
招标保密承诺书
2015/01/20 职场文书
八一建军节慰问信
2015/02/14 职场文书
2014年底个人工作总结
2015/03/10 职场文书
单位证明范文
2015/06/18 职场文书
2015年除四害工作总结
2015/07/23 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书