必知的技术知识: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 布局属性在实际项目中的应用场景有哪些?
flex布局属性简介
flex布局属性简介
|
21天前
|
弹性计算 前端开发 容器
【前端web入门第六天】02 flex布局
Flex布局是一种现代CSS布局模式,通过给父元素设置`display: flex`,其子元素可自动挤压或拉伸。它包含弹性容器和弹性盒子,主轴默认为水平方向,侧轴为垂直方向。主轴对齐方式由`justify-content`属性控制,侧轴对齐方式包括`align-items`(针对所有子元素)和`align-self`(针对单个子元素)。修改主轴方向使用`flex-direction`属性,`flex`属性用于控制子元素在主轴上的伸缩比例。此外,`flex-wrap`属性允许子元素换行,而`align-content`属性则定义多行对齐方式。
|
2月前
|
前端开发
FLex布局详解
Flex布局通过`flex-direction`定义主轴方向,包括横向`row`、反向横向`row-reverse`、纵向`column`及反向纵向`column-reverse`。`justify-content`控制主轴上子元素的排列,如起始端`flex-start`、末端`flex-end`、居中`center`、等间距`space-around`或两端对齐`space-between`。在Y轴上设置这些同样有效。`flex-wrap: wrap`使子元素在需要时换行。`align-items: center`实现侧轴(交叉轴)上的居中对齐
52 1
FLex布局详解
|
2月前
|
JavaScript
Vue3弹性布局(Flex)
这是一个基于 Vue 的弹性布局组件库,提供了丰富的参数配置,如宽度、方向、换行等,支持自定义对齐方式和间隙设置。在线预览展示了不同布局效果,包括单选、按钮和滑动输入条等组件的使用示例。
Vue3弹性布局(Flex)
|
2月前
|
前端开发 容器
掌握弹性盒子布局(Flex):打造灵活的网页布局
掌握弹性盒子布局(Flex):打造灵活的网页布局
|
2月前
|
容器
|
2月前
|
前端开发 JavaScript API
如何在 Angular 中使用 Flex 布局
如何在 Angular 中使用 Flex 布局
31 0
|
3月前
|
编解码 前端开发 容器
CSS Flex布局实战案例:构建响应式卡片组件
【7月更文挑战第17天】通过上述步骤,我们成功地使用CSS Flex布局构建了一个响应式的卡片组件。Flexbox不仅简化了布局代码,还让我们能够轻松实现复杂的布局效果,如响应式设计。在实战中,掌握Flexbox将大大提高前端开发的效率和网页布局的质量。希望这个案例能够帮助你更好地理解和应用Flexbox布局。