SCSS 倍數間格
@function line($count: 1){
  @return $baseLineHeight * count
}
.test {
  padding: line(2);
}
ul > li 間格問題
  ul {
    list-style: none;
    font-size: none;
    li {
      display: inline-block;
      font-size: 16px;
    }
  }
width: auto VS 100%
width: auto (較推薦使用)
- 塊級元素 Default 設定
 
- 內容寬 = margin + border + padding + width
 
width: 100%
- 內容寬 等同於 父級 width (父必須有設定 width)
 
- 與 auto 相比 內容寬 不含 margin
 
- 在沒有設置 box-sizing: border-box 不論給與 margin / padding 都會破版
 
- 在設置 box-sizing: border-box 給與 margin 會破版
 
rgba() VS opacity
- opacity 作用於元素,代表其子元素也會被淡化
 
- rgba() 只能用於顏色、背景色 (子元素不影響)
 
inline-flex
表該容器為 Inline,對於子元素無影響
nth-child, nth-of-type
first-child / last-child / first-of-type / last-of-type
- nth- 皆可傳入 odd / even / 2n+3
 
- nth-child(n)   選擇父標籤下的 第n個 "子元素"
 
- nth-of-type(n)  選擇父標籤下的 第n個 "某元素"
 
塊級 (Block)
- 寬繼承於容器 (預設 width: auto)
 
- 縱向堆疊 (自動換行)
 
- 能設定寬高、margin、padding
 
行內 (Inline)
- 自動包裹內容
 
- 排成一行 (不自動換行)
 
- 設置 寬高 & margin 上下  無效!!
 
- 利用設置 line-height 拉開兩行相疊的行內元素
 
Ex: .div > p + .div > p
  span {
    // 無效區
    height: 150px;
    width: 150px;
    margin-top: 10px;
    margin-bottom: 10px;
    // 有效區
    margin-left: 20px;
    margin-right: 20px;
    padding: 10px;
    line-height: 50px;
  }
line-height
vertical-align 垂直對齊
- 用於 文字/圖片/icon 垂直對齊文字
 
- default 為 baseline
 
- middle 置中 (最常用)
 
- text-bottom 文字最高
 
  <div class="testBlock">
    <span>Text</span>
    <img class="vertical-align-middle" src="https://fakeimg.pl/40x40/">
    <span>Text</span>
  </div>
display
- block: 撐滿容器 (利用 margin: 0 auto 水平置中)
 
- inline: 自動包裹內容,表現如行內 (實用)
 
- inline-block: 自動包裹內容,表現如塊級 (實用)
 
user-select 禁用選取
- 支援度蠻高的,但 "必須" 加上瀏覽器 prefix
 
- none 禁止用戶選取 文本 & "子元素"
 
- text 雙擊可選單詞 / 三擊可全選文本
 
- all  單擊 / 右鍵子元素 全選該區塊
 
- 
W3School DEMO
 
float 浮動
- 用於文繞圖
 
- 若子皆float,會造成該母元素 height 0 (形成破版)
 
- clearfix 清除浮動
 
  // 掛載 parent 上
  .parent {
    &:after {
      content: "";
      display: block;
      clear: both;
    }
  }
column 多欄文字
- 
多欄文字排版器
 
- columns: 100px 3 (欄寬度、欄數)
 
- column-width 欄寬度 (配合 media 設置最小寬度)
 
- column-count 多少欄數
 
- column-gap 欄間隔
 
- column-rule 分割線樣式縮寫
 
column-rule: 4px double #fff
- column-span:all 使該元素橫跨所有欄
 
不可見元素與點擊事件
- display: none 不可被點擊
 
- visibility: hidden 不可被點擊
 
- z-index: -100 不可被點擊
 
- opacity: 0 可被點擊
 
- 穿透效果 pointer-events
 
position fix Y軸置中
  .modal {
    z-index: 30;
    position: fixed;
    top: 20vh;
    
    // 重點在此
    left: 50%;
    transform: translateX(-50%);
  }
border 0 / none
- border: none  (用此吧!)
表示沒有,瀏覽器解析"none"時將不作出渲染動作,即不會消耗內存值。 
- border: 0
設為"0"像素雖然在頁面上看不見,但按border默認值理解,瀏覽器依然對border-width/border-color進行了渲染,即已經占用了內存值。 
參考資料