vuepress-theme-vdoing/docs/web/CSS-HTML/03.flex布局案例-网格布局.md

4.8 KiB
Raw Blame History

flex布局案例-网格布局

先上代码,效果在后面

代码

html结构

<div class="grid">
  <div class="grid-cell">1/2</div>
  <div class="grid-cell">1/2</div>
</div>
<div class="grid">
  <div class="grid-cell">1/3</div>
  <div class="grid-cell">1/3</div>
  <div class="grid-cell">1/3</div>
</div>
<div class="grid">
  <div class="grid-cell">1/4</div>
  <div class="grid-cell">1/4</div>
  <div class="grid-cell">1/4</div>
  <div class="grid-cell">1/4</div>
</div>
<div class="grid text">
  <div class="grid-cell">
    高度会跟随右侧元素变化
  </div>
  <div class="grid-cell">
    内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充
  </div>
</div>

<h4>某个网格设置百分比宽度</h4>
<div class="grid">
    <div class="grid-cell u-full">100%</div>
</div>
<div class="grid">
    <div class="grid-cell u-1of2">50%</div>
    <div class="grid-cell">auto</div>
    <div class="grid-cell">auto</div>
</div>
<div class="grid">
    <div class="grid-cell u-1of3">33.33%</div>
    <div class="grid-cell">auto</div>
    <div class="grid-cell">auto</div>
</div>
<div class="grid">
    <div class="grid-cell u-1of4">25%</div>
    <div class="grid-cell">auto</div>
    <div class="grid-cell">auto</div>
    <div class="grid-cell">auto</div>
    <div class="grid-cell">auto</div>
    <div class="grid-cell">auto</div>
    <div class="grid-cell">auto</div>
</div>

css样式

.grid {
  display: flex;
}
.grid-cell {
  flex: 1;/* 等分空间同flex-grow: 1同flex:auto 同flex:1 1 auto */
}
/* 某个网格的宽度为固定的百分比,其余网格平均分配剩余的空间。 */
.grid-cell.u-full {
    /* flex: 0允许放大 0不缩小 100% 固定宽度;  同 flex-shrink: 0;flex-basis: 100%; */
  flex: 0 0 100%;
}
.grid-cell.u-1of2 {
  flex: 0 0 50%;
}
.grid-cell.u-1of3 {
  flex: 0 0 33.3333%;
}
.grid-cell.u-1of4 {
  flex: 0 0 25%;
}
/* 基础样式 */
.grid-cell {
  background: #eee;
  text-align: center;
  margin: 5px;
  padding: 10px 0;
}
.text .grid-cell {
  text-align: left
}

效果

可用F12开发者工具查看代码

1/2
1/2
1/3
1/3
1/3
1/4
1/4
1/4
1/4
高度会跟随右侧元素变化
内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充内容填充

某个网格设置百分比宽度

100%
50%
auto
auto
33.33%
auto
auto
25%
auto
auto
auto
auto
auto
auto

参考:http://www.ruanyifeng.com/blog/2015/07/flex-examples.html