谈谈css中的栅格布局(图文)


当前第2页 返回上一页

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

53

54

55

56

57

58

59

60

61

62

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>

<meta http-equiv="window-target" content="_top">

<title>Writing to Same Doc</title>

<style type="text/css">

    * {

        box-sizing: border-box;

    }

    html, body{

        width: 100%;

        height: 100%;

        margin: 0;

    }

    .container{

        width:100%;

    }

    .container:after{

        display: table;

        content:".";

        clear:both;

    }

     

    .container .cl{

        float:left;

        border: 1px solid red;

        height: 200px;

    }

     

    .main{

        width:100%;

        padding: 0 290px 0 320px;

        background-color: blue;

    }

    .sub{

        width: 320px;

        margin-left:-100%;

        background-color: white;

    }

    .extra{

        width: 290px;

        margin-left:-290px;

        background-color: yellow;

    }

</style>

</head>

<body>

<div class="container">

    <div class="cl main">

        <div class="container">

            <div class="cl main"></div>

            <div class="cl sub"></div>

            <div class="cl extra"></div>

        </div>

    </div>

    <div class="cl sub"></div>

    <div class="cl extra"></div>

</div>

 

</body>

</html>

2.png

栅格系统的原理

3.png

假设:Flowline的宽度为W,column的宽度为c,Gutter的宽度为g,Margin的宽度为m,栅格列数为N

W = c*N + g*(N-1) + 2m;g的宽度通常为m的两倍,所以:

W = (c+g) * N;把c+g记为C,得:

W = C * N;

大部分的栅格系统都是此公式的变体。

Bootstrap的栅格系统

下面我们将一起来看一下常见的栅格布局的设计和bootstrap中的设计实现。BootStrap中合理的使用栅格布局,必须将列放入row中,而row必须放入container中。container类在布局中主要有两个作用:

  1. 在不同的宽度区间内(响应式断点)提供宽度限制。当宽度变化时,采用不同的宽度。

  2. 提供一个padding,阻止内部内容触碰到浏览器边界。

Bootstrap中使用padding代替上文中的margin。大小为15px,如下图所示,粉红色为padding大小。

4.png

Row是column的容器,每个row中的column之和必须为12,不过我们可以通过嵌套的方式扩展。Row的左右margin都为-15px,用来抵消container中的padding,如下图蓝色部分所示:

5.png

row的这种设计主要为了方便嵌套,后文中会提到。

Colomn是栅格系统的主角,每个column左右padding都为15px,上文中row的负margin抵消了container的padding,所以为每个column设置padding就是为了防止内容直接触碰边界,同时不同的column之间拥有30px的卡槽(Gutter)。如下图黄色部分所示:

6.png

现在想想上文中提到的公式:W = C * N;

上文提到row的负margin设计主要为了嵌套,如果要在column中嵌套column首先要把被嵌套的column放到row中,把row放到作为容器的column中,而不需要在放置一个container。如下图中蓝色所示,是放入column中的row的负margin区域。

7.png

现在将被嵌套的column放入row中,如下图所示,上层column便是起到了container的作用。

8.png

更多编程相关知识,请访问:编程学习!!

以上就是谈谈css中的栅格布局(图文)的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

浅谈css grid比bootstrap更适合创建布局的原因

css怎样把一张图片分割开

谈谈css中的混合模式

css如何清除下划线?css清除下划线有哪些方法

css代码是什么

css选择器有哪些

如何使用css设置框架内文本的垂直位置

css如何实现背景透明,文字不透明?

css如何使用rem布局实现自适应效果

css修改placeholder样式的方法介绍(代码示例)

更多相关阅读请进入《css》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...