flex布局实例:骰子的布局

版权声明:哼!坏人!这是我辛辛苦苦码的! https://blog.csdn.net/DurianPudding/article/details/87878282
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>骰子实例</title>
  <link href="style.css" rel="stylesheet" type="text/css" />
  <style>
    .item1-2face {
      justify-content: center;
    }
    .item1-3face {
      justify-content: flex-end;
    }
    .item1-4face {
      align-items: center;
    }
    .item1-5face {
      justify-content: center;
      align-items: center;
    }
    .item1-6face {
      justify-content: flex-end;
      align-items: center;
    }
    .item1-7face {
      align-items: flex-end;
    }
    .item1-8face {
      justify-content: center;
      align-items: flex-end;
    }
    .item1-9face {
      justify-content: flex-end;
      align-items: flex-end;
    }

    .item2-1face {
      justify-content: space-between;
    }
    .item2-2face {
      flex-direction: column;
      justify-content: space-between;
    }
    .item2-3face {
      flex-direction: column;
      justify-content: space-between;
      align-items: center;
    }
    .item2-4face {
      flex-direction: column;
      justify-content: space-between;
      align-items: flex-end;
    }
    .item2-5face .pip:nth-child(2) {
      align-self: center;
    }
    .item2-6face {
      justify-content: space-between;
    }
    .item2-6face .pip:nth-child(2) {
      align-self: flex-end;
    }

    .item3-1face {
      justify-content: space-between;
    }
    .item3-1face .pip:nth-child(2) {
      align-self: center;
    }
    .item3-1face .pip:nth-child(3) {
      align-self: flex-end;
    }

    .item4-1face {
      flex-wrap: wrap;
      justify-content: flex-end;
      align-content: space-between;
    }
    .item4-2face {
      flex-wrap: wrap;
      align-content: space-between;
    }
    .item4-2face .column {
      display: flex;
      flex-basis: 100%;
      justify-content: space-between;
    }

    .item5-1face {
      flex-wrap: wrap;
      justify-content: space-between;
    }
    .item5-1face .column {
      display: flex;
      flex-basis: 100%;
      justify-content: space-between;
    }
    .item5-1face .column:nth-child(2) {
      justify-content: center;
    }

    .item6-1face {
      flex-wrap: wrap;
      align-content: space-between;
    }
    .item6-2face {
      flex-direction: column;
      flex-wrap: wrap;
      /*注意主轴已经改成垂直方向了,则交叉轴将水平,这里用align-content才能靠边*/
      align-content: space-between;
    }
    .item6-3face {
      flex-wrap: wrap;
    }
    .item6-3face .row {
      display: flex;
      /*一个row占满一行*/
      flex-basis: 100%;
    }
    .item6-3face .row:nth-child(2) {
      justify-content: center;
    }
    .item6-3face .row:nth-child(3) {
      justify-content: space-between;
    }

    .item9-1face {
      flex-wrap: wrap;
    }
  </style>
</head>
<body>
<pre>参考:<a href="http://www.ruanyifeng.com/blog/2015/07/flex-examples.html">flex实例</a></pre>
<h2>单项目</h2>
<div class="first-item">
  <div class="item1-1face">
    <span class="pip"></span>
  </div>
  <div class="item1-2face">
    <span class="pip"></span>
  </div>
  <div class="item1-3face">
    <span class="pip"></span>
  </div>
  <div class="item1-4face">
    <span class="pip"></span>
  </div>
  <div class="item1-5face">
    <span class="pip"></span>
  </div>
  <div class="item1-6face">
    <span class="pip"></span>
  </div>
  <div class="item1-7face">
    <span class="pip"></span>
  </div>
  <div class="item1-8face">
    <span class="pip"></span>
  </div>
  <div class="item1-9face">
    <span class="pip"></span>
  </div>
</div>

<h2>双项目</h2>
<div class="second-item">
  <div class="item2-1face">
    <span class="pip"></span>
    <span class="pip"></span>
  </div>
  <div class="item2-2face">
    <span class="pip"></span>
    <span class="pip"></span>
  </div>
  <div class="item2-3face">
    <span class="pip"></span>
    <span class="pip"></span>
  </div>
  <div class="item2-4face">
    <span class="pip"></span>
    <span class="pip"></span>
  </div>
  <div class="item2-5face">
    <span class="pip"></span>
    <span class="pip"></span>
  </div>
  <div class="item2-6face">
    <span class="pip"></span>
    <span class="pip"></span>
  </div>
</div>

<h2>三项目</h2>
<div class="third-item">
  <div class="item3-1face">
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
  </div>
</div>

<h2>四项目</h2>
<div class="forth-item">
  <div class="item4-1face">
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
  </div>
  <div class="item4-2face">
    <div class="column">
      <span class="pip"></span>
      <span class="pip"></span>
    </div>
    <div class="column">
      <span class="pip"></span>
      <span class="pip"></span>
    </div>
  </div>
</div>

<h2>五项目</h2>
<div class="fifth-item">
  <div class="item5-1face">
    <div class="column">
      <span class="pip"></span>
      <span class="pip"></span>
    </div>
    <div class="column">
      <span class="pip"></span>
    </div>
    <div class="column">
      <span class="pip"></span>
      <span class="pip"></span>
    </div>
  </div>
</div>

<h2>六项目</h2>
<div class="six-item">
  <div class="item6-1face">
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
  </div>
  <div class="item6-2face">
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
  </div>
  <div class="item6-3face">
    <div class="row">
      <span class="pip"></span>
      <span class="pip"></span>
      <span class="pip"></span>
    </div>
    <div class="row">
      <span class="pip"></span>
    </div>
    <div class="row">
      <span class="pip"></span>
      <span class="pip"></span>
    </div>
  </div>
</div>

<h2>九项目</h2>
<div class="nine-item">
  <div class="item9-1face">
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
    <span class="pip"></span>
  </div>
</div>
</body>
</html>
* {
  box-sizing: border-box;
}

html, body {
  height: 100%;
}

body {
  /*display: flex;*/
  /*align-items: center;*/
  /*justify-content: center;*/
  /*vertical-align: center;*/
  /*flex-wrap: wrap;*/
  /*align-content: center;*/
  font-family: 'Open Sans', sans-serif;

  background: linear-gradient(top, #222, #333);
}

/*[attribute$="value"]:匹配给定的属性是以某些值结尾的元素*/
[class$="face"] {
  display: flex;
  margin: 16px;
  padding: 4px;

  background-color: #e7e7e7;
  width: 104px;
  height: 104px;
  object-fit: contain;

  box-shadow:
          inset 0 5px white,
          inset 0 -5px #bbb,
          inset 5px 0 #d7d7d7,
          inset -5px 0 #d7d7d7;

  border-radius: 10%;
}

[class$="item"] {
  display: flex;
}

/*每个点宽32px,骰子面宽96px,正好3个点占满骰子的一行*/
.pip {
  display: block;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  margin: 4px;

  background-color: #333;
  box-shadow: inset 0 3px #111, inset 0 -3px #555;
}

猜你喜欢

转载自blog.csdn.net/DurianPudding/article/details/87878282