必知的技术知识:Flex之五筒布局:想去哪儿就去哪儿上手就会

简介: 必知的技术知识:Flex之五筒布局:想去哪儿就去哪儿上手就会

Flex之五筒布局:想去哪儿就去哪儿 上手就会


直接上问题:


      实现一个容器五个项目,按麻将五筒位置布局


HTML代码,简单的一个article(容器),五个section(布局)


<!DOCTYPE html

[/span>html lang="en"

[/span>head

[/span>meta charset="UTF-8"

[/span>meta name="viewport" content="width=device-width, initial-scale=1.0"

//代码效果参考:http://hnjlyzjd.com/xl/wz_25404.html

[/span>meta http-equiv="X-UA-Compatible" content="ie=edge"

[/span>title

[/span>link rel="stylesheet" href="./CSS/hahaha.css"


[/span>body

[/span>article

[/span>section class="box1"

[/span>section class="box2"

[/span>section class="box3"

[/span>section class="box4"

[/span>section class="box5"




一般人正常思维CSS代码


/ 300300可以分为9个100100的区块,五筒布局占其总五个/


/ 加上换行和主轴与交叉轴分别两端对齐 /


article{


Width</span>: 300px;


Height</span>: 300px;


background-color: skyblue;


display: flex;


flex-wrap: wrap;


align-content: space-between;


justify-content: space-between;


}


/ 每个项目加上同等大小,不同颜色 /


.box1{


Width</span>: 100px;


Height</span>: 100px;


background-color: pink;


}


.box2{


Width</span>: 100px;


Height</span>: 100px;


background-color: rgb(192, 255, 247);


}


.box3{


Width</span>: 100px;


Height</span>: 100px;


background-color: rgb(95, 18, 76);


}


.box4{


Width</span>: 100px;


Height</span>: 100px;


background-color: rgb(39, 199, 65);


}


.box5{


Width</span>: 100px;


Height</span>: 100px;


background-color: rgb(231, 163, 17);


}


得到结果


还剩最后一步,把2号移动到正中间,


Flex容器和项目各有六个属性,你会发现无论怎么绞尽脑汁,就是没办法移动一个项目到正中间去,


甚至加了代码,连反应都没有


图中加入了单个项目属性,可是不管是取值flex-end,还是center,它压根就不会有反应,


想想好像真的可以,但是换方法移动调换顺序,不管怎样,结果也会是一样:实现不了。


解决办法:调整思维,跳出牛角尖死角


Flex容器定义中最重要的知识点:主轴与交叉轴,项目都在这两条轴上移动,但是只能是轴开始、中间和结尾,


理论上这两条轴可以占满整个容器的,那么上面的项目可以在任何位置,然后!


想要在页面中控制区块到自己想要的地方去,不单单可以依靠Flex,还可以通过修改HTML结构来结合Flex达到自己想要的结果。


修改HTML,加一个div


<!DOCTYPE html

[/span>html lang="en"

[/span>head

[/span>meta charset="UTF-8"

[/span>meta name="viewport" content="width=device-width, initial-scale=1.0"

[/span>meta http-equiv="X-UA-Compatible" content="ie=edge"

[/span>title

[/span>link rel="stylesheet" href="./CSS/hahaha.css"


[/span>body

[/span>article

[/span>section class="box1"

[/span>section class="box2"

[/span>div

[/span>section class="box3"


[/span>section class="box4"

[/span>section class="box5"




结果


修改CSS,控制div大小,让第三个项目换行


div{


width: 300px;


height: 100px;


}


结果


到了这里就回到上面的最后一步,移动三号到正中间,完成五筒布局,


直接加上


display: flex;


justify-content: center;


即可!Soeasy!


完整代码


/ 300300可以分为9个100100的区块,五筒布局占其总五个/


/ 加上换行和主轴与交叉轴分别两端对齐 /


article{


Width</span>: 300px;


Height</span>: 300px;


background-color: skyblue;


display: flex;


flex-wrap: wrap;


align-content: space-between;


justify-content: space-between;


}


div{


Width</span>: 300px;


Height</span>: 100px;


display: flex;


justify-content: center;


}


/ 每个项目加上同等大小,不同颜色 /


.box1{


Width</span>: 100px;


Height</span>: 100px;


background-color: pink;


}


.box2{


Width</span>: 100px;


Height</span>: 100px;


background-color: rgb(192, 255, 247);


}


.box3{


Width</span>: 100px;


Height</span>: 100px;


background-color: rgb(//代码效果参考:http://hnjlyzjd.com/hw/wz_25402.html

95, 18, 76);

}


.box4{


Width</span>: 100px;


Height</span>: 100px;


background-color: rgb(39, 199, 65);


}


.box5{


Width</span>: 100px;


Height</span>: 100px;


background-color: rgb(231, 163, 17);


}


结果


总结:


项目都在主轴和交叉轴上移动,但是,轴的位置不一定刚好在那儿,这时候就可以修改HTML结构来辅助控制轴的位置,


最后达到移动项目到自己想要的位置去的目的。(添加包裹层(div)的时候,要分析好位置和大小)

相关文章
|
4月前
|
开发者 容器
flex 布局属性在实际项目中的应用场景有哪些?
flex 布局属性在实际项目中的应用场景有哪些?
|
2月前
|
容器
Bootstrap5 Flex(弹性)布局4
排序:.order 类可设置弹性子元素的排序,范围从 .order-1 至 .order-12,数字越小优先级越高。外边距:.ms-auto 和 .me-auto 分别用于设置子元素的右侧和左侧外边距为 auto。包裹:.flex-nowrap(默认)、.flex-wrap 和 .flex-wrap-reverse 用于控制弹性容器中的子元素是否换行及换行方向。
|
3月前
|
前端开发 UED 容器
使用 Flex 布局实现垂直居中效果
【10月更文挑战第7天】
326 57
|
1月前
|
容器
Bootstrap5 Flex(弹性)布局6
使用 `.align-self-*` 类可控制指定子元素的对齐方式,包括 `.align-self-start`, `.align-self-end`, `.align-self-center`, `.align-self-baseline`, 和 `.align-self-stretch`。示例代码展示了如何在一个弹性布局中应用这些类,以实现不同设备上的响应式设计。
Bootstrap5 Flex(弹性)布局5
使用 .align-content-* 控制多行子元素在垂直方向上的堆叠方式,如 .align-content-start、.align-content-center 等。对于单行子元素,使用 .align-items-* 控制对齐,例如 .align-items-start、.align-items-center 等。示例代码展示了不同对齐效果的应用。
Bootstrap5 Flex(弹性)布局2
介绍Flex布局的水平和垂直方向控制。`.flex-row`使子元素水平排列,默认左对齐;`.flex-row-reverse`则右对齐。`.flex-column`让子元素垂直排列;`.flex-column-reverse`则反向排列。示例展示了不同类的效果,通过改变类名实现布局调整。
Bootstrap5 Flex(弹性)布局3
`.justify-content-*` 类用于调整弹性子元素的对齐方式,支持 start、end、center、between、around 等值。`.flex-fill` 类使所有子元素等宽,而 `.flex-grow-1` 则让指定子元素占据剩余空间。这些类在布局设计中非常实用。
|
2月前
|
前端开发 UED 容器
在 CSS 中使用 Flex 布局实现页面自适应时需要注意什么?
【10月更文挑战第22天】在使用 Flex 布局实现页面自适应时,需要对其基本原理和特性有深入的理解,同时结合具体的布局需求和场景,进行细致的调整和优化。通过合理的设置和注意事项的把握,才能实现理想的自适应效果,提升用户体验。还可以根据实际情况进行更深入的探索和实践,以不断提升 Flex 布局的应用能力。
|
2月前
|
容器
HTML中使用Flex布局实现双行夹批效果
在HTML中,还可以用table元素来实现双行夹批效果,但比flex布局代码更复杂,效果也不见得更理想。
44 10
|
2月前
|
开发者 UED 容器
鸿蒙next版开发:ArkTS组件通用属性(Flex布局)
在HarmonyOS next中,ArkTS的Flex布局是一种强大且灵活的布局方式,支持水平或垂直方向排列元素,并能动态调整大小和位置以适应不同屏幕。主要属性包括justifyContent、alignItems、direction和wrap,适用于导航栏、侧边栏和表单等多种场景。示例代码展示了如何使用这些属性创建美观的布局。
100 10