今天在研究網站 RWD 框架,由於 Bootstrap 太大一包還在猶豫是否要引入,目前先手刻一套,分享給各位~

$breakpoint: 600px 900px 1200px 1800px
區分五種區間,代號分別為:xs, sm, md, lg, xl。
( 斷點參考 Alex宅幹嘛 )

  • 外層 .gs ( grid system) 即為一列
  • 每列設計為 12 欄
  • 行內元素 .col-尺寸代號-佔欄數
  • 每一種區間,所有行內元素的佔欄數相加(或者等於) 12 為宜
  • 行內元素若加上 .col ,最左欄、最右欄有除去 gutter(間距) 的效果
  • HTML 舉例如下:

    <div class="gs">
      <div class="col col-xs-12 col-md-4 col-lg-2"></div>
      <div class="col col-xs-12 col-md-4 col-lg-8"></div>
      <div class="col col-xs-12 col-md-4 col-lg-2"></div>
    
    $breakpoint: 600px 900px 1200px 1800px
      width: 100%
      display: flex
      flex-wrap: wrap
      // 最左欄、最右欄除去 gutter(間距) 效果
        padding: 5px
        &:first-child
          padding-left: 0
        &:last-child
          padding-right: 0
    // 600px 以下
    @media (max-width: nth($breakpoint, 1))
        &>.col-xs-1
          width: 100%/12
        &>.col-xs-2
          width: 100%/12 * 2
        &>.col-xs-3
          width: 100%/12 * 3
        &>.col-xs-4
          width: 100%/12 * 4
        &>.col-xs-5
          width: 100%/12 * 5
        &>.col-xs-6
          width: 100%/12 * 6
        &>.col-xs-7
          width: 100%/12 * 7
        &>.col-xs-8
          width: 100%/12 * 8
        &>.col-xs-9
          width: 100%/12 * 9
        &>.col-xs-10
          width: 100%/12 * 10
        &>.col-xs-11
          width: 100%/12 * 11
        &>.col-xs-12
          width: 100%/12 * 12
    //600px - 900px
    @media (min-width: nth($breakpoint, 1)) and (max-width: nth($breakpoint, 2))
        &>.col-sm-1
          width: 100%/12
        &>.col-sm-2
          width: 100%/12 * 2
        &>.col-sm-3
          width: 100%/12 * 3
        &>.col-sm-4
          width: 100%/12 * 4
        &>.col-sm-5
          width: 100%/12 * 5
        &>.col-sm-6
          width: 100%/12 * 6
        &>.col-sm-7
          width: 100%/12 * 7
        &>.col-sm-8
          width: 100%/12 * 8
        &>.col-sm-9
          width: 100%/12 * 9
        &>.col-sm-10
          width: 100%/12 * 10
        &>.col-sm-11
          width: 100%/12 * 11
        &>.col-sm-12
          width: 100%/12 * 12
    //900px - 1200px
    @media (min-width: nth($breakpoint, 2)) and (max-width: nth($breakpoint, 3))
        &>.col-md-1
          width: 100%/12
        &>.col-md-2
          width: 100%/12 * 2
        &>.col-md-3
          width: 100%/12 * 3
        &>.col-md-4
          width: 100%/12 * 4
        &>.col-md-5
          width: 100%/12 * 5
        &>.col-md-6
          width: 100%/12 * 6
        &>.col-md-7
          width: 100%/12 * 7
        &>.col-md-8
          width: 100%/12 * 8
        &>.col-md-9
          width: 100%/12 * 9
        &>.col-md-10
          width: 100%/12 * 10
        &>.col-md-11
          width: 100%/12 * 11
        &>.col-md-12
          width: 100%/12 * 12
    //1200px - 1800px
    @media (min-width: nth($breakpoint, 3)) and (max-width: nth($breakpoint, 4))
        &>.col-lg-1
          width: 100%/12
        &>.col-lg-2
          width: 100%/12 * 2
        &>.col-lg-3
          width: 100%/12 * 3
        &>.col-lg-4
          width: 100%/12 * 4
        &>.col-lg-5
          width: 100%/12 * 5
        &>.col-lg-6
          width: 100%/12 * 6
        &>.col-lg-7
          width: 100%/12 * 7
        &>.col-lg-8
          width: 100%/12 * 8
        &>.col-lg-9
          width: 100%/12 * 9
        &>.col-lg-10
          width: 100%/12 * 10
        &>.col-lg-11
          width: 100%/12 * 11
        &>.col-lg-12
          width: 100%/12 * 12
    //1800px 以上
    @media (min-width: nth($breakpoint, 4))
        &>.col-xl-1
          width: 100%/12
        &>.col-xl-2
          width: 100%/12 * 2
        &>.col-xl-3
          width: 100%/12 * 3
        &>.col-xl-4
          width: 100%/12 * 4
        &>.col-xl-5
          width: 100%/12 * 5
        &>.col-xl-6
          width: 100%/12 * 6
        &>.col-xl-7
          width: 100%/12 * 7
        &>.col-xl-8
          width: 100%/12 * 8
        &>.col-xl-9
          width: 100%/12 * 9
        &>.col-xl-10
          width: 100%/12 * 10
        &>.col-xl-11
          width: 100%/12 * 11
        &>.col-xl-12
          width: 100%/12 * 12
    

    以上這段應該可以再優化,等想到再來更新~~