- Objective:
- Breadcrumb:
# 概念阐释
- 可以让**单个维度(行或列)** 产生自适应
- 使用`flexbox`必须要有**父级**元素(它像一个容器)`class="flex-container"`和**内嵌**元素`class="item"`
- CSS中对应`container`选择器中使用`display`属性
- 使用flex后,盒子的宽和高由内容长短决定,所以要定义
- 块级元素与内联元素都是一样的效果
```html
<div class="flex-container">
<div class="item">1<div>
<div class="item">2<div>
<div class="item">3<div>
</div>
```
```css
.flex-container {
display:flex;
}
.item{} /*正常的css样式*/
```
# 实例
**1.** 复写样式并尝试拖动浏览器改变大小:[Create a Flex Container](https://www.w3schools.com/css/tryit.asp?filename=trycss3_flexbox_flex-wrap_nowrap8)
**2.** 用flex改写森特奈说明书底部信息导航
```html
<head>
<style>
.flex-container{
display: flex;
border:1px dashed green;
}
.item{
border:1px solid red;
width:100px;/*盒子的最大宽度*/
/* height:100px; 定义的是div.item盒子的高度 */
font-size: 30px;
text-align: center;
line-height: 75px;/*定义的是内容1的行高*/
margin:10px;
}
</style>
</head>
<body>
<div class="flex-container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">4</div>
<div class="item">4</div>
<div class="item">4</div>
<div class="item">4</div>
<div class="item">4</div>
<div class="item">4</div>
<div class="item">4</div>
<div class="item">4</div>
</div>
</body>
```
# 相关内容
## 对比于grid layout
- flexbox只能改变一行内每个内嵌元素的宽度,而不能改变内嵌元素数量,但grid layout可以改变数量,比如在中屏下显示2个,在大屏下显示4个。
```html
<div class="row">
<div class="col-lg-3 col-md-6"><p>Item 1</p></div>
<div class="col-lg-3 col-md-6"><p>Item 2</p></div>
<div class="col-lg-3 col-md-6"><p>Item 3</p></div>
<div class="col-lg-3 col-md-6"><p>Item 4</p></div>
<div class="col-lg-3 col-md-6"><p>Item 5</p></div>
<div class="col-lg-3 col-md-6"><p>Item 6</p></div>
<div class="col-lg-3 col-md-6"><p>Item 7</p></div>
<div class="col-lg-3 col-md-6"><p>Item 8</p></div>
</div>
```
# 参考资料
- [w3c](https://www.w3schools.com/css/css3_flexbox.asp)