honghaitzz11 6 years ago
parent
commit
c135025efe
10 changed files with 2449 additions and 499 deletions
  1. 3 0
      .eslintrc.js
  2. 475 476
      1-index.html
  3. 1 0
      package.json
  4. 1 1
      public/index.html
  5. 149 19
      src/App.vue
  6. 3 1
      src/main.js
  7. 4 0
      src/router.js
  8. 1440 0
      src/views/grid/Grid.vue
  9. 319 0
      src/views/grid/grid.less
  10. 54 2
      yarn.lock

+ 3 - 0
.eslintrc.js

@@ -10,6 +10,9 @@ module.exports = {
   rules: {
     'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
     'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
+    'indent': 'off',
+    'comma-dangle': 'off',
+    'quotes': 'off',
   },
   parserOptions: {
     parser: 'babel-eslint',

File diff suppressed because it is too large
+ 475 - 476
1-index.html


+ 1 - 0
package.json

@@ -9,6 +9,7 @@
   },
   "dependencies": {
     "core-js": "^2.6.5",
+    "element-ui": "^2.7.2",
     "vue": "^2.6.6",
     "vue-router": "^3.0.1"
   },

+ 1 - 1
public/index.html

@@ -5,7 +5,7 @@
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
     <link rel="icon" href="<%= BASE_URL %>favicon.ico">
-    <title>2-grid</title>
+    <title>CSS 应用</title>
   </head>
   <body>
     <noscript>

+ 149 - 19
src/App.vue

@@ -1,29 +1,159 @@
 <template>
   <div id="app">
-    <div id="nav">
-      <router-link to="/">Home</router-link> |
-      <router-link to="/about">About</router-link>
-    </div>
-    <router-view/>
+    <el-container style="height: 100vh; border: 1px solid #eee">
+      <el-aside width="201px" style="background-color: rgb(238, 241, 246)">
+        <el-menu
+          class="el-menu-vertical-demo"
+          @open="handleOpen"
+          @close="handleClose"
+          background-color="#545c64"
+          text-color="#fff"
+          active-text-color="#ffd04b">
+          <el-submenu index="1">
+            <template slot="title">
+              <span>布局</span>
+            </template>
+            <el-menu-item-group>
+              <el-tree
+                :data="treeData"
+                :props="defaultProps"
+                accordion
+                @node-click="handleNodeClick">
+              </el-tree>
+            </el-menu-item-group>
+          </el-submenu>
+          <el-submenu index="2">
+            <template slot="title">
+              <span>颜色</span>
+            </template>
+            <el-menu-item-group>
+              <el-menu-item index="1-1">grid</el-menu-item>
+            </el-menu-item-group>
+          </el-submenu>
+        </el-menu>
+      </el-aside>
+      <el-container>
+        <el-main ref="main">
+          <router-view/>
+        </el-main>
+      </el-container>
+    </el-container>
+
   </div>
 </template>
 
+
+<script>
+  const { log: print } = console;
+  export default {
+    data() {
+      return {
+        treeData: [
+          {
+            label: "Grid布局",
+            to: 'grid',
+            children: [
+              {
+                label: "二级 1-1",
+                to: 'grid3',
+                children: [
+                  {
+                    label: "三级 1-1-1"
+                  }
+                ]
+              }
+            ]
+          },
+        ],
+        defaultProps: {
+          children: "children",
+          label: "label"
+        }
+      };
+    },
+    methods: {
+      handleNodeClick(data) {
+        this.treeData.forEach((key, index) => {
+          if (key.to === 'grid' && data.to === 'grid') {
+            const childrens = [];
+            for (let i = 1; i < 8; i += 1) {
+              childrens.push({
+                label: `Grid${i}`,
+                to: `grid${i}`,
+              });
+            }
+            this.treeData[index].children = childrens;
+          }
+        });
+
+        if (data.to === 'grid') {
+          this.$router.push({ path: '/grid' });
+          document.body.scrollTop = 0;
+        }
+        if (data.to.indexOf('grid') > -1) {
+          window.location.hash = data.to;
+        }
+      },
+      checkElement() {
+        // chrome,safari及一些浏览器对于documentElemnt的计算标准化,reset的作用
+        document.documentElement.scrollTop += 1;
+        const elm = document.documentElement.scrollTop !== 0
+          ? document.documentElement
+          : document.body;
+        document.documentElement.scrollTop -= 1;
+        return elm;
+      },
+      handleOpen(key, keyPath) {
+        print(key, keyPath);
+      },
+      handleClose(key, keyPath) {
+        print(key, keyPath);
+      }
+    },
+  };
+</script>
+
+
 <style lang="less">
-#app {
-  font-family: 'Avenir', Helvetica, Arial, sans-serif;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  text-align: center;
-  color: #2c3e50;
-}
-#nav {
-  padding: 30px;
-  a {
-    font-weight: bold;
+  * {
+    padding: 0;
+    margin: 0;
+  }
+
+
+  h2 {
+    text-align: center;
+    font-size: 60px;
+    margin-bottom: -45px;
+  }
+  pre {
+    border-top: 4px solid #af2323;
+    padding: 10px 10px 20px;
+    margin: 60px auto 20px;
+    /*width: 90%;*/
+    overflow-x: scroll;
+    border: 1px solid black;
+    border-radius: 5px;
+    text-align: left;
+  }
+
+  #app {
+    font-family: 'Avenir', Helvetica, Arial, sans-serif;
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale;
+    text-align: center;
     color: #2c3e50;
-    &.router-link-exact-active {
-      color: #42b983;
+  }
+
+  #nav {
+    /*padding: 30px;*/
+    a {
+      font-weight: bold;
+      color: #2c3e50;
+
+      &.router-link-exact-active {
+        color: #42b983;
+      }
     }
   }
-}
 </style>

+ 3 - 1
src/main.js

@@ -1,9 +1,11 @@
 import Vue from 'vue';
+import ElementUI from 'element-ui';
+import 'element-ui/lib/theme-chalk/index.css';
 import App from './App.vue';
 import router from './router';
 
 Vue.config.productionTip = false;
-
+Vue.use(ElementUI);
 new Vue({
   router,
   render: h => h(App),

+ 4 - 0
src/router.js

@@ -18,6 +18,10 @@ export default new Router({
       // this generates a separate chunk (about.[hash].js) for this route
       // which is lazy-loaded when the route is visited.
       component: () => import(/* webpackChunkName: "about" */ './views/About.vue'),
+    }, {
+      path: '/grid',
+      name: 'grid',
+      component: () => import(/* webpackChunkName: "about" */ './views/grid/Grid.vue'),
     },
   ],
 });

+ 1440 - 0
src/views/grid/Grid.vue

@@ -0,0 +1,1440 @@
+<!-- eslint-disable -->
+<template>
+  <div class="box">
+
+    <h2>Grid</h2>
+    <div style="margin-top: 50px;padding-left: 15px;text-align: right;">
+      <a style="text-decoration: none;" href="http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html"
+         target="_blank">Grid 布局教程</a>
+    </div>
+    <div>
+    <pre>
+.container.one{
+  grid-template-columns:100px 100px 100px;
+  grid-template-rows: 100px 100px 100px;
+}
+</pre>
+    </div>
+    <div class="container one">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+    <div>
+    <pre>
+  .container.two{
+   grid-template-columns: 33.33% 33.33% 33.33%;
+   grid-template-rows: 33.33% 33.33% 33.33%;
+  }
+  </pre>
+    </div>
+    <div class="container two">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+    <div>
+    <pre>
+  .container.three{
+    grid-template-columns: repeat(3,33.33%);
+    grid-template-rows: repeat(3,33.33%);
+  }
+</pre>
+    </div>
+    <div class="container three">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+    <div>
+    <pre>
+  .container.four{
+    grid-template-columns: repeat(auto-fill,100px);
+  }
+</pre>
+    </div>
+    <div class="container four">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+    <div>
+    <pre>
+  .container.five{
+    grid-template-columns: 1fr 1fr 1fr;
+  }
+ </pre>
+    </div>
+    <div class="container five">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+    <div>
+    <pre>
+  .container.six{
+    grid-template-columns: 150px 1fr 2fr;
+  }
+</pre>
+    </div>
+    <div class="container six">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+    <div>
+    <pre>
+  .container.seven{
+   grid-template-columns: 1fr 1fr minmax(100px, 1fr);
+ }
+</pre>
+    </div>
+    <div class="container seven">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+    <div>
+    <pre>
+  .container.eight{
+   grid-template-columns: 100px auto 100px;
+ }
+</pre>
+    </div>
+    <div class="container eight">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+    <div>
+    <pre>
+  /* 指定每根线的名字,每根线的名字可以是多个的 */
+  .container.nine{
+    grid-template-columns: [c1] 100px [c2] 100px [c3] auto [c4];
+    grid-template-areas: [r1] 100px [r2] 100px [r3] auto [r4];
+  }
+</pre>
+    </div>
+    <div class="container nine">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+    <div>
+    <pre>
+  .container.ten-1{
+    grid-template-columns: 70% 30%;
+  }
+  .container.ten-2{
+  grid-template-columns: repeat(12,1fr);
+}
+</pre>
+    </div>
+    <div class="container ten-1">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+      <div>
+        <p>10</p>
+      </div>
+
+    </div>
+    <div class="container ten-2">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+      <div>
+        <p>10</p>
+      </div>
+      <div>
+        <p>11</p>
+      </div>
+      <div>
+        <p>12</p>
+      </div>
+    </div>
+    <div>
+    <pre>
+    /* 设置间距 */
+    grid-row-gap:20px;
+    grid-column-gap: 20px;
+    /* 简写 */
+    grid-gap:&lt;grid-row-gap&gt;   &lt;grid-column-gap&gt;;
+    /* 最新标准 */
+    grid-row-gap =&gt; row-gap
+    grid-column-gap =&gt; column-gap
+    grid-gap =&gt; gap
+  </pre>
+    </div>
+    <div class="container eleven">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+    <div>
+    <pre>
+    grid-template-areas属性用于定义区域。
+    grid-template-areas: 'a . c'
+    'd . f'
+    'g . i';
+    /* 先列后行 */
+    grid-auto-flow: column;
+    /* 先行后列 */
+    grid-auto-flow: row;/* 默认值 */
+  </pre>
+    </div>
+    <div class="container twelve twelve-1">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+    <div>
+    <pre>
+    grid-column-start:1;
+    grid-column-end:3;
+  </pre>
+    </div>
+    <div class="container twelve style twelve-2">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+    <div>
+    <pre>
+    grid-auto-flow: row dense;
+  </pre>
+    </div>
+    <div class="container twelve style twelve-3">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+    <div>
+    <pre>
+    grid-auto-flow: column dense;
+  </pre>
+    </div>
+    <div class="container twelve style twelve-4">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+    <div>
+    <pre>
+  .container {
+    justify-items: start | end | center | stretch;
+    align-items: start | end | center | stretch;
+  }
+  start:对齐单元格的起始边缘。
+  end:对齐单元格的结束边缘。
+  center:单元格内部居中。
+  stretch:拉伸,占满单元格的整个宽度(默认值)。
+</pre>
+    </div>
+    <div class="container thirteen">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+    <div>
+    <pre>
+  align-items: start;
+</pre>
+    </div>
+    <div class="container thirteen-1">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+
+    <div>
+    <pre>
+  /* 简写 */
+  place-items: &lt;align-items&gt;&nbsp;&lt;justify-items&gt;
+  place-items: start end;
+</pre>
+    </div>
+    <div class="container thirteen-2">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+    <div>
+    <pre>
+  justify-content属性是整个内容区域在容器里面的水平位置(左中右),
+  align-content属性是整个内容区域的垂直位置(上中下)。
+  .container {
+    justify-content: start | end | center | stretch | space-around | space-between | space-evenly;
+    align-content: start | end | center | stretch | space-around | space-between | space-evenly;
+  }
+</pre>
+    </div>
+    <pre>start - 对齐容器的起始边框。
+  </pre>
+    <div class="container fourteen fourteen-1">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+    <pre> end - 对齐容器的结束边框。</pre>
+    <div class="container fourteen fourteen-2">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+    <pre> center - 容器内部居中。</pre>
+    <div class="container fourteen fourteen-3">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+    <pre>stretch - 项目大小没有指定时,拉伸占据整个网格容器。</pre>
+    <div class="container fourteen fourteen-4">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+    <pre>space-around - 每个项目两侧的间隔相等。所以,项目之间的间隔比项目与容器边框的间隔大一倍。</pre>
+    <div class="container fourteen fourteen-5">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+    <pre>space-between - 项目与项目的间隔相等,项目与容器边框之间没有间隔。</pre>
+    <div class="container fourteen fourteen-6">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+
+    <pre>space-evenly - 项目与项目的间隔相等,项目与容器边框之间也是同样长度的间隔。</pre>
+    <div class="container fourteen fourteen-7">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+    <pre>
+    /* 简写 */
+    place-content: &lt;align-content&gt; &lt;justify-content&gt;
+  </pre>
+    <div class="container fourteen fourteen-7">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+    <pre>
+      3.8
+      grid-auto-columns 属性,
+      grid-auto-rows 属性
+    </pre>
+    <div class="container fifteen">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+    <pre>
+3.9(不推荐使用下面这2个简写)
+grid-template 属性
+  grid-template属性是grid-template-columns、grid-template-rows和grid-template-areas这三个属性的合并简写形式
+grid 属性
+  grid属性是grid-template-rows、grid-template-columns、grid-template-areas、 grid-auto-rows、grid-auto-columns、grid-auto-flow这六个属性的合并简写形式。
+    </pre>
+    <pre>
+4.1
+  grid-column-start 属性,
+    左边框所在的垂直网格线
+  grid-column-end 属性,
+    右边框所在的垂直网格线
+  grid-row-start 属性,
+    上边框所在的水平网格线
+  grid-row-end 属性
+    下边框所在的水平网格线
+</pre>
+
+    <pre>
+/*
+  这段代码指定,1号项目的左边框是第二根垂直网格线,右边框是第四根垂直网格线。
+*/
+.item-1 {
+  grid-column-start: 2;
+  grid-column-end: 4;
+}
+</pre>
+    <div class="container sixteen sixteen-1">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+    <pre>
+/*
+  指定四个边框位置
+*/
+.item-1 {
+  grid-column-start: 1;
+  grid-column-end: 3;
+  grid-row-start: 2;
+  grid-row-end: 4;
+}
+</pre>
+    <div class="container sixteen sixteen-2">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+    <pre>
+/*
+  指定为网格线的名字
+*/
+.item-1 {
+  grid-column-start: header-start;
+  grid-column-end: header-end;
+}
+</pre>
+    <div class="container sixteen sixteen-3">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+    <pre>
+/*
+  使用 span 关键字,表示 '跨越'  即左右边框(上下边框)之间跨越多少个网格
+*/
+.item-1 {
+ grid-column-start: span 2;
+}
+</pre>
+    <div class="container sixteen sixteen-4">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+    <pre>
+/*
+  属性简写:
+      grid-column:grid-column-start / grid-column-end;
+      grid-row:grid-row-start / grid-row-end;
+*/
+.item-1 {
+  grid-column:  / ;
+  grid-row:  / ;
+}
+例子:
+
+.item-1 {
+  grid-column: 1 / 3;
+  grid-row: 1 / 2;
+}
+/* 等同于 */
+.item-1 {
+  grid-column-start: 1;
+  grid-column-end: 3;
+  grid-row-start: 1;
+  grid-row-end: 2;
+}
+
+上面 item-1占据第一行,从第一根列线到第三根列线。
+</pre>
+    <div class="container sixteen sixteen-5">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+    <pre>
+/*
+ 用span关键字
+*/
+.item-1 {
+  grid-column: 1 / 3;
+  grid-row: 1 / 3;
+}
+/* 等同于 */
+.item-1 {
+  grid-column: 1 / span 2;
+  grid-row: 1 / span 2;
+}
+</pre>
+    <div class="container sixteen sixteen-6">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+    <pre>
+/*
+.item-1 {
+  grid-column: 2;
+  grid-row: 2;
+}
+*/
+</pre>
+    <div class="container sixteen sixteen-7">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+
+    <pre>
+/* grid-area */
+</pre>
+    <p>grid-area属性还可用作grid-row-start、grid-column-start、grid-row-end、grid-column-end的合并简写形式,直接指定项目的位置。</p>
+    <pre>
+.item {
+  grid-area: &lt;row-start> / &lt;column-start> / &lt;row-end> / &lt;column-end>;
+}
+</pre>
+    <div class="container seventeen seventeen-1">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+    <pre>
+/* 例子 */
+.item-1 {
+  grid-area: 1 / 1 / 3 / 3;
+}
+</pre>
+    <div class="container seventeen seventeen-2">
+      <div>
+        <p>1</p>
+      </div>
+      <div>
+        <p>2</p>
+      </div>
+      <div>
+        <p>3</p>
+      </div>
+      <div>
+        <p>4</p>
+      </div>
+      <div>
+        <p>5</p>
+      </div>
+      <div>
+        <p>6</p>
+      </div>
+      <div>
+        <p>7</p>
+      </div>
+      <div>
+        <p>8</p>
+      </div>
+      <div>
+        <p>9</p>
+      </div>
+    </div>
+
+    <pre>
+4.4
+justify-self 属性,
+    设置单元格内容的水平位置(左中右),跟justify-items属性的用法完全一致,但只作用于单个项目。
+align-self 属性,
+    属性设置单元格内容的垂直位置(上中下),跟align-items属性的用法完全一致,也是只作用于单个项目。
+
+      start:对齐单元格的起始边缘。
+      end:对齐单元格的结束边缘。
+      center:单元格内部居中。
+      stretch:拉伸,占满单元格的整个宽度(默认值)。
+
+  .item {
+    justify-self: start | end | center | stretch;
+    align-self: start | end | center | stretch;
+  }
+
+
+place-self 属性
+    属性是align-self属性和justify-self属性的合并简写形式
+
+      place-self: &lt;align-self> &lt;justify-self>;
+
+      .item {
+        place-self: center center;
+      }
+</pre>
+
+  </div>
+</template>
+<style lang="less">
+  @import "grid.less";
+</style>

+ 319 - 0
src/views/grid/grid.less

@@ -0,0 +1,319 @@
+@or: /;
+.box > p {
+  text-align: left;
+}
+
+.container {
+  display: grid;
+  margin-bottom: 15px;
+
+  & > div {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+
+    p {
+      font-size: 30px;
+    }
+
+    &:nth-child(1) {
+      background-color: #ef342a;
+    }
+
+    &:nth-child(2) {
+      background-color: #f68f26;
+    }
+
+    &:nth-child(3) {
+      background-color: #4ba946;
+    }
+
+    &:nth-child(4) {
+      background-color: #0376c2;
+    }
+
+    &:nth-child(5) {
+      background-color: #c077af;
+    }
+
+    &:nth-child(6) {
+      background-color: #f8d29d;
+    }
+
+    &:nth-child(7) {
+      background-color: #b5a87f;
+    }
+
+    &:nth-child(8) {
+      background-color: #d0e4a9;
+    }
+
+    &:nth-child(9) {
+      background-color: #4dc7ec;
+    }
+
+  }
+
+  &.one {
+    grid-template-columns: 100px 100px 100px;
+    grid-template-rows: 100px 100px 100px;
+  }
+
+  &.two {
+    grid-template-columns: 33.33% 33.33% 33.33%;
+    grid-template-rows: 33.33% 33.33% 33.33%;
+  }
+
+  &.three {
+    grid-template-columns: repeat(3, 33.33%);
+    grid-template-rows: repeat(3, 33.33%);
+  }
+
+  &.four {
+    grid-template-columns: repeat(auto-fill, 100px);
+  }
+
+  &.five {
+    grid-template-columns: 1fr 1fr 1fr;
+  }
+
+  &.six {
+    grid-template-columns: 150px 1fr 2fr;
+  }
+
+  &.seven {
+    grid-template-columns: 1fr 1fr minmax(100px, 1fr);
+  }
+
+  &.eight {
+    grid-template-columns: 100px auto 100px;
+  }
+
+  &.nine {
+    grid-template-columns: [c1] 100px [c2] 100px [c3] auto [c4];
+    grid-template-areas: [r1] 100px [r2] 100px [r3] auto [r4];
+  }
+
+  &.ten-1 {
+    grid-template-columns: 70% 30%;
+  }
+
+  &.ten-2 {
+    grid-template-columns: repeat(12, 1fr);
+  }
+
+  &.eleven {
+    grid-template-columns: repeat(3, 1fr);
+    grid-template-rows: repeat(3, 1fr);
+    grid-row-gap: 5px;
+    grid-column-gap: 5px;
+  }
+
+  &.twelve {
+    /*grid-template-columns: repeat(3,1fr);*/
+    /*grid-template-rows: repeat(3,1fr);*/
+    /*grid-template-areas: 'a b c'
+                           'd e f'
+                           'g h i';*/
+    /*grid-template-areas: 'a a a'
+                           'b b b'
+                           'c c c';*/
+    /*grid-template-areas: "header header header"
+                          "main main sidebar"
+                          "footer footer footer";*/
+    grid-template-areas: 'a . c' 'd . f' 'g . i';
+
+  }
+
+  &.twelve-1 {
+    grid-auto-flow: column;
+  }
+
+  &.style {
+    & > div {
+      border: 1px solid #e5e4e9;
+
+      &:nth-child(1) {
+        grid-column-start: 1;
+        grid-column-end: 3;
+      }
+
+      &:nth-child(2) {
+        grid-column-start: 1;
+        grid-column-end: 3;
+      }
+    }
+  }
+
+  &.twelve-3 {
+    grid-auto-flow: row dense;
+  }
+
+  &.twelve-4 {
+    grid-auto-flow: column dense;
+  }
+
+  &.thirteen {
+    grid-template-columns: 100px 100px 100px;
+    grid-template-rows: 100px 100px 100px;
+    justify-items: start;
+  }
+
+  &.thirteen-1 {
+    grid-template-columns: 100px 100px 100px;
+    grid-template-rows: 100px 100px 100px;
+    align-items: start;
+
+    p {
+      font-size: initial;
+
+    }
+  }
+
+
+  &.thirteen-2 {
+    grid-template-columns: 100px 100px 100px;
+    grid-template-rows: 100px 100px 100px;
+    place-items: start end;
+
+    p {
+      font-size: initial;
+    }
+  }
+
+
+  &.fourteen {
+    grid-template-columns: 100px 100px 100px;
+    grid-template-rows: 100px 100px 100px;
+  }
+
+  &.fourteen-1 {
+    justify-content: start;
+  }
+
+  &.fourteen-2 {
+    justify-content: end;
+  }
+
+  &.fourteen-3 {
+    justify-content: center;
+  }
+
+  &.fourteen-4 {
+    grid-template-columns: repeat(3, 1fr);
+    grid-template-rows: repeat(3, 1fr);
+    justify-content: stretch;
+  }
+
+  &.fourteen-5 {
+    justify-content: space-around;
+  }
+
+  &.fourteen-6 {
+    justify-content: space-between;
+  }
+
+  &.fourteen-7 {
+    place-content: space-around space-evenly;
+  }
+
+  &.fifteen {
+    grid-template-columns: 100px 100px 100px;
+    grid-template-rows: 100px 100px 100px;
+    grid-auto-rows: 50px;
+
+    & > div {
+      &:nth-child(8) {
+        grid-row-start: 4;
+        grid-column-start: 2;
+      }
+
+      &:nth-child(9) {
+        grid-row-start: 5;
+        grid-column-start: 3;
+      }
+    }
+  }
+
+  &.sixteen {
+
+    grid-template-columns: 100px 100px 100px;
+    grid-template-rows: 100px 100px 100px;
+
+    & > div {
+      height: 100px;
+
+      &:nth-child(1) {
+        height: inherit;
+      }
+    }
+
+    &.sixteen-1 {
+      & > div:nth-child(1) {
+        grid-column-start: 2;
+        grid-column-end: 4;
+      }
+    }
+
+    &.sixteen-2 {
+      & > div:nth-child(1) {
+        grid-column-start: 1;
+        grid-column-end: 3;
+        grid-row-start: 2;
+        grid-row-end: 4;
+      }
+    }
+
+    &.sixteen-3 {
+      & > div:nth-child(1) {
+        grid-column-start: header-start;
+        grid-column-end: header-end;
+      }
+    }
+
+    &.sixteen-4 {
+      & > div:nth-child(1) {
+        grid-column-start: span 2;
+      }
+    }
+
+    &.sixteen-5 {
+      & > div:nth-child(1) {
+        grid-column: 1 @or 3;
+        grid-row: 1 @or 2;
+      }
+    }
+
+    &.sixteen-6 {
+      & > div:nth-child(1) {
+        grid-column: 1 @or span 2;
+        grid-row: 1 @or span 2;
+      }
+    }
+
+    &.sixteen-7 {
+      & > div:nth-child(1) {
+        grid-column: 2;
+        grid-row: 2;
+      }
+    }
+  }
+
+  &.seventeen {
+    grid-template-columns: 100px 100px 100px;
+    grid-template-rows: 100px 100px 100px;
+    grid-template-areas: 'a b c' 'd e f' 'g h i';
+
+    &.seventeen-1 {
+      & > div:nth-child(1) {
+        grid-area: e;
+      }
+    }
+
+    &.seventeen-2 {
+      & > div:nth-child(1) {
+        grid-area: 1 @or 1 @or 3 @or 3;
+      }
+    }
+  }
+}

+ 54 - 2
yarn.lock

@@ -1390,6 +1390,13 @@ async-limiter@~1.0.0:
   resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
   integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==
 
+async-validator@~1.8.1:
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.8.5.tgz#dc3e08ec1fd0dddb67e60842f02c0cd1cec6d7f0"
+  integrity sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==
+  dependencies:
+    babel-runtime "6.x"
+
 async@^1.5.2:
   version "1.5.2"
   resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
@@ -1448,6 +1455,11 @@ babel-eslint@^10.0.1:
     eslint-scope "3.7.1"
     eslint-visitor-keys "^1.0.0"
 
+babel-helper-vue-jsx-merge-props@^2.0.0:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6"
+  integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==
+
 babel-loader@^8.0.5:
   version "8.0.5"
   resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.5.tgz#225322d7509c2157655840bba52e46b6c2f2fe33"
@@ -1465,6 +1477,14 @@ babel-plugin-dynamic-import-node@^2.2.0:
   dependencies:
     object.assign "^4.1.0"
 
+babel-runtime@6.x:
+  version "6.26.0"
+  resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
+  integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
+  dependencies:
+    core-js "^2.4.0"
+    regenerator-runtime "^0.11.0"
+
 balanced-match@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
@@ -2207,7 +2227,7 @@ copy-webpack-plugin@^4.6.0:
     p-limit "^1.0.0"
     serialize-javascript "^1.4.0"
 
-core-js@^2.6.5:
+core-js@^2.4.0, core-js@^2.6.5:
   version "2.6.5"
   resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895"
   integrity sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==
@@ -2554,7 +2574,7 @@ deep-is@~0.1.3:
   resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
   integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
 
-deepmerge@^1.5.2:
+deepmerge@^1.2.0, deepmerge@^1.5.2:
   version "1.5.2"
   resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753"
   integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==
@@ -2819,6 +2839,18 @@ electron-to-chromium@^1.3.122:
   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.124.tgz#861fc0148748a11b3e5ccebdf8b795ff513fa11f"
   integrity sha512-glecGr/kFdfeXUHOHAWvGcXrxNU+1wSO/t5B23tT1dtlvYB26GY8aHzZSWD7HqhqC800Lr+w/hQul6C5AF542w==
 
+element-ui@^2.7.2:
+  version "2.7.2"
+  resolved "https://registry.yarnpkg.com/element-ui/-/element-ui-2.7.2.tgz#8bc5bef5c3c53a2170422516b4324e70069c23d1"
+  integrity sha512-Exh9QTkm9gwMMPzg1TyaTlBKyr3k4K9XcC5vl0A/mneDvJX//RsURGuOWsCNDVQMdhh5h9e+W5icosh+pKfbCg==
+  dependencies:
+    async-validator "~1.8.1"
+    babel-helper-vue-jsx-merge-props "^2.0.0"
+    deepmerge "^1.2.0"
+    normalize-wheel "^1.0.1"
+    resize-observer-polyfill "^1.5.0"
+    throttle-debounce "^1.0.1"
+
 elliptic@^6.0.0:
   version "6.4.1"
   resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a"
@@ -5365,6 +5397,11 @@ normalize-url@^3.0.0:
   resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
   integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
 
+normalize-wheel@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz#aec886affdb045070d856447df62ecf86146ec45"
+  integrity sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=
+
 npm-bundled@^1.0.1:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd"
@@ -6463,6 +6500,11 @@ regenerate@^1.2.1, regenerate@^1.4.0:
   resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
   integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==
 
+regenerator-runtime@^0.11.0:
+  version "0.11.1"
+  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
+  integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
+
 regenerator-runtime@^0.13.2:
   version "0.13.2"
   resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447"
@@ -6644,6 +6686,11 @@ requires-port@^1.0.0:
   resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
   integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
 
+resize-observer-polyfill@^1.5.0:
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
+  integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==
+
 resolve-cwd@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
@@ -7438,6 +7485,11 @@ thread-loader@^2.1.2:
     loader-utils "^1.1.0"
     neo-async "^2.6.0"
 
+throttle-debounce@^1.0.1:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz#51853da37be68a155cb6e827b3514a3c422e89cd"
+  integrity sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==
+
 through2@^2.0.0:
   version "2.0.5"
   resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"

Some files were not shown because too many files changed in this diff