广告位联系
返回顶部
分享到

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

css 来源:互联网 作者:秩名 发布时间:2022-01-27 20:48:22 人浏览
摘要

简介 本文用示例介绍CSS进行九宫格布局的方法。 朋友圈、微博等很多社交平台都是使用九宫格布局来展示图片的,九宫格布局也是前端面试经常会问的问题。 本文只展示自适应布局的

简介

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

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

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

方案1:grid

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

代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

<!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>

结果

方案2:flex+calc()

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

代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

<!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>

结果

方案3:absolute

代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

<!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>

结果


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://www.jb51.net/css/808532.html
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计