[TOC]
# 簡介
主軸:Flex容器的主軸主要用來配置Flex項目,默認是水平方向
側軸:與主軸垂直的軸稱作側軸,默認是垂直方向的
方向:默認主軸從左向右,側軸默認從上到下
主軸和側軸并不是固定不變的,通過flex-direction可以互換。

Flex布局的語法規范經過幾年發生了很大的變化,也給Flexbox的使用帶來一定的局限性,因為語法規范版本眾多,瀏覽器支持不一致,致使Flexbox布局使用不多
**各屬性詳解**
1. flex子項目在主軸的縮放比例,不指定flex屬性,則不參與伸縮分配
* min-width 最小值 min-width: 280px 最小寬度 不能小于 280
* max-width: 1280px 最大寬度 不能大于 1280
2. flex-direction調整主軸方向(默認為水平方向)
* flex-direction: column 垂直排列
* flex-direction: row 水平排列
3. justify-content調整主軸對齊(水平對齊)
子盒子如何在父盒子里面水平對齊
| 值 | 描述 | 白話文 |
| --- | --- | --- |
| flex-start | 默認值。項目位于容器的開頭。 | 讓子元素從父容器的開頭開始排序但是盒子順序不變 |
| flex-end | 項目位于容器的結尾。 | 讓子元素從父容器的后面開始排序但是盒子順序不變 |
| center | 項目位于容器的中心。 | 讓子元素在父容器中間顯示 |
| space-between | 項目位于各行之間留有空白的容器內。 | 左右的盒子貼近父盒子,中間的平均分布空白間距 |
| space-around | 項目位于各行之前、之間、之后都留有空白的容器內。 | 相當于給每個盒子添加了左右margin外邊距 |
4. align-items調整側軸對齊(垂直對齊)
子盒子如何在父盒子里面垂直對齊(單行)
| 值 | 描述 | 白話文 |
| --- | --- | --- |
| stretch | 默認值。項目被拉伸以適應容器。 | 讓子元素的高度拉伸適用父容器(子元素不給高度的前提下) |
| center | 項目位于容器的中心。 | 垂直居中 |
| flex-start | 項目位于容器的開頭。 | 垂直對齊開始位置 上對齊 |
| flex-end | 項目位于容器的結尾。 | 垂直對齊結束位置 底對齊 |
5. flex-wrap控制是否換行
當我們子盒子內容寬度多于父盒子的時候如何處理
| 值 | 描述 |
| --- | --- |
| nowrap | 默認值。規定靈活的項目不拆行或不拆列。 不換行,則 收縮(壓縮) 顯示 強制一行內顯示 |
| wrap | 規定靈活的項目在必要的時候拆行或拆列。 |
| wrap-reverse | 規定靈活的項目在必要的時候拆行或拆列,但是以相反的順序。 |
6. flex-flow是flex-direction、flex-wrap的簡寫形式
~~~
flex-flow: flex-direction flex-wrap;
~~~
白話記: flex-flow: 排列方向 換不換行;
兩個中間用空格
例如:
~~~
display: flex;
/* flex-direction: row;
flex-wrap: wrap; 這兩句話等價于下面的這句話*/
flex-flow: column wrap; /* 兩者的綜合 */
~~~
7. align-content堆棧(由flex-wrap產生的獨立行)多行垂直對齊方式齊
align-content是針對flex容器里面多軸(多行)的情況,align-items是針對一行的情況進行排列。
必須對父元素設置自由盒屬性display:flex;,并且設置排列方式為橫向排列flex-direction:row;并且設置換行,flex-wrap:wrap;這樣這個屬性的設置才會起作用。
| 值 | 描述 | 測試 |
| --- | --- | --- |
| stretch | 默認值。項目被拉伸以適應容器。 | |
| center | 項目位于容器的中心。 | |
| flex-start | 項目位于容器的開頭。 | |
| flex-end | 項目位于容器的結尾。 | |
| space-between | 項目位于各行之間留有空白的容器內。 | |
| space-around | 項目位于各行之前、之間、之后都留有空白的容器內。 | |
8. order控制子項目的排列順序,正序方式排序,從小到大
用css 來控制盒子的前后順序。 用order 就可以
用整數值來定義排列順序,數值小的排在前面。可以為負值。 默認值是 0
~~~
order: 1;
~~~
此知識點重在理解,要明確找出主軸、側軸、方向,各屬性對應的屬性值
~~~
<style>
section {
width: 80%;
height: 200px;
border: 1px solid pink;
margin: 100px auto;
/*父盒子添加 flex*/
display: flex; /*伸縮布局模式*/
min-width: 500px;
flex-direction: row-reverse; /*給父盒子添加 排列方式 可以是水平 也可以 是 垂直*/
}
section div {
}
section div:nth-child(1) {
background-color: pink;
width: 200px;
}
section div:nth-child(2) {
background-color: purple;
margin: 0 5px;
width: 100px;
}
section div:nth-child(3) {
background-color: pink;
flex: 1;/*子盒子添加分數*/
}
section div:nth-child(4) {
background-color: skyblue;
flex: 1;/*子盒子添加分數*/
}
</style>
<section>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</section>
~~~
- HTML
- 標簽
- 超鏈接
- 列表
- 表格和表單
- h5新增標簽
- 快捷方式
- 標簽包含
- CSS
- 選擇器
- 行內,塊元素,鏈接
- css三大特性
- 盒子模型
- 定位
- css可見性
- emment書寫
- 文本元素
- 外觀屬性
- 背景
- 浮動
- ps
- 用戶界面樣式
- 顯示和隱藏
- 過渡
- 2D,3D變形
- 動畫animation
- 伸縮布局(CSS3)
- BFC
- 優雅降級和漸進增強
- 3D旋轉
- 雙飛翼和圣杯
- JS基礎
- 輸出消息的幾種方式
- 數據類型
- Date對象
- Math對象
- Array對象
- 字符串常用方法
- 數據類型轉換
- 等號運算
- 代碼調試
- 數組
- 函數
- WebAPI
- webapi簡介
- 獲取頁面元素
- 事件
- 屬性操作
- 創建元素
- 節點操作
- 事件詳解
- BOM
- 位置相關屬性
- 拖拽彈窗
- 彈出層加遮罩
- ES6
- let和const
- 解構表達式變化
- 函數優化
- map和reduce
- nrm
- npm
- npm基礎
- package.json
- 淘寶鏡像
- webpack
- 介紹
- 多入口文件(Multiple entry files)
- Webpack CSS loader加載器
- webpack Image loader 加載圖片
- uglify-js壓縮打包JS
- webpack構建本地服務器
- vue內部指令
- v-if,v-show,v-for
- v-text,v-html
- v-on
- v-model
- v-bind
- v-pre,v-cloak,v-once
- vue全局api
- Vue.directive 自定義指令
- vue.extend構造器的延伸
- vue.set全局操作
- Vue的生命周期(鉤子函數)
- Template 制作模版
- Component 初識組件
- Component 組件props 屬性設置
- Component 父子組件關系
- Component 標簽
- vue選項
- propsData Option全局擴展數據傳遞
- computed Option 計算選項
- Methods Option 方法選項
- watch選項監控數據
- Mixins 混入選項操作
- Extends Option 擴展選項
- delimiters 選項
- vue實例和內置組件
- 實例屬性
- 實例方法
- 實例事件
- 內置組件 -slot
- vue-cli
- vue-cli介紹
- 項目目錄結構
- vue-cli模板
- vue-router
- 簡介
- 配置子路由
- 參數傳遞
- 單頁面多路由區域操作
- url傳遞參數
- vscode