Learn_CSS_CLS3_tryPosition

for Learning book demo use

by Loki Jiang

HTML

<!-- div.bigbox>div.box{$}*20 -->
<div class="main">
  <div class="bigbox">
    <div class="box">01</div>
    <div class="box">02</div>
    <div class="box">03</div>
    <div class="box">04</div>
    <div class="box">05</div>
    <div class="box">06</div>
    <div class="box relative">07</div>
    <div class="box">08</div>
    <div class="box">09</div>
    <div class="box absolute">10</div>
    <div class="box">11</div>
    <div class="box">12</div>
    <div class="box">13</div>
    <div class="box">14</div>
    <div class="box">15</div>
    <div class="box">16</div>
    <div class="box flexd">17</div>
    <div class="box">18</div>
    <div class="box">19</div>
    <div class="box">20</div>
  </div>
</div>

CSS

body {
  margin: 50px;
  padding: 50px;
  background: #ccc;
  border: 1px solid #ff0;

  /* flexbox效果,使內容居中心 */
  display: flex;
  justify-content: center;
  align-items: center;
  height: calc(100vh - 204px);
}
.main {
  padding: 100px;
  background: #aaa;
  border: 1px solid #f00;
}
.bigbox {
  width: 300px;
  border: 1px solid #000;
  background: rgb(209, 248, 248);

  /* method1 */
  font-size: 0;

  /* method2 */
  /* overflow: hidden; */
}
.box {
  width: 50px;
  height: 50px;
  margin: 5px;
  color: white;
  background-color: darkcyan;
  text-align: center;
  line-height: 50px;

  /* method1 */
  display: inline-block;
  font-size: 1rem;

  /* method2 *//* 空間仍在僅偏移 */
  /* display: block;
  float: left; */

  /* position: relative; */
}

.relative {
  position: relative;
  background: brown;
  top: -30px;
  left: -30px;
  /* 空間仍在僅偏移 */
}

.absolute {
  position: absolute;
  background: blueviolet;
  /* 預設位置不變,父容器失去該元素 */
}

.flexd {
  position: fixed;
  background: darkgreen;
  /* 解讀奇怪的預設位置 =>
    1. 因為inline-block關係,會緊鄰前者旁邊
    2. 失去父容器的強迫換行,所以overflow
  */
}