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

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

(学习视频分享:css视频教程)

栅格布局能将网页分成简单属性的行和列,CSS页面布局技术允许我们拾取网页中的元素,并且控制它们相对正常布局流、周边元素、父容器或者主视口/窗口的位置。

圣杯布局

圣杯布局是一种三列布局,两边定宽,中间自适应:

立即学习“前端免费学习笔记(深入)”;

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;    }CSS

登录后复制

HTML:

    
    
    
    

登录后复制

0.png

圣杯布局的原理就是当子元素处于浮动状态时,设置负margin,子元素会叠盖到兄弟元素之上。  

那么能否用现在想要将其中蓝色区域再次划分成三个区域,相信有很多种办法。但能否通过嵌套的方式实现呢?我们可以试一下:

nbsp;html>Writing to Same Doc    * {        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;    }
    
        
            
            
            
        
    
    
    

登录后复制

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类在布局中主要有两个作用:

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

提供一个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中的栅格布局(图文)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2881171.html

(0)
上一篇 2025年3月10日 20:00:47
下一篇 2025年3月7日 23:21:06

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • css里图片和文字如何等高

    css里设置图片和文字等高的方法:1、添加css属性“vertical-align:middle;”;2、将图片和文字分别套上一个div,然后利用margin属性实现图片和文字等高效果即可。 本教程操作环境:windows7系统、css3版…

    2025年3月10日
    200
  • css框模型规定了什么作用

    css框模型规定了元素框处理元素内容、内边距、边框和外边距的方式;元素框的最内部分是实际的内容,直接包围内容的是内边距;内边距呈现了元素的背景,内边距的边缘是边框;边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素。 本教程操…

    2025年3月10日
    200
  • css如何设置li的样式

    css设置li样式的方法:1、通过list-style-type属性定义li列表的项目符号;2、通过list-style-image属性实现使用图片代替项目符号;3、通过list-style属性综合设置li样式即可。 本教程操作环境:win…

    2025年3月10日
    200
  • none在css中表示什么意思

    none在css中表示令某个元素失效,常用于display、border、outline、list-style等属性中;如“display:none;”属性表示设置元素不显示,“border: none;”属性表示不显示元素的边框等。 本教…

    2025年3月10日
    200
  • CSS实现居中的几种方案(总结)

    本篇文章给大家介绍一下多个css居中方案。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 (学习视频分享:css视频教程) 水平居中 内联元素 要使内联元素(如链接,span 或img)居中,使用 text-align: …

    2025年3月10日 编程技术
    200
  • 详解CSS中的:placeholder-shown伪类

    (学习视频分享:css视频教程) 一般我们常见placeholder伪类选择器用来修改默认样式及文案,忽然发现placeholder-shown伪类选择器,比较官方的解释是 CSS伪类表示任何显示占位符文本的form元素。 简单来说就是当输…

    2025年3月10日 编程技术
    200
  • 使用CSS Flexbox构建网站标题

    在 CSS3 没有普及的时候,创建一个网站 header 是一项既可怕又困难的任务 ?。那时,Flexbox 还是个新东西,我们不得不使用老方法,比如 float和clearfix技术。今天,情况完全不同了,Flexbox 得到了广泛的支持…

    2025年3月10日 编程技术
    200
  • 优化滚动的小技巧:使用CSS Scroll Snap!!

    (学习视频分享:css视频教程) 你是否经常希望有一个CSS特性可以轻松创建一个可滚动的容器? CSS scroll snap 可以做到这一点。在早期的前端开发中,我依靠 JS 插件来创建滑块组件。有时,我们需要一种简单的方法来快速将元素制…

    2025年3月10日 编程技术
    200
  • css六边形怎么画

    css画出六边形的方法:1、把正六边形分成三部分,然后将div及伪元素的宽高计算出来并设置;2、把正六边形分成三个宽高相同的div,然后使用定位以及css3 transform:rotate分别向左右旋转60deg形成正六边形即可。 本教程…

    2025年3月10日 编程技术
    200
  • css3代码和css有不同吗

    不同:css3是css技术的升级版本,css3中添加了一些新属性和选择器,可以更好更方便的进行网站的开发,例如圆角、阴影、渐变、媒体查询、“:root”选择器等。css3有兼容问题,有些属性需要添加针对浏览器的前缀以便支持,例“-ms-”。…

    2025年3月10日
    200

发表回复

登录后才能评论