CSS布局(一)flex一篇搞定

server/2025/2/5 10:38:58/

目录

一、flex布局

1.1. 认识flex布局

1.2. flex布局重要的概念

二、flex container中的属性

2.1.flex-direction

2.2.flex-wrap、flex-flow

2.3.justify-content

2.4.align-items

2.5.align-content

三、 flex item中的属性

3.1.order

3.2.align-self

3.3.flex-grow、flex-shrink

3.4.flex-basis

3.5.flex

四、 flex布局中justify-content最后一行布局问题


一、flex布局

1.1. 认识flex布局

1.2. flex布局重要的概念

  • flex container

  • flex item

  • main axis/cross axios

  • main start/main end/cross start / cross end

二、flex container中的属性

2.1.flex-direction

  <style>.box{width: 500px;height: 500px;background-color: pink;display: flex;/* 默认是row  row-reverse反个方向*//* 方向改为列 culumn  culumn-reverse反个方向*/flex-direction:column-reverse;}.item{width: 50px;height: 120px;}</style>
</head>
<body><div class="box"><div class="item item1" >1</div><div class="item item2" >2</div><div class="item item3" >3</div><div class="item item4" >4</div><div class="item item5" >5</div></div>
</body>

2.2.flex-wrap、flex-flow

  <style>.box{width: 500px;height: 500px;background-color: pink;display: flex;/* wrap 默认nowrap 弹性item会压缩 *//* wrap换行 上面是第一行如然后第二行 *//* wrap-reverse 最下面是第一行 *//* flex-wrap: wrap-reverse; *//*flex-flow 复合属性 */flex-flow: column wrap-reverse;}.item{width: 150px;height: 120px;}</style>
</head>
<body><div class="box"><div class="item item1" >1</div><div class="item item2" >2</div><div class="item item3" >3</div><div class="item item4" >4</div><div class="item item5" >5</div></div>

2.3.justify-content

  <style>.box{width: 500px;height: 500px;background-color: pink;display: flex;/* 切换justify-content *//* flex-start:让元素和主轴的start方向对齐 *//* flex-end:让元素和主轴的end方向对齐 *//* center:居中对齐 *//* space-between:两端放一个元素,让其余元素一定要空间等分 *//* space-evenly:两端也有间距,并且所有空间进行等分 *//* space-around:两端也有间距,两端的间距是items中间的间距的一半*/justify-content: space-evenly}.item{width: 100px;height: 120px;}</style>
</head>
<body><div class="box"><div class="item item1" >1</div><div class="item item2" >2</div><div class="item item3" >3</div></div>

2.4.align-items

  <style>.box{width: 500px;height: 500px;background-color: pink;display: flex;/* align-items: flex-end; */align-items: center;}.item1{width: 100px;height: 120px;background-color: red;}.item2{width: 100px;height: 60px;background-color:blue;}.item3{width: 100px;height: 200px;background-color: skyblue;}</style>
</head>
<body><div class="box"><div class="item item1" >1</div><div class="item item2" >2</div><div class="item item3" >3</div></div>
</body>

2.5.align-content

  <style>.box{width: 500px;height: 500px;background-color: pink;display: flex;flex-wrap: wrap;/* 多行在交叉轴上怎么排布 和justify-content一样*//* align-content: center; */align-content: space-between;}.item{width: 100px;height: 120px;background-color: red;}</style>
</head>
<body><div class="box"><div class="item item1" >1</div><div class="item item2" >2</div><div class="item item3" >3</div><div class="item item1" >1</div><div class="item item2" >2</div><div class="item item3" >3</div><div class="item item1" >1</div><div class="item item2" >2</div><div class="item item3" >3</div><div class="item item1" >1</div><div class="item item2" >2</div><div class="item item3" >3</div></div>
</body>

三、 flex item中的属性

3.1.order

  <style>.box{width: 500px;height: 500px;background-color: pink;display: flex;}.item{width: 100px;height: 120px;background-color: red;}/* order值越小越排在前面 */.item1{order:2;}.item2{order:1;}.item3{order:5;}</style>
</head>
<body><div class="box"><div class="item item1" >1</div><div class="item item2" >2</div><div class="item item3" >3</div></div>
</body>

3.2.align-self

  <style>.box{width: 500px;height: 500px;background-color: pink;display: flex;align-items: center;}.item{width: 100px;height: 120px;background-color: red;}.item1{height: 100px;/* 单独设置在交叉轴的对齐方式 */align-self: flex-start;}.item2{height: 50px;}.item3{height: 120px;}</style>
</head>
<body><div class="box"><div class="item item1" >1</div><div class="item item2" >2</div><div class="item item3" >3</div></div>
</body>

3.3.flex-grow、flex-shrink

  <style>.box{width: 500px;height: 500px;background-color: pink;display: flex;align-items: center;}.item{width: 200px;height: 120px;/* 默认值是1 都会进行压缩 */flex-shrink: 0;background-color: red;}.item1{/* 有剩余空间时 分配给这个item1份 *//* flex-grow: 1; *//*当放不下的时候 默认每个元素会进行平均压缩 *//* 设置了两个flex-shrink 就它们两会进行压缩 */flex-shrink: 1;}.item2{/* 有剩余空间时 分配给这个item2份 *//* flex-grow: 2; */flex-shrink: 1;}</style>
</head>
<body><div class="box"><div class="item item1" >1</div><div class="item item2" >2</div><div class="item item3" >3</div><div class="item item4" >4</div><div class="item item5" >5</div><div class="item item6" >6</div></div>

3.4.flex-basis

  <style>.box{width: 500px;height: 500px;background-color: pink;display: flex;}.item{/* width: 100px; */height: 120px;/* 基础尺寸是100 当有一个完整的单词显示不下的时候 会进行拉伸让它显示 */flex-basis: 100px;}</style>
</head>
<body><div class="box"><div class="item item1" >1csdfa_fsfadfada_fsfafafaftre</div><div class="item item2" >2</div><div class="item item3" >3</div></div>
</body>

3.5.flex

四、 flex布局中justify-content最后一行布局问题

就是在后面加几个span并且宽度要和item宽度一样 要的span数量为一行的item数减2

  <style>.box{width: 500px;background-color: pink;display: flex;flex-wrap: wrap;justify-content: space-between;}.item{width: 110px;height: 150px;background-color: red;}.box > span{width: 110px;}</style>
</head>
<body><div class="box"><div class="item item1" >1</div><div class="item item2" >2</div><div class="item item3" >3</div><div class="item item4" >4</div><div class="item item1" >1</div><div class="item item2" >2</div><div class="item item3" >3</div><div class="item item4" >4</div><div class="item item1" >1</div><div class="item item2" >2</div><div class="item item3" >3</div><span></span><span></span></div>
</body>


http://www.ppmy.cn/server/165130.html

相关文章

[Collection与数据结构] B树与B+树

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

浅谈《图解HTTP》

感悟 滑至尾页的那一刻&#xff0c;内心突兀的涌来一阵畅快的感觉。如果说从前对互联网只是懵懵懂懂&#xff0c;但此刻却觉得她是如此清晰而可爱的呈现在哪里。 介绍中说&#xff0c;《图解HTTP》适合作为第一本网络协议书。确实&#xff0c;它就像一座桥梁&#xff0c;连接…

【PyQt】keyPressEvent键盘按压事件无响应

问题描述 通过load ui 文件加载程序时&#xff0c;keyPressEvent键盘按压事件无响应 原因 主要是由于事件处理的方式和窗口的显示方式不正确所导致的。 解决代码 self&#xff1a;这里的self作为loadUi函数的第二个参数&#xff0c;意味着加载的界面将被设置为当前类实例&…

Vue.js 如何选择合适的组件库

Vue.js 如何选择合适的组件库 大家在开发 Vue.js 项目的时候&#xff0c;都会面临一个问题&#xff1a;我该选择哪个组件库&#xff1f; 市面上有很多优秀的 Vue 组件库&#xff0c;比如 Element Plus、Vuetify、Quasar 等&#xff0c;它们各有特点。选择合适的组件库&#xf…

系统思考与心智模式

“人们往往高估短期变化&#xff0c;却低估长期系统的力量。”——杰伊福雷斯特 我们总是希望一场会议能改变企业文化&#xff0c;一场头脑风暴能重塑战略&#xff0c;一项新决策能立刻见效。但现实是&#xff0c;短期的调整只是表象&#xff0c;真正决定结果的&#xff0c;是…

【归属地】批量号码归属地查询按城市高速的分流,基于WPF的解决方案

在现代商业活动中&#xff0c;企业为了提高营销效果和资源利用效率&#xff0c;需要针对不同地区的市场特点开展精准营销。通过批量号码归属地查询并按城市分流&#xff0c;可以为企业的营销决策提供有力支持。 短信营销&#xff1a;一家连锁餐饮企业计划开展促销活动&#xf…

2025年大数据毕业设计选题推荐:数据分析与可视化 数据挖掘

目录 前言 毕设选题 开题指导建议 更多精选选题 选题帮助 最后 前言 大家好,这里是海浪学长毕设专题! 大四是整个大学期间最忙碌的时光&#xff0c;一边要忙着准备考研、考公、考教资或者实习为毕业后面临的升学就业做准备,一边要为毕业设计耗费大量精力。学长给大家整理…

DOM 操作入门:HTML 元素操作与页面事件处理

DOM 操作入门&#xff1a;HTML 元素操作与页面事件处理 DOM 操作入门&#xff1a;HTML 元素操作与页面事件处理什么是 DOM&#xff1f;1. 如何操作 HTML 元素&#xff1f;1.1 使用 document.getElementById() 获取单个元素1.2 使用 document.querySelector() 和 document.query…