flexbox弹性盒子布局

web:https://www.imooc.com/video/9574

论align-items和align-content的区别:https://www.softwhy.com/article-10111-1.html

html无法充满整个浏览器:

html的height设置为100%

不定宽高的水平垂直居中:

.parent{

justify-content:center;//子元素水平居中

align-items:center;//子元素垂直居中

display:-webkit-flex;

flex-direction:row/column;//子元素布局方向:横向布局或者竖向布局 默认横向布局

-webkit-flex-wrap:nowrap/wrap;//子元素宽度超过父元素宽度时是否换行 默认不换行,不换行有利于页面自适应

}

父元素justify-content取值详解:

flex-start:子元素从左边开始排列  相当于float:left

flex-end:子元素从右边开始排列

center:水平居中

space-between:两边对齐

space-around:子元素有间距的排列

.child{

flex:1;//子元素所占份额

}

子元素align-self取值详解:

定义flex子项单独在侧轴(纵轴)方向上的对齐方式

元素继承了它的父容器的 align-items 属性

flex-start/flex-end/center/auto/stretch/baseline......

子元素order属性:要想让某个元素排在前面,可设置为-1

 

 

 

### CSS弹性盒子布局Flexbox)使用方法及示例 #### 什么是FlexboxFlexbox 是一种用于在一维空间中高效地对齐和分布项目的布局模式。它允许容器内的项目动态调整大小,从而更好地适应不同屏幕尺寸和设备需求[^2]。 #### 基本结构 Flexbox 主要由两个部分组成:**容器(Container)** 和 **项目(Item)**。通过设置 `display: flex` 或 `display: inline-flex`,可以让某个元素成为 Flex 容器,其子元素则会自动变为 Flex 项目[^3]。 --- #### 核心属性 以下是 Flexbox 中最常用的几个核心属性: 1. **`display`** - 设置为 `flex` 可以启用 Flexbox 布局。 ```css .container { display: flex; /* 启用 Flexbox */ } ``` 2. **`flex-direction`** - 控制主轴的方向,默认值为 `row`(水平从左到右)。其他可能的值包括 `column`、`row-reverse` 和 `column-reverse`。 ```css .container { flex-direction: column; /* 改变为主轴垂直方向 */ } ``` 3. **`justify-content`** - 决定项目在主轴上的对齐方式,常见的值有 `flex-start`、`center`、`space-between` 等。 ```css .container { justify-content: center; /* 水平居中 */ } ``` 4. **`align-items`** - 决定项目在交叉轴上的对齐方式,常见值有 `stretch`、`center`、`baseline` 等。 ```css .container { align-items: center; /* 垂直居中 */ } ``` 5. **`flex-wrap`** - 当项目超出容器宽度时决定是否换行,默认值为 `nowrap`,可设为 `wrap` 来支持多行显示。 ```css .container { flex-wrap: wrap; /* 超出时换行 */ } ``` 6. **`order`** - 修改项目的排列顺序,数值越小优先级越高。 ```css .item { order: 2; /* 将该项目放在第二个位置 */ } ``` 7. **`flex`** - 组合了三个属性:`flex-grow`, `flex-shrink`, 和 `flex-basis`,用来定义项目如何扩展或收缩。 ```css .item { flex: 1; /* 占满剩余空间 */ } ``` --- #### 实现示例 ##### 示例 1:简单的水平居中布局 ```html <div class="container"> <div class="item">A</div> <div class="item">B</div> <div class="item">C</div> </div> <style> .container { display: flex; justify-content: center; /* 水平居中 */ align-items: center; /* 垂直居中 */ } .item { width: 50px; height: 50px; background-color: lightblue; margin: 5px; } </style> ``` ##### 示例 2:按比例分配空间 ```html <div class="container"> <div class="item one">1</div> <div class="item two">2</div> <div class="item three">3</div> </div> <style> .container { display: flex; } .item { border: 1px solid black; padding: 10px; } .one { flex: 1; } /* 占总宽的 1/6 */ .two { flex: 2; } /* 占总宽的 2/6 */ .three { flex: 3; } /* 占总宽的 3/6 */ </style> ``` ##### 示例 3:响应式布局 ```html <div class="container"> <div class="item">Box 1</div> <div class="item">Box 2</div> <div class="item">Box 3</div> </div> <style> .container { display: flex; flex-wrap: wrap; /* 自动换行 */ } @media (max-width: 600px) { .item { flex: 1 1 100%; /* 在小屏幕上占满整行 */ } } .item { background-color: coral; color: white; text-align: center; padding: 20px; margin: 5px; } </style> ``` --- #### 最佳实践建议 1. 使用 `flex` 属性简化多个子项的空间分配逻辑[^4]。 2. 配合媒体查询优化移动设备体验。 3. 对于复杂布局场景,考虑结合 Grid Layout 进一步增强灵活性[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值