Bricks之容器、Flexbox教程

秦半两发布于 2022年 11月 11日

这一篇教程是正式使用Bricks前必看的内容!因为本篇文章会详细介绍几个最基础也是最常用到的功能。

Bricks中使用频率最高的是位于小部件面板顶部layout分类下的四个布局容器(section、container、block、div)以及这些容器所默认的Flexbox布局方式。我们搭建网页的时候基本离不开它们,所以我们必须在一开始就要熟悉它们。

目 录

    容器 —— Section、Container、Block、Div四者的区别

    4种容器
    4种容器

    这4个是bricks中布局的基本元素(小部件)。

    首先直观感受下什么是Section、Container、Block。以腾讯视频网页为例:

    布局举例
    布局举例

    面积最大的背景区域那层是Section、中间的主要内容区是Container,里面具体的内容块是Block。

    Section、Container、Block、Div都是编辑器已经预设好参数的wrap容器。

    我们来看看官方给它们的默认属性设定:

    官方属性
    官方属性

    Section 元素的html标签默认是语义化标签<section>,剩下的Container、Block、Div元素的html标签默认都是<div>,说明在bricks团队的定位中,Section是具有语义化性质的容器,而后三者在定位上是同一个东西,只是编辑器默认设定的参数不一致而已。Section的默认宽度是100%,相同于整个浏览器窗口宽度。建议用于设置网页背景颜色或背景图片;
    Container 的默认宽度是固定的1100px,相当于网页的主体部分宽度为1100px;
    Block 推荐用作具体小部件的容器;默认宽度是100%,相当于Container有多宽Block就有多宽(在一行只有一个block的情况下);
    Div 则是没有任何预设,完全需要自己设置参数,一般比较少用到,用Block替代就行。

    一般情况下用Section、Container、Block这3个就足够了。

    可视化展示区分:

    可视化示意图
    可视化示意图

    注:整个画布的黄色部分是Section元素,绿色是Container元素,橘红色和黑色是Block元素,蓝色是Div元素。为更明显显示区别,对top和bottom的边距进行了设置。

    结构面板区分:

    结构图层示意图
    结构图层示意图

    html代码结构区分:

    html代码示意图
    html代码示意图

    注:①代表section元素;②代表container元素;③④代表Block元素;⑤代表Div元素

    根据html语义化方面的规范,建议将表达相同意思的内容放在一个Section内。一个Section内只需要一个Container,Container下面使用多个Block对具体小部件进行布局。建议的结构如下图:

    建议的结构层次
    建议的结构层次

    如何使用FlexBox

    什么是FlexBox?

    按我的理解,FlexBox是一种布局的方式。非常灵活方便,中文译为 弹性盒子。

    Bricks中的布局容器默认使用flexbox,所以我们必须要会使用。

    详细的说明请查看:https://css-tricks.com/snippets/css/a-guide-to-flexbox/

    下面我会针对面板逐项进行说明:

    flexbox设置面板
    flexbox设置面板

    Display:选择flex,才能以flexbo模式进行布局。
    Flex wrap:有3个属性(wrap,no wrap, wrap-reverse)。默认no warp,即“不换行”——所有内部的元素都将挤在一行。warp(换行),wrap-reverse(换行并顺序颠倒排列)。

    flex-wrap
    flex-wrap

    Direction:排列方向,默认是纵向排列。图上从左往右分别是纵向排列、横向排列、顺序颠倒(可以与前两个同时选择)。

    flex-direction
    flex-direction

    Align self:这个是flexbox布局中的某个元素的对齐方式,用在flexbox下属的元素上才会起作用。

    align-self
    align-self

    Align main axis:主轴方向上的对齐。所谓主轴,指的是选择的Direction方向的轴线。一般从图例的标示中判断更直接。当我们Direction选择横向时(第二个图标),Align main axis的图标也会变动方向的。对齐方式示意如下:

    justify-content
    justify-content

    Align cross axis:交叉轴(与主轴垂直的另一条轴线)的对齐方式。判断方式同上。对齐方式示意如下:

    对齐方式
    对齐方式

    Column gapRow gap:内部小部件的纵向和横向的间距。
    Order:同一级别容器之间的顺序。设置的数字越小,排序越靠前。

    order
    order

    Flex grow : 将flexbox除去已有空间后的剩余空间进行分配,以剩余空间为整体,按照每个容器设定的flex-grow数值占整体的份额进行分配,内部容器的空间将自动扩张。默认值为0,即不会自动对内部容器进行扩张。
    参考:https://blog.csdn.net/sdasadasds/article/details/121743266(第二个动画的flex-grow应该是flex,作者写错)
    Flex shrink :原理类似于flex-grow,将超出flexbox空间范围的超额空间分配到flexbox中的容器中,按照每个容器设定的flex-shrink数值占超额宽度的份额进行分配,内部容器的空间将自动收缩。 默认值为1,即自动对内部容器进行收缩。
    Flex basis :容器的宽度/高度值,作用和width/height一样,优先级高于width/height。当同时设定了width/height的值和flex-basis的值,浏览器会优先选择flex-basis的值进行渲染。默认值为auto,即按照width的值执行。

    以上的 flex-grow、flex-shrink、flex-basis 不常用,其他的都是常用项。

    掌握了Flexbox就相当于跨过了一座大山,后续建站会顺利许多。

    之后bricks还会推出CSS grid的布局方式,grid比flexbox更高级,等编辑器有这功能后我将会更新。

    这篇文章对你有帮助吗?
    [ 评价次数: 1 ; 满意度: 5/5 ]

    欢迎留言