UNPKG

grid-style

Version:

Grid layout implemented by flex box.

762 lines (701 loc) 16.5 kB
@charset "UTF-8"; /* 备选实现:float: left 1. 使用 float: left 实现 grid 布局时,需在子元素 ::before :: after 设置 { display: table; content: '' } 来消除 inline-block 子元素相互之间以及他们与 父容器元素之间的空白 2. 注意在使用 float 时,块级 元素中的行内块级子元素之间的空白问题,在使用 flexbox 的情况下,这些空白将被忽略,但其他情况将出现空白。 https://css-tricks.com/fighting-the-space-between-inline-block-elements/ 3. disply: flex 与 float: left 冲突(高优先级为 flex),那么同时设置时,在不支持 display: flex 的浏览器上只会有 float: left 生效(即备选方案生效) */ .grid { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; } .grid.no-wrap { -ms-flex-wrap: nowrap; flex-wrap: nowrap; } .grid.col { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; } .grid.cr { -webkit-box-orient: vertical; -webkit-box-direction: reverse; -ms-flex-direction: column-reverse; flex-direction: column-reverse; } .grid.row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; } .grid.rr { -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; } .grid-cell { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; } .grid-cell-1 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 8.33333%; flex-basis: 8.33333%; max-width: 8.33333%; } .grid-cell-2 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 16.66667%; flex-basis: 16.66667%; max-width: 16.66667%; } .grid-cell-3 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 25.0%; flex-basis: 25.0%; max-width: 25.0%; } .grid-cell-4 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 33.33333%; flex-basis: 33.33333%; max-width: 33.33333%; } .grid-cell-5 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 41.66666%; flex-basis: 41.66666%; max-width: 41.66666%; } .grid-cell-6 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 50.0%; flex-basis: 50.0%; max-width: 50.0%; } .grid-cell-7 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 58.33333%; flex-basis: 58.33333%; max-width: 58.33333%; } .grid-cell-8 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 66.66666%; flex-basis: 66.66666%; max-width: 66.66666%; } .grid-cell-9 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 75.0%; flex-basis: 75.0%; max-width: 75.0%; } .grid-cell-10 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 83.33333%; flex-basis: 83.33333%; max-width: 83.33333%; } .grid-cell-11 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 91.66666%; flex-basis: 91.66666%; max-width: 91.66666%; } .grid-cell-12 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 100.0%; flex-basis: 100.0%; max-width: 100.0%; } .grid[grid-gutters="1"] > .grid-cell { padding: 0 0.5em; } .grid[grid-gutters="2"] > .grid-cell { padding: 0 1em; } .grid[grid-gutters="3"] > .grid-cell { padding: 0 1.5em; } .grid[grid-gutters="4"] > .grid-cell { padding: 0 2em; } .grid[grid-gutters="5"] > .grid-cell { padding: 0 2.5em; } .grid[grid-gutters="6"] > .grid-cell { padding: 0 3em; } .grid[grid-gutters="7"] > .grid-cell { padding: 0 3.5em; } .grid[grid-gutters="8"] > .grid-cell { padding: 0 4em; } .grid[grid-gutters="9"] > .grid-cell { padding: 0 4.5em; } .grid[grid-gutters="10"] > .grid-cell { padding: 0 5em; } .grid-top { -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; } .grid-center { -webkit-box-align: center; -ms-flex-align: center; align-items: center; } .grid-bottom { -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; } .grid-jc-start { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; } .grid-jc-end { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; } .grid-jc-center { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } .grid-jc-between { -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } .grid-jc-around { -ms-flex-pack: distribute; justify-content: space-around; } .grid-cell-top { -ms-flex-item-align: start; align-self: flex-start; } .grid-cell-bottom { -ms-flex-item-align: end; align-self: flex-end; } .grid-cell-center { -ms-flex-item-align: center; align-self: center; } /* 默认值 flex-grow: 0 flex-shrink: 1 flex-basis: auto flex-basis 优先级高于 flex-grow,但尺寸不会小于 flex-grow (在非 0 的情况下)且不大于父容器 */ .grid-fit > .grid-cell { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; } .grid-full > .grid-cell { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 100%; flex-basis: 100%; max-width: 100%; } .grid-2 > .grid-cell { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 50%; flex-basis: 50%; max-width: 50%; } .grid-3 > .grid-cell { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 33.3333%; flex-basis: 33.3333%; max-width: 33.3333%; } .grid-4 > .grid-cell { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 25%; flex-basis: 25%; max-width: 25%; } @media (min-width: 576px) { .grid-sm-1 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 8.33333%; flex-basis: 8.33333%; max-width: 8.33333%; } .grid-sm-2 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 16.66667%; flex-basis: 16.66667%; max-width: 16.66667%; } .grid-sm-3 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 25.0%; flex-basis: 25.0%; max-width: 25.0%; } .grid-sm-4 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 33.33333%; flex-basis: 33.33333%; max-width: 33.33333%; } .grid-sm-5 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 41.66667%; flex-basis: 41.66667%; max-width: 41.66667%; } .grid-sm-6 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 50.0%; flex-basis: 50.0%; max-width: 50.0%; } .grid-sm-7 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 58.33333%; flex-basis: 58.33333%; max-width: 58.33333%; } .grid-sm-8 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 66.66667%; flex-basis: 66.66667%; max-width: 66.66667%; } .grid-sm-9 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 75.0%; flex-basis: 75.0%; max-width: 75.0%; } .grid-sm-10 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 83.33333%; flex-basis: 83.33333%; max-width: 83.33333%; } .grid-sm-11 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 91.66667%; flex-basis: 91.66667%; max-width: 91.66667%; } .grid-sm-12 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 100.0%; flex-basis: 100.0%; max-width: 100.0%; } } @media (min-width: 768px) { .grid-md-1 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 8.33333%; flex-basis: 8.33333%; max-width: 8.33333%; } .grid-md-2 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 16.66667%; flex-basis: 16.66667%; max-width: 16.66667%; } .grid-md-3 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 25.0%; flex-basis: 25.0%; max-width: 25.0%; } .grid-md-4 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 33.33333%; flex-basis: 33.33333%; max-width: 33.33333%; } .grid-md-5 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 41.66667%; flex-basis: 41.66667%; max-width: 41.66667%; } .grid-md-6 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 50.0%; flex-basis: 50.0%; max-width: 50.0%; } .grid-md-7 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 58.33333%; flex-basis: 58.33333%; max-width: 58.33333%; } .grid-md-8 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 66.66667%; flex-basis: 66.66667%; max-width: 66.66667%; } .grid-md-9 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 75.0%; flex-basis: 75.0%; max-width: 75.0%; } .grid-md-10 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 83.33333%; flex-basis: 83.33333%; max-width: 83.33333%; } .grid-md-11 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 91.66667%; flex-basis: 91.66667%; max-width: 91.66667%; } .grid-md-12 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 100.0%; flex-basis: 100.0%; max-width: 100.0%; } } @media (min-width: 992px) { .grid-lg-1 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 8.33333%; flex-basis: 8.33333%; max-width: 8.33333%; } .grid-lg-2 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 16.66667%; flex-basis: 16.66667%; max-width: 16.66667%; } .grid-lg-3 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 25.0%; flex-basis: 25.0%; max-width: 25.0%; } .grid-lg-4 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 33.33333%; flex-basis: 33.33333%; max-width: 33.33333%; } .grid-lg-5 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 41.66667%; flex-basis: 41.66667%; max-width: 41.66667%; } .grid-lg-6 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 50.0%; flex-basis: 50.0%; max-width: 50.0%; } .grid-lg-7 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 58.33333%; flex-basis: 58.33333%; max-width: 58.33333%; } .grid-lg-8 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 66.66667%; flex-basis: 66.66667%; max-width: 66.66667%; } .grid-lg-9 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 75.0%; flex-basis: 75.0%; max-width: 75.0%; } .grid-lg-10 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 83.33333%; flex-basis: 83.33333%; max-width: 83.33333%; } .grid-lg-11 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 91.66667%; flex-basis: 91.66667%; max-width: 91.66667%; } .grid-lg-12 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 100.0%; flex-basis: 100.0%; max-width: 100.0%; } } @media (min-width: 1200px) { .grid-xl-1 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 8.33333%; flex-basis: 8.33333%; max-width: 8.33333%; } .grid-xl-2 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 16.66667%; flex-basis: 16.66667%; max-width: 16.66667%; } .grid-xl-3 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 25.0%; flex-basis: 25.0%; max-width: 25.0%; } .grid-xl-4 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 33.33333%; flex-basis: 33.33333%; max-width: 33.33333%; } .grid-xl-5 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 41.66667%; flex-basis: 41.66667%; max-width: 41.66667%; } .grid-xl-6 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 50.0%; flex-basis: 50.0%; max-width: 50.0%; } .grid-xl-7 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 58.33333%; flex-basis: 58.33333%; max-width: 58.33333%; } .grid-xl-8 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 66.66667%; flex-basis: 66.66667%; max-width: 66.66667%; } .grid-xl-9 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 75.0%; flex-basis: 75.0%; max-width: 75.0%; } .grid-xl-10 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 83.33333%; flex-basis: 83.33333%; max-width: 83.33333%; } .grid-xl-11 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 91.66667%; flex-basis: 91.66667%; max-width: 91.66667%; } .grid-xl-12 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-preferred-size: 100.0%; flex-basis: 100.0%; max-width: 100.0%; } } .grid .offset-1 { margin-left: 8.33333%; } .grid .offset-2 { margin-left: 16.66667%; } .grid .offset-3 { margin-left: 25.0%; } .grid .offset-4 { margin-left: 33.33333%; } .grid .offset-5 { margin-left: 41.66667%; } .grid .offset-6 { margin-left: 50.0%; } .grid .offset-7 { margin-left: 58.33333%; } .grid .offset-8 { margin-left: 66.66667%; } .grid .offset-9 { margin-left: 75.0%; } .grid .offset-10 { margin-left: 83.33333%; } .grid .offset-11 { margin-left: 91.66667%; } .grid .offset-12 { margin-left: 100.0%; }